Что я могу сделать, если bash перестает отражаться?

10

Одно из приложений, которое я использую на работе, иногда связывает мой bash, и поэтому я больше не вижу своего собственного ввода. Т.е.

$ echo foo
foo
$

становится

$ foo $

Я неправильно попытался запустить, stty -echoчто еще больше ухудшило ситуацию, и теперь он прекращает принимать команды все вместе, которые переводят мой ввод в некое состояние, которое просто >появляется каждый раз, когда я перерываю строку и ничего больше.

Что я должен был сделать?

Кит Сунде
источник
2
Попробуйте бежать resetдля хорошего начала. Конечно , вы не можете ввести любую команду в настоящее время в этот терминал таким образом , с другой один попробовать что - то вроде cat >/dev/pts/3где 3ваш проблематично номер терминала , а затем нажмите следующие клавиши: ESC c ENTER Ctrl-D.
Джимми

Ответы:

19

Обычное средство от таких вещей

stty sane

Это stty -echoне должно было усугубить ситуацию, так как это просто отключило эхо ввода, и у вас это уже было.

Тот факт, что вы говорите, что return вызывает просто >появление, означает, что вы начали что-то, что вызывает продолжение в следующих строках, например, echo 'сделает это, потому что ожидает закрытия, 'чтобы завершить строку. Другие вещи будут вызывать это также, такие как if something; это ждет then ... fiчасти.

Возможно, вы могли бы нажать ctrl- cна этом этапе, чтобы остановить ожидание остальной части команды, если только терминал не был настолько испорчен, что прерывания также не генерировались.

wurtel
источник
Ах, это имеет смысл. Я попробовал удары как ctrl + cи , ctrl + zно, похоже , не достичь ничего.
Кит Сунд
3

В дополнение к ответу @ wurtel (особенно вероятному объяснению >проблемы) stty echoесть противоположность stty -echo, так что вы можете использовать это. Вы также можете использовать reset, который обычно поставляется с пакетами ncurses.

peterph
источник