После запуска программ, которые выводят нераспознаваемый код, вся оболочка будет заполнена нераспознаваемым кодом.
Как я могу это исправить?
После запуска программ, которые выводят нераспознаваемый код, вся оболочка будет заполнена нераспознаваемым кодом.
Как я могу это исправить?
Вы пробовали команду reset
unix?
Обычно это результат сброса двоичного файла (программы или файла данных) в терминал (cat some.mp3
или аналогичный). Обычно ввод reset
приводит ваш терминал в порядок. Если это не сработает, следующая вещь, которую стоит попробовать - это функция сброса в вашем терминальном приложении - найдите ее в меню приложения. (У PuTTY, например, в системном меню есть Reset Terminal
.)
Редко, ни один из этих способов не работает, и вам просто нужно закрыть этот терминал или оболочку и запустить другой.
Возможно, искаженные символы вызваны тем, что терминал получает символ SI
(Shift In; ASCII 14; Control-N). SI
является управляющим символом VT100, который может заставить терминал переключаться на альтернативный набор символов. Многие реальные терминалы (например, реальное аппаратное устройство или просто текстовая консоль ОС) и терминальные программы поддерживают этот управляющий код.
Прямой способ вернуться к обычному набору символов - отправить символ SO (Shift Out; ASCII 15; Control-O) на терминал.
Поскольку набор символов переключен, вам, возможно, придется набирать команды восстановления «вслепую» (не полагаясь на то, что вы набрали).
Обычно команда echo
будет полезна. Часто вы можете напечатать
E C H O Управление пространством - Управление V - O Ввод / Возвращение
чтобы терминал увидел Control-O (Control-V сообщает входной стороне терминала, что следующий должен быть передан буквально, в противном случае входная сторона «съест» символ, прежде чем получит оболочку и, таким образом, прежде чем он может быть отправлен обратно на выходную часть терминала).
Если вы можете принять разумную оболочку со встроенной функцией printf
(или без встроенной оболочки и разумной внешней командой printf
), вы можете использовать printf '\017'
для отправки Control-O на терминал.