如何重设损坏的TTY?


15

通过运行以下命令,可以轻松破坏我的Slackware TTY:

cat some_binary_file

命令后,整个TTY将不再显示可读字符,但仍会响应键盘事件。

即使我注销并再次登录,TTY仍然损坏,不再显示可读字符。我必须重新启动计算机才能恢复正常的TTY操作。

有没有不重新启动整个计算机的解决方案?

Answers:


13

运行echo ^v^o,即echo,然后Ctrl-v再按Ctrl-oEnter。您将看不到Ctrl-v。它将显示为echo ^OCtrl-v将其设置为详细模式,并传递控制字符,然后Ctrl-o将会重置终端。


4
只是一个简短的提示:如果TTY完全不可用或日志记录控制台,则可以从任何其他TTY轻松重置它,echo ^v^o > /dev/ttyN其中N是终端号码。
Torben

在MacOSX(10.11.6)/ iTerm2(3.0.12)/ bash(4.1.2)上,这对我不起作用
Ed Randall

25

通常,运行会reset重置终端。不过,某些密钥绑定.inputrc可能会丢失。


超级简单的解决方案,修复了我崩溃的tmux oh-my-zsh窗格。
Shadoninja's

我认为这比公认的答案要好。当您看不到所键入的内容reset比尝试使用组合键更容易键入和按Enter键时,它可以100%地起作用。
塞尔吉奥

12

您可以尝试使用ANSI reset命令:

printf "\033c"

这是唯一在OpenBSD 5.4上工作的程序
execNext 2014年

1
这也从shell(bash)作为echo -e'\ 033c'起作用
Ed Randall

3
@EdRandall是的。请注意,并非所有外壳程序printf都支持“ echo -e”,但它具有可移植的优点,因此无论外壳程序(包括bash)都可以使用。
jlliagre

我想这与IPA中的海鸥变音符无关吗?U + 033C ‹◌̼› \ N {下面
合并

@TRiG确实。与著名的埃里克·坎通纳(Eric Cantona)的报价无关;-)
jlliagre

5

我的终端没有显示我键入的任何字符。其他技巧都无效。这个作品:

stty sane

为我工作。有时我的终端处于无响应状态,但是其他任何建议都不能再将输出返回给我。我尝试过的其他建议但没有奏效:

echo ^v^o
reset
printf "\033c"

资料来源:https : //unix.stackexchange.com/a/79686/53236


0

实际上存在一些潜在的问题,并且可能与您的环境有关。首先,正如@Jesper回答的那样,您想做stty sane。但是,您甚至可能无法由此正确设置环境。

这是由于/bin/bash和之间的差异/bin/sh。打开tty后,运行/bin/bash然后尝试stty sane。这应该解决所有问题。最后,我建议将此类内容添加到.bashrc中

另一个选择是安装健全的tty软件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.