Символы TTY перепутаны после кошки устройство или печати Python

Так, когда я cat /dev/input/mouse0 в TTY переместите мышь немного, и затем ctrl-z остановиться cat, все испорчены мои терминальные символы. Почти каждый символ выгружается для другого символа в наборе символов ASCII. Эта та же ситуация происходит, когда я выполняю это в Python 3.2:

print('\033[1;12mTest.\033[1;m')

Тот же признак не появляется на оболочке в GUI, только на виртуальных терминалах. Проблема не уходит, если я выхожу из системы. Я подозреваю, что определенный управляющий код (который может содержаться в рамках кода Python) повторно отображает коды байта ASCII на символьные представления, но это - просто предположение. Что происходит и как я отменяю его?

2
задан 14 April 2012 в 04:22

2 ответа

Я наконец нашел команду, которую искал, в Командная строка Фу . Команда reset. Я попробовал это, и это работало отлично, без выхода из системы или перезапуска системы.

0
ответ дан 14 April 2012 в 04:22

При выводе двоичных файлов на терминал, как и ваш cat /dev/input/mouse0, вы можете отправить ему ЛЮБОЙ символ. Это может запутать виртуальный терминал.

Строка символов ESC [ представляет «Последовательность управления VT100» (совместимость со старым стеклянным клавишным штампом). Другие персонажи, такие как ^ Q , ^ S , ^ N , ^ O делают магические вещи, основываясь на совместимости с телетайпами модели 35 с бумагой считыватель магнитных лент / перфоратор.

Когда я пытаюсь сбить с толку терминал, я делаю:

Заморожен ли вывод? Введите ^ Q (ctrl-Q) (символ XON, чтобы запустить устройство чтения бумажных лент).

Введите команду stty sane. Если при вводе нет отображаемых символов, stty echo восстановит эхо.

Прочтите man stty, и вы увидите, как можно сохранить набор настроек терминала и восстановить их позже!

Кстати, остановка программы использует crtl-C для остановить программу. Ctrl-Z просто прерывает программу, готовясь поместить ее в фоновый режим. Некоторые программы перехватывают ^ C и по мере необходимости выполняют необходимую очистку, сохранение файлов и т. Д. Если вы просто ^ Z и запустите что-то еще, эта очистка не будет завершена.

0
ответ дан 14 April 2012 в 04:22

Другие вопросы по тегам:

Похожие вопросы: