Подтвердить что ты не робот

Почему мои нажатия клавиш превращаются в сумасшедших персонажей после того, как я сброшу кучу двоичных данных в терминал?

Если я сделаю что-то вроде:

$ cat /bin/ls

в мой терминал, я понимаю, почему я вижу кучу двоичных данных, представляющих исполняемый файл ls. Но потом, когда я вернусь назад, мои собственные нажатия клавиш выглядят сумасшедшими. Я набираю "a", и я получаю странную диагональную линию. Я набираю "b" и получаю символ степени.

Почему это происходит?

4b9b3361

Ответ 1

Поскольку где-то в ваших двоичных данных были некоторые управляющие последовательности, которые ваш терминал интерпретировал как запросы, например, изменить набор символов, используемый для рисования. Вы можете восстановить все в обычном порядке:

reset

Ответ 2

Просто сделайте копию:

echo -e '\017'

к вашему bash, и символы вернутся в нормальное состояние. Если вы не запустите bash, попробуйте следующие нажатия клавиш:

<Ctrl-V><Ctrl-O><Enter>

и, надеюсь, ваш статус терминала вернется в нормальное состояние, когда он пожалуется, что он не может найти команду Ctrl + V > < Ctrl-O > или .

< Ctrl-N > или символ 14 - после отправки в ваши терминальные заказы перейти к специальному графическому режиму, где буквы и цифры заменяются символами. < Ctrl-O > или символ 15, восстанавливает все в порядке.

Ответ 3

Вы получаете контрольные символы, переданные в оболочку, которые сообщают оболочке об изменении своего поведения и печати по-разному.

Ответ 4

Терминал попытается интерпретировать двоичные данные, брошенные на него в виде управляющих кодов, и взломать себя в процессе, так что вам нужно санировать вашу tty.

Run:

stty sane

И все должно вернуться к нормальной жизни. Даже если команда выглядит искаженной при ее вводе, фактические символы сохраняются правильно, и когда вы нажимаете return, вызывается команда.

Вы можете найти дополнительную информацию о команде stty здесь.

Ответ 5

VT100 - это почти стандартный набор команд, используемый для окон терминала, но есть много расширений. Используется некоторый набор управляющих символов, сопоставление клавиш и т.д.

Когда вы отправляете много двоичных символов на такой терминал, изменяется множество настроек. У некоторых терминалов есть опции, чтобы "очистить" настройки до значения по умолчанию, но в целом они просто не были созданы для двоичных данных.

VT100 и его преемники - это то, что позволяет Linux печатать в цветном тексте (например, цветные листы) в простой терминальной программе.

-Adam

Ответ 6

Если вам действительно нужно выгрузить двоичные данные на ваш терминал, вам будет гораздо лучше, если вы подключите его к пейджеру, например less, который отобразит его в немного более читаемом формате. (Вас также может заинтересовать strings и od, оба могут быть полезны, если вы играете с двоичными файлами.)