如何撤消“stty intr ^M”

如何撤消“stty intr ^M”

在 Unix bash 上,当我运行stty intr ^M(^M 是 Control-M)时,我实际上阻止了自己运行任何命令。每当我按下“返回”键时,我都会向 shell 发送中断信号,并且我的命令永远不会运行。假设我的 .profile 中有这个(我实际上没有……);我如何才能在将 ^M 设置为触发中断信号的 bash 会话中摆脱这个困境?

克里斯

答案1

bash 将 ^M 和 ^J 绑定到accept-line默认情况下,因此您可以使用任一方法。

答案2

一般来说(如果事情比这更糟糕,而你不知道如何修复它们),你可以stty使用另一个 tty运行

stty sane < /dev/whatever
stty intr ^c < /dev/whatever

如果您不确定哪个 tty 的设置混乱,请使用whops找出您正在使用的 tty,然后依次检查stty < /dev/whatever每个 tty,直到找到错误的 tty。

答案3

我本来要建议stty sane ^J,但这不会重置中断。您必须执行以下操作:

$ stty intr ^C^J

代表^CControl-C。通常,您可以按 Control-V/Control-C 来获取该键。

相关内容