
Меня только ssh
что завели на мой сервер (Ubuntu 10.04.2), и я запустил aptitude
(в интерактивном режиме). Как только я нажал одну клавишу (одну из букв, gя думаю), это превратилось в это (не просто сеанс SSH; это поведение продолжалось и после того, как я завершил сеанс ssh
):
Я могу подключиться снова, и все будет в порядке, но когда я aptitude
снова запускаю устройство, возникает та же проблема (но, как ни странно, она ограничивается пределами aptitude
).
Кто-нибудь знает, что может происходить? Если это поможет, я работаю screen
с byobu
профилем, мой $TERM
— screen-bce
, и я использую Terminal.app
на 10.6.7.
решение1
Вы можете использовать команду reset
, чтобы вернуть свой обычный терминал.
Что касается причины этого, то каким-то образом ваш терминал получает двоичные данные, а не ASCII.
решение2
Я понимаю, что этой теме уже почти год, но поскольку я сам только что столкнулся с этой проблемой после использования «cat» для отображения содержимого исполняемого файла в приложении Terminal.app от Apple, я полагаю, что эта ситуация может затронуть и будущих пользователей.
В любом случае, насколько я могу судить, странные символы появляются после того, как печатается символ ASCII «сдвиг наружу» (десятичное число 14, 0x0E). (Ну, слово «печатается» может быть неуместным, потому что, по крайней мере для Terminal.app, это непечатаемый символ, но я надеюсь, вы понимаете, что я имею в виду.) К счастью, терминал возвращается в нормальное состояние, если печатается символ ASCII «сдвиг внутрь» (десятичное число 15, 0x0F).
Другими словами, если бы кто-то написал программу на языке C, например...
#include <stdio.h>
int main() {
printf( "\x0F" );
return 0;
}
Это должно вернуть все в нормальное состояние. Вероятно, есть еще более простой способ на другом языке или в оболочке bash, но, надеюсь, вы поняли идею.
По-видимому, это странное поведение не является ошибкой, а скорее неясной (по крайней мере, для меня) особенностью. Когда я искал информацию, меня направили к ISO 2022, который, похоже, является основой того, что делает терминал. ВотСтатья в Википедии о стандарте ISO/IEC 2022.
Надеюсь, этот пост оказался полезным, поскольку теперь тайна странных персонажей раскрыта.
решение3
Пункт меню
Терминал > Shell > Отправить сброс
сбрасывает состояние терминала до значений по умолчанию, включая набор символов, что решает данную конкретную проблему.