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