2017-12-03 438 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/

相關問題