2017-12-03 439 views
0

通常CTRL-CCTRL-D退出程序。但是,不要退出程序,按CTRL-C只是将字符转义并输出到终端屏幕。我之前已经多次看到过这种情况发生在不同的程序上:Django,ssh等。我注意到,当我离开终端很长一段时间时会发生这种情况。为什么我在终端上看到转义字符?

  • 有没有办法将CTRL-C的行为恢复到我的预期?
  • 转义字符背后的原因是什么?

这里是什么我通过逃脱CTRL-C和其他字符的意思的输出例如:

^C^C^d^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^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^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^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^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^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^D^Z^Z^Z^Z^Z^Z

+0

采取这是因为服务器的连接可能被破坏,所以你的终端仅仅是回应你所做的事情,而不是能够向你展示命令或服务器的反应。在这种情况下退出ssh的方式是使用终止序列'〜+。 +输入'。输入并不总是需要 –

+0

Tarun Lalwani - 啊有趣。如果你把它写成答案,我会接受它(解释什么〜+。+的意思是值得赞赏的)。 – kshikama

回答

1

这是导致与服务器的连接可能已经中断,因此您的终端只是回应您所做的事情,而不是能够向您显示命令或服务器正在响应的内容。在这种情况下摆脱ssh的方式是使用终止序列~ + . + 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:从https://lonesysadmin.net/2011/11/08/ssh-escape-sequences-aka-kill-dead-ssh-sessions/

相关问题