Так что я замечал, что такое случалось не раз.
Если я правильно помню, это обычно происходит прямо перед OOM и / или паникой ядра: если вы наберете tty, а затем попытаетесь вернуть его на место, те же символы будут напечатаны в обратном порядке.
В прошлом для меня это было просто интересной странностью, но недавно это случилось снова, и мне стало больше любопытно, что на самом деле вызывает это. (Это отправляет символы обратно в STD_OUT или что-то в этом роде?)
Есть у кого-нибудь идеи? Чувствую, ответ будет интересным.
Я так понимаю, если вы набрали Привет мир, затем попытался вернуть его:
hello world..dlrow olleh
Это связано с неправильными настройками терминала - вы можете убедиться в этом, выполнив stty -a
и ищу echoprt
опция, которая контролирует это. Из stty (1) справочная страница, эта опция "отображает стертые символы назад, между '\' и '/'` ".
Чтобы быстро это исправить, введите stty sane
, то что-то вроде stty erase '^H'
для backspace или `stty erase '^?' для удаления (это два символа в конце в кавычках). Увидеть backspace / delete часть клавиатуры Linux HOWTO для большего.
Было бы интересно посмотреть, происходит ли это на всех консолях Linux (Alt-F1, Alt-F2 и т. Д.) И / или на псевдо-tty, используемых в окнах терминалов на основе X. Не могу понять, как условие OOM может вызвать это, поскольку оно управляется ядром.
Историческая справка: echoprt
вариант изначально был разработан для терминалы телетайпа у которого вместо экрана был принтер, так как это был единственный способ показать операцию возврата / удаления - это был стандартный терминал при создании Unix. Эта статья имеет хорошее объяснение подсистемы терминала Linux (TTY).