我一直在大多數終端上使用 Ctrl+C 來輕鬆取消我正在編寫的行並為新行開闢道路。 (我不是說殺死正在運行的 bash 腳本,而只是打開一個新的空行)出於我無法想像的原因,此功能在 SSH 打開的遠端 shell 上被關閉。
Ctrl+C 適用於大多數其他情況(例如終止正在執行的腳本、退出 VIM 插入模式),但將不再跳過該行並轉到常規 shell 中的下一個。
這是在 Amazon linux 2 上運行的 shell,但我在其他 Amazon Linux 2 機器上從未遇到過此問題,所以它可能來自我所做的事情...
知道可能發生了什麼以及如何解決它嗎?
同時,我一直按刪除鍵,儘管將按鍵重複時間降至最低,但速度仍然很慢。
編輯 -
我使用 SSH 連接到終端,這很有趣:如果我在 SSH 終端內打開一個新 shell(使用bash
),則 CTRL+C 會再次起作用!
答案1
要修復它,您可以使用stty
命令重置它。
$ stty intr \^c
若要查看intr
目前設定的內容,您可以使用:
$ stty -a
$ stty -a
速度38400波特;第 21 行;第 161 欄;行=0; intr = ^C;退出=^\;擦除= ^?殺死=^U; eof = ^D; eol = M-^?; eol2 = M-^?;開關=;開始=^Q;停止=^S;暫停=^Z; rprnt = ^R;韋拉塞 = ^W;下一個 = ^V;齊平=^O;分鐘= 1;時間=0; -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf88 -crnucnl ixon -ixoff -iuclc ixany imaxbel iutf8o -crnucluclucl -iuclc onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
其功能intr
在手冊頁中描述為:
字元型
CHAR會發送中斷訊號