所以我发现这不止一次。
如果我没有记错的话,这通常发生在OOM之前,和/或内核恐慌,如果你键入一个tty,然后尝试退格,相同的字符反向打印。
这在过去对我来说只是一个有趣的怪事,但是最近又发生了一件事,而且我更加好奇究竟是什么造成的。 (它发送的字符回到STD_OUT什么的?)
有人有什么主意吗? 我有一个感觉,答案将是有趣的。
就这样,我很清楚,如果你input你好世界 ,然后尝试退格:
hello world..dlrow olleh
这是由于terminal的terminal设置搞砸了 – 你可以通过stty -a查看,并寻找控制它的echoprt选项。 从stty(1)手册页 ,此选项“回退擦除的字符,在'\'和'/'`”之间。
为了快速解决这个问题,inputstty sane ,然后像stty erase '^H'退格键或'stty erase'^?' 为删除(这是两个字符在引号结束)。 请参阅Linux键盘HOWTO的backspace / delete部分以获取更多信息。
看看在所有的Linux控制台(Alt-F1,Alt-F2等等)和/或在基于X的terminal窗口中使用的伪tty是否会发生这种情况是有趣的。 由于它由内核pipe理,所以无法解决OOM条件如何导致这种情况。
历史logging: echoprt选项最初devise用于具有打印机而不是屏幕的电传打印机terminal ,因为这是显示退格/删除操作的唯一方式 – 这是Unix创build时的标准terminal。 本文对Linuxterminal(TTY)子系统有很好的解释。