我一直无法看到我在 bash 中输入的内容。提示符出现,我仍然可以运行命令,但我正在盲目地输入它们。
这发生在多个操作系统上(KDE/konsole、ubuntu 14.04 和 fedora 26)。它通常发生在之后Ctrl+C,但非常间歇。它一定与我使用的一个或多个脚本有关,我想知道如何调试正在发生的事情。stty sane
修复了终端,但这种情况每天都会发生很多次。我试过清空我的PS1
和PROMPT_COMMAND
变量,但似乎不是它们。
- 究竟发生了什么事情,让文本变得不可见呢?
- 我怎样才能缩小原因范围?
答案1
首先,你可以用以下方法修复这个问题
stty echo
(而且当然,man stty
)。
您的一个脚本有缺陷,它关闭了字符回显,但无法将其打开(在 中bash
,通过trap
buitin)。
在早期(1967 年),计算机访问是通过远程终端(如 TeleType ASR-35 和 KSR-33)进行的,速度为 110 波特。
有两种方式可以将字符发送到另一端的计算机:半双工,其中字符在本地回显,并且可能发送到计算机;全双工,其中字符不在本地回显,而是发送到计算机,计算机将每个字符回显回终端,以进行验证。
让计算机(1970 年运行 Unix)知道 TeleType 的配置方式是通过stty -echo
和完成的stty echo
(请参阅man stty
)。
stty echo
包含在内stty sane
。stty sane
绝不会伤害。
Unix“tty”概念至今仍在您的终端中使用。