Как восстановить входной эхо-сигнал в терминале?
Иногда, когда сценарий убивается при запросе пароля, я больше не вижу, что мой ввод отображается в терминале. То есть обычно в терминале я вижу это:
$ _
<after typing 'foobar':>
$ foobar_
Но в этом случае я не вижу, что я напечатал.
Я знаю, что могу перезапустить терминал, чтобы восстановить его обычные настройки, но есть ли способ восстановить входной эхо без перезагрузки?
2 ответа
Для Баш я обычно просто набираю reset
и это исправляет все, что осталось "смешным". Похоже, это также известно как tset
но вызов каждого делает что-то немного другое.
tset, reset - terminal initialization
When invoked as reset, tset sets cooked and echo modes, turns off
cbreak and raw modes, turns on newline translation and resets any unset
special characters to their default values before doing the terminal
initialization described above. This is useful after a program dies
leaving a terminal in an abnormal state. Note, you may have to type
<LF>reset<LF>
(the line-feed character is normally control-J) to get the terminal to
work, as carriage-return may no longer work in the abnormal state.
Also, the terminal will often not echo the command.
Использовать stty
команда. В частности, запустите эту команду:
stty echo
Это восстановит эхо (печать вводимых символов), которое, вероятно, было отключено во время запроса пароля.
Чтобы увидеть все настройки терминала, запустите stty -a
, В то время как ввод был скрыт, это должно показать -echo
где-то на выходе. После исправления он должен показывать вместо echo
на своем месте.