21.3. Возможности консоли Linux
21.3. Возможности консоли Linux
Консоль Linux, как и большинство терминалов, является модальной: ее взаимодействие с данными зависит от того, в каком режиме она находится. По умолчанию она выводит на экран передаваемые символы, пока не получает управляющий символ или символ перехода. Управляющий символ просто вызывает некоторое регулирующее действие, а следующий символ уже читается обычным образом. Изменений в режиме обработки не происходит. Символ перехода сигнализирует о начале управляющей последовательности и изменяет режим обработки на режим управления.
Например, рассмотрим следующую строку С:
"this is a line a 33[1mbold33[0m word "
Консоль обрабатывает эту строку в описанной ниже последовательности.
1. Начиная с текущей позиции курсора, консоль печатает слова this is a line.
2. Обнаруживается символ новой строки ( ), поэтому (так как Linux и Unix обычно работают в режиме, когда новая строка сигнализирует также о возврате каретки) консоль перемещает курсор в начало следующей строки. При этом если курсор уже был на самой нижней строке, весь экран прокручивается вверх на одну строку.
3. В начале данной линии отображается строка а.
4. Консоль сталкивается с символом перехода 33 и переводится в управляющий режим.
5. Считывается символ [, консоль переходит в режим ввода командной последовательности (Command Sequence Introduction — CSI).
6. В режиме CSI считывается последовательность десятичных чисел, закодированных в ASCII и разделенных знаками ;, которые называются параметрами. Это продолжается до тех пор, пока не встретится первая буква. Буква определяет действие, которое нужно предпринять, с учетом данных в параметрах. В данном случае имеется один параметр 1, а буква m означает, что параметр используется для определения изображения символа. Например, параметр 1 устанавливает атрибут полужирного шрифта.
7. Распечатывается строка bold в полужирном представлении.
8. Далее идет другая последовательность изображения символов, которая восстанавливает все стандартные атрибуты, поэтому строка word выводится в обычном изображении.
9. В завершение встречается и обрабатывается еще один символ новой строки.
Таким образом, считая, что курсор находился в начале строки, выходные данные полностью будут выглядеть примерно так:
this is a line
a bold word