Skip to main content 41q.ru

Управляющие Символы И Терминал

Терминал и ввод с клавиатуры

П е ч а т н С ы и е м в о л У ы п р а в л я ю щ и е
  • Печатные символы не имеют какого-либо специального значения
  • Управляющие - сообщают компьютеру, как интерпретировать ввод
Note
Термин “управляющие” я раньше не встречал. Обычно они называются непечатными.

Return – это пример управляющего символа, невидимый символ, который управляет некоторыми аспектами ввода с терминала и вывода на него.

Другие управляющие символы вводятся комбинацией клавиш. Например:

  • ctrl-m - альтернативное имя для Return
  • ctrl-d, который сообщает программе, что ввод закончен
    • (распространнённый символ. им часто завершается сеанс интерпретатора. Например у python)
  • ctrl-g, который воспроизводится на терминале как звуковой сигнал
    • проверил - работает на маке.
  • ctrl-h, обычно называемый Backspace (возврат на одну позицию), с помощью которого исправляют ошибки;
    • тоже работает
  • ctrl-i – символ табуляции
    • бгг, тоже работает как tab(zsh пытался выполнить автокомплит)
  • ctrl-u символ удаления строки
    • да, стирает строку на маке

Ещё две клавиши - Delete и Break.

В большинстве систем UNIX нажатие клавиши Delete немедленно останавливает программу, не ожидая ее завершения. В некоторых системах эту функцию выполняет ctrl-с.

Символ и его интерпретация

Очень важно различать значение, сохраняемое для символа в файле, и то, как он интерпретируется в различных ситуациях. …

Например, символ возврата на одну позицию (Backspace)

  1. Если этот символ в конкретной системе служит для удаления, ядро интерпретирует его как отказ от предыдущего введенного символа

  2. Если же ввести последовательность \←, ядро интерпретирует это не как введение специального символа возврата, а как желание поместить символ возврата в поток ввода, поэтому символ \ отбрасывается, а байт 010 помещается в файл.

  3. При выводе файла, содержащего символ возврата, последний не интерпретируется терминалом, а вызывает перемещение курсора назад.

Я так попал, например, когда пытался сохранить руководство по man в файл. Простой вывод через > в файл сохранил управляющие симолы (Backspace (\b) в файл.