57765e86

Неправильный выход из программы


Большие прикладные программы (типа редакторов) часто используют команду stty (или подобную) в своем коде, чтобы временно изменить конфигурацию stty, когда вы работаете с программой. Они могут переводить драйвер устройства в "пропускающий" режим так, чтобы каждый символ, который вы печатаете шел непосредственно в прикладную программу. Отображение драйвером блокируется, так что все, что вы видите на экране, пришло непосредственно из прикладной программы. Таким образом многие команды управления (типа ^C) не могут работать внутри таких приложений.

Когда вы приказываете такому приложению завершиться, прикладная программа первым делом восстановливает установки stty на те, что были перед началом работы прикладной программы. Если вы неправильно вышли из программы (может случиться так, что, то что вы печатаете больше не отображается на экране), тогда вы можете оказаться в командной строке будучи в "прозрачном режиме".

Выйти из прозрачного режима и восстановить нормальный тип установок stty можно напечатав "stty sane". Однако, вы должны напечатать это только после нажатия клавиши "возврат" и закончивть это нажатием "возврат". Но нажатие клавиши "возврат" не оказывает действия, так как код "возврат" больше не транслируется в символ новой строки, чего ждет оболочка. Поэтому вместо "возврат" ввоодите ^J (символ новой строки). "sane" интерфейс терминала может не быть таким же обычным, но обычно это работает. "stty sane" может быть также полезен для выхода из интерфейса, разрушенного по другим причинам.



Содержание раздела