Почему терминалы иногда отображают специальные символы, такие как ^C?

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


sed '$s/$/\n/g' /etc/hosts

6
24.12.2019, 01:33
2 ответа

Терминальные соединения в стиле Unix -изначально разрабатывались для гораздо более медленных (9600 бит/с или даже меньше )соединений, потенциально по коммутируемым -модемным линиям, что могло привести к ошибкам передачи. Функция эха создается драйвером TTY до того, как какое-либо приложение получит ввод, хотя приложения могут отключить функцию эха, если это необходимо.

При подключении к -сильно загруженному серверу и/или по медленному соединению эхо всех символов будет означать, что символы были получены без ошибок. Таким образом, когда вы видите ^C, вы будете знать, что нажатие клавиши Ctrl + C было правильно принято удаленным компьютером. Если не будет никакого немедленного дальнейшего ответа, теперь вы будете знать, что проблема не в связи.

Например, может случиться так, что система слишком занята, чтобы немедленно представить новую командную строку; или может случиться так, что прерванная программа или сценарий имеет обработчик SIGINT, который либо выполняет некоторые действия (, например. резервное копирование любых несохраненных данных )перед выходом или полное игнорирование сигнала прерывания.

0
27.01.2020, 20:24

Запустите это, это просто настройка терминала, по умолчанию все, что вы вводите, повторяется:

stty -ctlecho

Теперь ваш терминал не отображает эти символы.

man stty | less +/ctlecho

[-]ctlecho
echo control characters in hat notation ('^c')

Чтобы сохранить эту конфигурацию на постоянной основе, добавьте ее в свой *файл rc.(~/.bashrcили подобное ).

Чтобы получить список настроек stty, просто введите команду.

6
27.01.2020, 20:24

Теги

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