Цветная и удобная командная строка Linux

5 месяцев назад в linux

Color BASH line
Вы видели консоль Linux? по умолчанию консоль Черно-Белая и прямо скажем унылая

Что касается командной строки - ее можно сделать цветной, удобной и информативной.

Нам понадобятся 2 таблички

ТАБЛИЦА ЦВЕТОВ

ЦветКод
Черный0;30
Синий0;34
Зеленый0;32
Циан0;36
Красный0;31
Пурпурный0;35
Коричневый0;33
Светло-серый0;37
Темно-серый1;30
Светло-синий1;34
Светло-зеленый1;32
Светло-циан1;36
Светло-красный1;31
Светло-пурпурный1;35
Желтый1;33
Белый1;37
Без цвета0

ТАБЛИЦА ДИРЕКТИВ

ДирективаЗначение
\aASCII символ (07) динь
\dдата в формате "Weekday Month Date" format (e.g., "Tue May 26")
\D{format}дата в формате strftime(3)
\eASCII escape символ (033)
\hhostname первый`.'
\Hhostname
\jкол-во jobs в текущей консоли
\nновая строка
\rвернуть каретку в начало
\sИмя консоли
\tвремя в 24-часовом формате HH:MM:SS
\Tвремя в 12-часовом формате HH:MM:SS
@время в 12-часовом формате + am/pm
\Aвремя в 24-часовом формате HH:MM
\uТекущий пользователь
\vВерсия bash
\VРелиз bash, version + patch level
\wтекущая рабочая папка, $HOME с тильдой в начале
\Wбазовая папка текущей директории, $HOME с тильдой в начале
\!количество команд истории
\#номер команды
\$UID = 0, ставит #, или $
\\backslash
\[начало сочетания не печатаемых символов
\]конец сочетания не печатаемых символов

Вид строки меняется вводом команды PS1="Набор команд для модификации строки"

В командную строку мы можем выводить различную полезную информацию. Например текущее время, папку где мы находимся, и другие вкусности.

Цвета задаются специальной комбинацией \[\033[ЦВЕТm где цвет заменяется значением из таблицы выше
Например: \[\033[0;31m - Красный, \[\033[0;34m - Синий ...

Примеры вариантов конфигураций командной строки

Стандартная строка, но светло-красного цвета

PS1="\033[1;31m[\u]@\h: \033[0m"

Разберем по элементам

меняем цвет на светло-красный \033[1;31m + символ [ + имя текущего пользователя \u + символы ]@ + вставляем имя нашего хоста \h + символ : + пробел + отключаем раскраску, что бы все вводимое было стандартным ЧБ \033[0m

Более сложная строка

PS1="\[\033[0;33m[\t] \033[1;32m\u\[\033[m@\[\033[1;35m\h:\ [\033[33;1m\]\w\[\033[m$"

Разберем по элементам

Ставим коричневый цвет \[\033[0;33m + символ [ + текущее время \t + символ ] + пробел + ставим светло зеленый цвет \033[1;32mимя текущего пользователя \u + убираем цвет \[\033[m + символ @ + ставим светло-пурпурный цвет \[\033[1;35m + вставляем имя нашего хоста \h + символ : + меняем цвет на желтый \[\033[33m\] текущий путь \w + отключаем цвет \[\033[m\] + символ $

Строка с обработчиками

Усложним прошлый пример
Теперь добавим в конце символ $, который будет изменять цвет в зависимости от того была ли ошибка при выполнении прошлой команды
PS1="\[\033[0;33m[\t] \033[1;32m\u\[\033[m@\[\033[1;35m\h:\033[33;1m\]\w\[\033[m\`if [ \$? = 0 ]; then echo \[\e[32m\] \$\[\e[0m\]; else echo \[\e[31m\] \$\[\e[0m\]; fi\` "

Теперь не составит труда, имея обе таблицы сделать себе именно такую консоль, как хочется

После того, как наиграетесь - запишите эту строку в файл ~/.bashrc
и она сразу будет установлена после перезапуска системы.

Ну и напоследок вкусняшка! http://bashrcgenerator.com/ онлайн генератор PS1 строки

Если Вам понравился данный пост, поддержите автора, проголосовав за этот пост.
Голосующие читатели, также, получают вознаграждение за свой голос.
Для этого зарегистрируйтесь и проголосуйте за пост.
Наш чат в RocketChat