Bash — стилизуем командную строку и терминал

monitor_linux

Если вы освоили Linux и настраиваете под себя, то вам приходится использовать терминал и интерпретатор bash.

Захотелось мне изменить внешний вид терминала, а в частности вид самой командной строки. Оказалось это все не так сложно.

Информации на эту тему очень много.

Итак по порядку, начнем с самого терминала

Запустим его, выглядит по умолчанию он вот так:

терминал, внешний вид по умолчанию

Запустим терминал и зайдем в меню сверху правка — настройки

терминал, открываем настройки

В настройках терминала вы найдете вкладки Общие, Вид, Цвета — это те вкладки с параметрами которые содержат опции, влияющие на внешний вид вашего терминала.

Все пункты имеют вполне понятное название и будет не трудно разобраться в них даже новичку.

Вкладка настроек вида. Можно поменять шрифт его параметры. Фон сделать прозрачным — например. Задать размеры терминала которым он соотвутствует при запуске.

настройки терминала вкладка Вид

Вкладка цвета.

Думаю понятно из названия, тут вы сможете поменять цветовую схему терминала.

Настройка терминала, вкладка цвета

Теперь перейдем к интерпретатору Bash

Интерпретатор bash — простым языком это оболочка которая принимает ваши команды и передает их системе.

Из википедии:

Bash (от англ. Bourne again shell, каламбур «Born again» shell — «возрождённый» shell) — усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки.

Представляет собой командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом (или сценарием). Как и все Unix-оболочки, он поддерживает автодополнение имён файлов и каталогов, подстановку вывода результата команд, переменные, контроль над порядком выполнения, операторы ветвления и цикла. Ключевые слова, синтаксис и другие основные особенности языка были заимствованы из sh. Другие функции, например, история, были скопированы из csh и ksh. Bash в основном соответствует стандарту POSIX, но с рядом расширений[3].

В Windows тоже есть терминал, который использует интерпретатор shell — более раннюю версию Bash.

По умолчанию выглядит наша строка так

строка терминала со стилями по умолчанию

Вот ее и будем стилизовать — поменяем цвета и вывод информации.

Стиль нашей командной строки определяет конфигурационный файл

~/.bashrc.

Он содержится в нашей домашней директории в скрытом виде, его и будем редактировать.

Но для начала нужно знать, что редактировать.

Поэтому не спешите и дочитайте всю статью до конца, чтоб правильно стилизовать строку интерпретатора bash и не сломать ничего в системе.

Стиль и первоначальную информацию выводит и определяет переменная PS1.

При запуске мы видим имя пользователя и после знака @ идет имя нашего хоста, на конце знак доллара.

Если вы перейдете на работу от имени root (получите полный доступ) на конце строки будет стоять знак #.

И соответственно сменится имя на root.

Параметры переменной PS1 в конфигурационном файле Bash

\aan ASCII bell character (07)
\dдата в формате »День_недели, Месяц, Число».
\ean ASCII escape character (033)
\hимя хоста до первой точки.
\Hимя хоста
\jколичество задач, работающих в интерпретаторе в настоящее время
\lназвание терминала
\nпереход на новую строку
\rвозврат каретки на начало строки
\sназвание интерпретатора (будет выведено, например, «bash»
\tвремя в 24-часовом формате (ЧЧ: MM: СС)
\Tвремя в 12-часовом формате (ЧЧ: ММ: СС)
\@время в 12-часовом формате (AM/PM)
\uимя активного пользователя
\vномер версии bash
\Vномер версии bash, номер релиза
\wтекущая директория (будет выведено в формате /path/to/work_dir_name)
\Wимя текущей директории (будет выведено в формате «dir_name\»)
\!номер команды в истории
\#системный номер команды
\$if the effective UID is 0, a #, otherwise a $
\\обратный слеш
\[начало последовательности непечатаемых символов (см. примеры в разделе «Цвета и стилизация».
\]конец последовательности символов
$ ( )внешняя команда

С помощью этих переменных можно в приветствии вывести время например и т.п.

Если зададим такую переменную, добавим дату к имеющемуся (как пример), убрав все стили

PS1='[\u@\h] $(date +%m/%d/%y) \w $'

Получим такой результат:

строка bash с текущей датой

Чтоб задать стили необходимо знать параметры цветов, которые можно задавать.

Все стили задаются по следующим параметрам:

Стили текста:

Нормальный, обычный текст — 0

Повышенная яркость — 1

Пониженная яркость — 2

Подчеркнутый — 3

Нормальная яркость — 5

Инвертированный 7

Скрытый — 8

Цвета текста:

Черный 30

Красный — 31

Зеленый — 32

Желтый — 33

Синий — 34

Маджента — 35

Циановый — 36

Белый — 37

Цвет фона строки

Черный — 40

Красный — 41

Зеленый — 42

Желтый — 43

Синий — 44

Маджента — 45

Циановый — 46

Белый — 47

Теперь можно поменять строку и стилизовать ее под свой вкус и цвет

Откроем терминал, и с помощью редактора nano откроем конфигурационный файл, командой

nano ~/.bashrc

В открытом файле мы ничего переделывать не будем, просто спускаемся в самый низ файла и в последней строке дописываем свои собственные стили переменной PS1

Я использовал такие настройки и стили

PS1='[\033[01;34m]\u: [\033[0;33m]\w [\033[01;32m]\$ [\033[01;32m] '
редактирование стилей bash

Естественно после внесении изменений сохраняем сочетанием клавиш Ctrl+O и выходим Ctrl+X

Перезапустив терминал видим такой стиль

измененная строка bash в терминале под свой стиль

Теперь хотелось бы поменять стиль при работе от имени root пользователя. Пользователь рут, а точнее его конфигурационные файлы, имеют собственные стили.

Для этого откроем в редакторе nano, так же из терминала файл /root/.bashrc командой

sudo nano /root/.bashrc

И в самом конце добавим свои стили, я использовал вот такие

PS1='[\033[01;31m]\u: [\033[0;35m]\w [\033[01;32m]\$ [\033[01;31m]'

Не забываем после внесении изменений сохраняем сочетанием клавиш Ctrl+O и выходим Ctrl+X

По окончанию получаем вот такой результат:

Результат стилизованного bash

Для тех кто хочет большего в плане дизайна и внесения плюшек в командный интерпретатор советую почитать об оболочке Zsh. Она дает намного больше в плане дизайна и внесения изменений, так же предполагает использование различных тем.

Если кому есть, что добавить или поделится своим опытом пишите в комментариях.

Всем Удачи!

Про ПК
Добавить комментарий