Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

Додавання кольору

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


зображення

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

Ще в стародавні часи, коли термінали були підключені до віддалених комп’ютерів, існувало багато конкуруючих марок терміналів, і всі вони працювали по-різному. У них були різні клавіатури, і всі вони мали різні способи інтерпретації контрольної інформації. Unix і Unix-подібні системи мають дві досить складні підсистеми для вирішення проблеми термінального контролю (наз termcap та terminfo). Якщо ви заглянете в найглибші заглиблення налаштувань емулятора терміналу, ви можете знайти налаштування для типу емуляції терміналу.

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


Колір символу керується відправкою емулятора терміналу an ANSI код виходу вбудовується в потік символів, що відображаються. Керуючий код не «виводиться» на дисплей, а інтерпретується терміналом як інструкція. Як ми бачили в таблиці вище, \[ та \] послідовності використовуються для інкапсуляції недрукованих символів. Escape-код ANSI починається з вісімкової цифри 033 (код, створений клавішею escape), за яким слідує необов'язковий символ символу, за яким слідує інструкція. Наприклад, код для встановлення кольору тексту на нормальний (атрибут = 0), чорний текст:

\033[0;30м

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


Таблиця 13-2: Escape-послідовності, що використовуються для встановлення кольорів тексту


Послідовність

Колір тексту

Послідовність

Колір тексту

\033[0;30м

Black

\033[1;30м

Темно-сірий

\033[0;31м

червоний

\033[1;31м

Світло-червоний

\033[0;32м

зелений

\033[1;32м

Світло-зелений

\033[0;33м

коричневий

\033[1;33м

Yellow

\033[0;34м

синій

\033[1;34м

Блакитний

\033[0;35м

фіолетовий

\033[1;35м

Світло-пурпуровий

Додавання кольору


\033[0;36м

Блакитний

\033[1;36м

Світло-блакитний

\033[0;37м

Світло-сірий

\033[1;37м

білий


Давайте спробуємо зробити червону підказку. Ми вставимо escape-код на початку:



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

$

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

$


Це працює, але зверніть увагу, що весь текст, який ми вводимо після підказки, також червоний. Щоб виправити це, ми додамо інший escape-код в кінець підказки, який повідомляє емулятору терміналу повернутися до попереднього кольору:



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

$

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

$


Так краще!

Також можна встановити колір фону тексту за допомогою кодів, наведених нижче. Кольори фону не підтримують жирний атрибут.


Таблиця 13-3: Escape-послідовності, що використовуються для встановлення кольору фону


Послідовність

Колір фону

Послідовність

Колір фону

\033[0;40м

Black

\033[0;44м

синій

\033[0;41м

червоний

\033[0;45м

фіолетовий

\033[0;42м

зелений

\033[0;46м

Блакитний

\033[0;43м

коричневий

\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: