Ylberi në komandën e linjës

Скоро Новый Год, думать о серьёзной работе уже не хочется.

Все стараются что-нибудь украсить к празднику: дом, офис, рабочее место… Давайте и мы что-нибудь украсим! Например, приглашение командной строки. В какой-то мере командная строка – тоже рабочее место.

В некоторых дистрибутивах она уже «украшена»:

Ylberi në komandën e linjës

В других – она серая и неприметная:

Ylberi në komandën e linjës

А мы можем сделать, например, вот так:

Ylberi në komandën e linjës

Конечно, на вкус и цвет все фломастеры разные. Если подобная раскраска кажется вам аляповатой и неуместной, то знайте, что данная точка зрения имеет полное право на жизнь. А если вам тоже хочется добавить немного новогоднего настроения, читайте далее небольшую новогоднюю статью от Cloud4Y.

Для начала поясню, как «раскрашивается» вывод терминала. Делается это при помощи escape-последовательностей. А если точнее – управляющих кодовых последовательностей терминала ANSI/VT100. Что автоматически означает, что ваш эмулятор терминала должен этот стандарт поддерживать, иначе новогоднего чуда не случится. И да, предполагается, что $SHELL у вас bash.

Escape-последовательностями эти команды называют по той причине, что в начале каждой из них идёт ASCII-символ «escape». Управляющих последовательностей много, и они позволяют, к примеру, выводить настройки терминала, управлять отображением и перемещением курсора, изменять шрифт, удалять и скрывать текст. Мы же из всего разнообразия возможностей выберем одну – изменение цвета текста и фона.

Выполняем кодовую последовательность *ESC*[{attr1};...;{attrn}m
В качестве символа Ikona Escape используется его восьмеричная форма, то есть 33. Что касается атрибутов, то вот краткий перечень возможных значений:

0 Сбросить все атрибуты
1 Bright (повышенная яркость)
2 Dim (затемнение)
4 Underscore (нижнее подчеркивание)
5 Blink (мигание)
7 Reverse (инверсия)
8 Hidden (скрыть текст)

Foreground Colours (цвет пера, этим цветом выводится текст):
30 Black (черный)
31 Red (красный)
32 Green (зеленый)
33 Yellow (желтый)
34 Blue (синий)
35 Magenta (пурпурный)
36 Cyan (голубой)
37 White (белый)

Background Colours (цвет бумаги, или цвет фона):
40 Black (черный)
41 Red (красный)
42 Green (зеленый)
43 Yellow (желтый)
44 Blue (синий)
45 Magenta (пурпурный)
46 Cyan (голубой)
47 White (белый)

Обратите внимание, если теперь вы скомандуете в терминале: echo 33[0;31mнекоторый текст 33[0m’

… то предсказуемо получите на выходе монохромную абракадабру:

Ylberi në komandën e linjës

Почему? Потому, что надо было задействовать расширенные возможности команды echo. Достаточно добавить один ключик: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

Теперь вывод будет выглядеть правильно:

Ylberi në komandën e linjës

С раскраской вывода на терминал разобрались. Теперь давайте посмотрим, как раскрасить приглашение командной строки.

Это делается через изменение переменной PS1. Переменная отвечает за приглашение командной строки. Её внешний вид также можно изменять, в том числе при помощи escape-последовательностей. Но есть небольшое отличие: начинать последовательность нужно символом “[”, а завершать символом “]”, иначе она будет выведена на терминал.

Все возможные командные последовательности подробно изложено в мануале по bash, так что я предлагаю читателям самостоятельно выбрать, что им больше нравится наблюдать в приглашении командной строки. В качестве примера приведу своё значение переменной PS1:

[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n

Расшифрую это страшное заклинание:

[ 33[34;1m] — включаем ярко-синий (второй атрибут) цвет шрифта
t – выводим текущее время в формате ЧЧ: ММ: СС
[ 33[0m] – сброс настроек цвета шрифта
, — просто запятая (неожиданно, правда?)
[ 33[32m] — включаем зелёный цвет шрифта
u@l@h – выводим имя пользователя, номер терминального устройства и краткое имя хоста, разделяя символом “@”
[ 33[0m] — снова сбрасываем настройки цвета шрифта
: — просто двоеточие (внезапно!)
[ 33[33m] — включаем жёлтый цвет шрифта
W – выводим имя текущего каталога
[ 33[0m] — опять сбрасываем настройки цвета шрифта
, — ещё одна запятая (кто бы мог подумать!)
[ 33[31m] — включаем красный цвет шрифта
! — выводим номер команды в терминале
[ 33[0m] — не забываем сбросить настройки цвета шрифта
$ — выводим “#” для root и “$” для всех остальных
n – перевод строки. Зачем? Чтобы команда начиналась с левого края окна, а не с позиции конца приглашения командной строки.

Где переопределить переменную? Логичнее всего это сделать в ~/.bashrc.

Внешний вид приглашения ограничен только вашей фантазией. В принципе, вам ничто не мешает с помощью вышеописанного инструментария сделать приглашение командной строки в виде новогодней ёлочки. Правда, такое приглашение будет очень громоздким, и удобнее работа точно не станет. Ёлочку можно просто выводить над приглашением командной строки при входе в систему (всё равно нам нужно редактировать ~/.bashrc). Дерзайте! И спасибо за внимание.

Ylberi në komandën e linjës

Çfarë tjetër të dobishme mund të lexoni në blog Cloud4Y

Konfigurimi i top në GNU/Linux
Pëntesterat në vijën e parë të sigurisë kibernetike
Стартапы, способные удивить
A nevojiten jastëkë në Qendrën e të Dhënave?
Дом, который построил робот

Regjistrohuni në kanalin tonë Telegram-канал, чтобы не пропустить очередную статью! Пишем не чаще двух раз в неделю и только по делу. Также напоминаем, что корпоративный облачный провайдер Cloud4Y запустил акцию «Облако ФЗ-152 по цене обычного». Подать заявку можно до 31 декабря.

Burimi: habr.com

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster