将二进制数据溢出到标准输出后如何“修复”GNU Screen 会话的终端?

将二进制数据溢出到标准输出后如何“修复”GNU Screen 会话的终端?

我怀疑我们都做过类似的事情:

> gpg -d oops.tar.gz.gpg

�@�����÷b�ʘ�K����L:EX��w�)܇�՘����5�     ���#[�7��ﻳ@�Ǎ
�n�Kr��Kyb��3�X���E�_?*A�wp��������DH���g�n�(�4-

导致命令字符被发送到终端并导致各种奇怪的事情发生。通常情况下,只要打字reset,终端就会恢复正常。

然而,当使用 Screen 时,损坏似乎在 后仍然存在reset,导致状态行重复和各种其他娱乐效果。有没有办法以类似于的方式将所有内容恢复到合理的默认值reset

答案1

打字stty sane可能有用。它相当于

stty cread -ignbrk brkint -inlcr -igncr icrnl -iutf8 -ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

它将所有特殊字符设置为其默认值

答案2

许多问题实际上是由包含奇怪字符的屏幕窗口名称引起的。可以使用C-a A编辑窗口名称将名称更改回不带控制字符的名称。可以使用标准 Emacs 组合键(例如C-a a C-k)。

C-a Z然后会将终端重置为其默认值。 (感谢@mosvy。)

相关内容