有时我的 Unix 终端会被破坏,原因如下:
我可以输入命令,但字符没有在屏幕上回显。当我按回车键时,提示符打印在与当前行相同的行上(不会先插入换行符)
如果我意外地
cat
对二进制文件执行了此操作,则字符集就会更改,这样我键入的命令就会显示为乱码而不是正常的 ascii。
是否有任何万能的方法可以使 shell 恢复正常,或者我只需要关闭终端并启动一个新的终端?
(我目前在 Mac 上使用 Bash,但我在其他系统上也遇到过这种情况。)
答案1
类型 :
kill -28 $$
或者
reset
这应该可以恢复你的任期=)
笔记
28
是 信号绞盘信号,见
man 7 signal
答案2
解除 tty 阻塞的标准方法是输入:(^Jreset^J
这里^J
是 control-J)。这会发送一个换行符来结束任何行(第一个^J
),命令reset
和另一个换行符。如果正在监听的是 shell,这应该可以解决问题。有时(很少)需要用 替换命令stty sane
。如果您知道后面可能正在运行什么,也许需要事先发送使该命令退出的命令。