问题描述
我使用PuTTY以便通过SSH连接到某些Ubuntu 14.04.4 LTS x64服务器。按下键ENTER
使终端转到新行。但是,某些程序有时会输出一些文本,然后再按ENTER
键不会使终端再转到新行(请参见下面的演示)。
有什么方法可以防止这种情况发生,或者至少在按下ENTER
键时不再导致终端转到新行,还是有办法重置终端,以便ENTER
导致终端再次转到新行?
最佳方案
您可以使用reset命令,方法是键入reset,然后在发生这种情况时按Enter键以重置终端,因此再次按Enter键时它将转到新行。
Command
ubuntu@db200krctc:~$ ubuntu@db200krctc:~$ ubuntu@db200krctc:~$ ubuntu@db200krctc:~$
ubuntu@db200krctc:~$ reset
ubuntu@db200krctc:~$
ubuntu@db200krctc:~$
ubuntu@db200krctc:~$
更多资源
-
reset作为重置调用时,tset设置熟模式和回显模式,关闭cbreak和raw模式,打开换行符转换,并将所有未设置的特殊字符重置为其默认值,然后再执行上述的终端初始化。这在程序死后使终端处于异常状态后非常有用。
次佳方案
在这种特殊情况下,reset
命令的作用超出了您在此实际所需的能力,因为您的问题仅仅是回声已关闭。当您实际需要的只是在操作系统内核中重新配置线路规则,重新打开回显模式并且完全不触摸终端时,reset
实际上会发出控制序列以重置终端本身。
为此,只需使用:
stty sane
甚至只是:
stty echo
reset
解决了以下情况:实际上是终端自身的状态需要重置,而不是(仅)行规状态;也就是说,制表符已被删除,终端被切换到备用屏幕缓冲区,不方便的8位字符集已被换入,依此类推。