Process 为什么我在终端上看到转义字符?

Process 为什么我在终端上看到转义字符?,process,terminal,emulation,kill,ctrl,Process,Terminal,Emulation,Kill,Ctrl,通常CTRL-C或CTRL-D退出程序。但是,偶尔按下CTRL-C键而不是退出程序,只会转义字符并将其输出到终端屏幕。我以前在不同的程序中见过多次这种情况:Django、ssh等。我注意到这种情况是在我离开终端很长一段时间后发生的 有没有办法将CTRL-C行为恢复到我预期的状态 那么,这些转义字符背后的原因是什么 下面是我所说的转义CTRL-C和其他字符的输出示例: ^^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C

通常
CTRL-C
CTRL-D
退出程序。但是,偶尔按下
CTRL-C
键而不是退出程序,只会转义字符并将其输出到终端屏幕。我以前在不同的程序中见过多次这种情况:Django、ssh等。我注意到这种情况是在我离开终端很长一段时间后发生的

  • 有没有办法将
    CTRL-C
    行为恢复到我预期的状态
  • 那么,这些转义字符背后的原因是什么
下面是我所说的转义
CTRL-C
和其他字符的输出示例:


^^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^D^D^D^D^D^D^D^D^D^D^D^D^D^D^D^D^D^D^D^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^D^D^D^D^D^D^D^D^D^D^D^D^[^[^D^D^D^D^Z^Z^Z^Z^Z^Z

这是因为与服务器的连接可能已断开,因此您的终端只是回显您所做的操作,而无法向您显示命令或服务器的响应。在这种情况下,退出ssh的方法是使用终止序列
~+.+Enter
。Enter可能并不总是必需的

下面是SSH转义序列的列表

  ~.  - terminate connection (and any multiplexed sessions)
  ~B  - send a BREAK to the remote system
  ~C  - open a command line
  ~R  - Request rekey (SSH protocol 2 only)
  ~^Z - suspend ssh
  ~#  - list forwarded connections
  ~&  - background ssh (when waiting for connections to terminate)
  ~?  - this message
  ~~  - send the escape character by typing it twice

PS:摘自

这是因为与服务器的连接可能已断开,因此您的终端只是回显您所做的操作,而无法向您显示命令或服务器的响应。在这种情况下,退出ssh的方法是使用终止序列
~+.+Enter
。可能并不总是需要Enter-啊,很有趣。如果你把它作为一个答案写下来,我会接受的(如果你能解释一下~+.+的意思,我将不胜感激)。