kubectl exec ... /bin/bash 正在吃 control-p?

kubectl exec ... /bin/bash eating control-p?

如果我运行:

kubectl exec spi-tools-dev-3449236037-08pau -it -- /bin/bash

我得到了一个交互式 shell,但是有东西正在吃掉 ^p 个字符。如果我键入一个 ^p,什么也不会发生。当我输入第二个 ^p 时,会发送两个。在 bash 中,我回溯了两项历史记录。在 emacs 中,我上升了两行。

这是怎么回事?某些东西显然将 ^p 解释为 command/escape 字符,但我在 kubernetes 文档中没有看到任何关于此的内容。

看起来答案是:

  1. 是的,这是 kubectl 对 docker 的 ctrl-p/ctrl-q 分离序列的模拟。
  2. 不,您无法更改它。
  3. this closed bug

我 运行 这个在 tmux 下,而 tmux 又在 ssh 下。其中每一个都有自己的带内命令信令。任何东西都能正常工作真是太神奇了:-)

如果您使用的是 tmux,将此行添加到 tmux.conf 帮助我解决了这个问题:

bind -n C-p send Up