Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Добавление цвета

Большинство программ-эмуляторов терминала реагируют на определенные непечатаемые последовательности символов для управления такими вещами, как атрибуты символов (например, цвет, полужирный текст и ужасно мигающий текст) и положение курсора. Мы немного рассмотрим положение курсора, но сначала посмотрим на цвет.


изображение

Терминальная путаница

В древние времена, когда терминалы подключались к удаленным компьютерам, существовало множество конкурирующих марок терминалов, и все они работали по-разному. У них были разные клавиатуры, и все они по-разному интерпретировали управляющую информацию. Unix и Unix-подобные системы имеют две довольно сложные подсистемы для работы с бабелем терминального управления (называемой TERMCAP и TERMINFO). Если вы заглянете в самые глубокие уголки настроек эмулятора терминала, вы можете найти настройку типа эмуляции терминала.

Стремясь заставить терминалы говорить на каком-то общем языке, Американский национальный институт стандартов (ANSI) разработал стандартный набор последовательностей символов для управления видеотерминалами. Старые пользователи DOS будут помнить AN-SI.SYS файл, который использовался для интерпретации этих кодов.


Цвет символа контролируется отправкой эмулятору терминала Escape-код ANSI встроены в поток отображаемых символов. Управляющий код не «распечатывается» на дисплее, а интерпретируется терминалом как инструкция. Как мы видели в таблице выше, \[ и \] последовательности используются для инкапсуляции непечатаемых символов. Код перехода ANSI начинается с восьмеричного числа 033 (код, сгенерированный клавишей перехода), за которым следует необязательный символьный атрибут, за которым следует инструкция. Например, код для установки обычного цвета текста (атрибут = 0), черный текст:

\ 033 [0; 30 м

Вот таблица доступных цветов текста. Обратите внимание, что цвета разделены на две группы, различающиеся применением атрибута жирного шрифта (1), который создает видимость «светлых» цветов:


Таблица 13-2: escape-последовательности, используемые для установки цвета текста


Последовательность

Цвет текста

Последовательность

Цвет текста

\ 033 [0; 30 м

Черный

\ 033 [1; 30 м

Темно-серый

\ 033 [0; 31 м

Red

\ 033 [1; 31 м

Светло-красный

\ 033 [0; 32 м

Зелёная

\ 033 [1; 32 м

Светло-зеленый

\ 033 [0; 33 м

Brown

\ 033 [1; 33 м

Жёлтые

\ 033 [0; 34 м

Синии

\ 033 [1; 34 м

Светло-синий

\ 033 [0; 35 м

Purple

\ 033 [1; 35 м

Светло-фиолетовый

Добавление цвета


\ 033 [0; 36 м

Голубой

\ 033 [1; 36 м

Светло-голубой

\ 033 [0; 37 м

Светло-серый

\ 033 [1; 37 м

Белый


Попробуем сделать красную подсказку. Мы вставим escape-код в начало:



$ PS1 = "\ [\ 033 [0; 31 м \] <\ u @ \ h \ W> \ $"

$

$ PS1 = "\ [\ 033 [0; 31 м \] <\ u @ \ h \ W> \ $"

$


Это работает, но обратите внимание, что весь текст, который мы вводим после приглашения, также красный. Чтобы исправить это, мы добавим еще один escape-код в конец приглашения, который сообщает эмулятору терминала вернуться к предыдущему цвету:



$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "

$

$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "

$


Так-то лучше!

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


Таблица 13-3: Последовательности выхода, используемые для установки цвета фона


Последовательность

Цвет фона

Последовательность

Цвет фона

\ 033 [0; 40 м

Черный

\ 033 [0; 44 м

Синии

\ 033 [0; 41 м

Red

\ 033 [0; 45 м

Purple

\ 033 [0; 42 м

Зелёная

\ 033 [0; 46 м

Голубой

\ 033 [0; 43 м

Brown

\ 033 [0; 47 м

Светло-серый


Мы можем создать приглашение с красным фоном, применив простое изменение к первому escape-коду:



$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "

<me@linuxbox ~> $

$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "

<me@linuxbox ~> $


Попробуйте цветовые коды и посмотрите, что вы можете создать!


изображение

Примечание. Помимо атрибутов обычного (0) и жирного (1) символа, тексту также могут быть присвоены атрибуты подчеркивания (4), мигания (5) и инверсии (7). Однако в интересах хорошего вкуса многие эмуляторы терминала отказываются учитывать атрибут мигания.


изображение


Лучшие облачные вычисления для ОС в OnWorks: