Если вы освоили 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
\a | an ASCII bell character (07) |
\d | дата в формате »День_недели, Месяц, Число». |
\e | an 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 $'
Получим такой результат:
Чтоб задать стили необходимо знать параметры цветов, которые можно задавать.
Все стили задаются по следующим параметрам:
Стили текста:
Нормальный, обычный текст — 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] '
Естественно после внесении изменений сохраняем сочетанием клавиш Ctrl+O и выходим Ctrl+X
Перезапустив терминал видим такой стиль
Теперь хотелось бы поменять стиль при работе от имени 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
По окончанию получаем вот такой результат:
Для тех кто хочет большего в плане дизайна и внесения плюшек в командный интерпретатор советую почитать об оболочке Zsh. Она дает намного больше в плане дизайна и внесения изменений, так же предполагает использование различных тем.
Если кому есть, что добавить или поделится своим опытом пишите в комментариях.
Всем Удачи!