我一直在大多数终端上使用 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;退出 = ^\;擦除 = ^?;kill = ^U;eof = ^D;eol = M-^?;eol2 = M-^?;swtch =;开始 = ^Q;停止 = ^S;susp = ^Z;rprnt = ^R;werase = ^W;lnext = ^V;flush = ^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 iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
的功能intr
在手册页中描述为:
字符
CHAR 将发送中断信号