我能够重现此问题的唯一两个应用程序是tail
和cat
。如果我运行tail -f log/development.log
或 任何文件,然后按 CTRL-C 退出,当我输入其他命令时,屏幕上不会出现键盘回显。如果我按 Enter 键,命令会运行并生成输出,但键盘回显仍然损坏。
有趣的是,我可以通过几种不同的方式恢复键盘回声:
1)stty echo
2)irb
运行其中任一命令都会恢复键盘回声,直到再次使用 CTRL-C 退出其中一个有问题的命令。
我尝试将我的终端仿真设置为 rxvt 和 xterm-color,但更改这个似乎没有什么区别。
答案1
要重置您的终端,请使用reset
命令。
我不明白为什么tail
会cat
造成这个问题,因为他们不应该做任何影响终端线路设置的事情。您使用的是 Terminal.app 还是其他终端?您使用的是 Bash 还是其他 shell?您正在运行吗screen
?您是否还有其他可能使用 curses 或进行其他屏幕操作的东西?您是否有trap
Ctrl-C 的设置?
答案2
答案3
答案4
我在 ssh 会话中遇到此问题(我认为是运行 screen),该会话连接到 Linux 机器。如果我将rsync
需要密码的命令传输到less
,less
可能会有点混乱。Ctrl-C 可以让我摆脱这种情况,但之后键盘回显有时不起作用。
@Michael Guterl 的解决方案解决了该问题:
stty echo
附言:我正在运行苹果内置的 bash:4.2.45(2)-release (i386-apple-darwin12.3.0)