Большинство систем Ubuntu используют bash или dash в качестве приложения терминала по умолчанию. Вы вводите команды в стандартной командной строке, которая обычно отображает ваше имя пользователя, имя хоста и текущий каталог в предопределенной цветовой схеме. Bash предоставляет множество опций настройки командной строки, которые позволяют не только добавлять различные функции в приглашение терминала, но и различать их разными цветами.
В этой статье мы на различных примерах настроим и изменим цвет командной строки нашего терминального приложения, чтобы вы могли сделать то же самое при необходимости.
Просмотр текущей конфигурации интерпретатора Bash
Когда вы открываете терминал через Dash или сочетание клавиш Ctrl+Alt +T, вы видите следующее приглашение:
username@hostname:directory$
В этом формате по умолчанию указывается имя пользователя, имя хоста, а затем текущий каталог пользователя. bash берет эту конфигурацию из файла bashrc, который устанавливается индивидуально для каждого пользователя в его домашнем каталоге. Вот как можно открыть этот файл:
1 | nano ~/.bashrc |
Расположение: /home/username/.bashrc
Вы также можете использовать любой другой текстовый редактор для открытия этого файла.
Вот как выглядит этот конфигурационный файл. Здесь мы показываем соответствующую часть файла.
Переменная PS1, которую вы видите на рисунке выше, содержит все необходимые настройки для приглашения bash. Давайте сначала объясним, что обозначают символы в этой переменной. Вы можете увидеть эту переменную в переменной PS1, указанной после оператора else.
\u- Это указывает на имя пользователя текущего пользователя
\h: Это указывает на имя хоста текущего пользователя, извлеченное из полного доменного имени.
\w: Указывает текущий рабочий каталог. Ваш домашний каталог обозначается символом тильды ~.
\$: Указывает, являетесь ли вы обычным пользователем ($) или пользователем root (#).
Вы также можете просмотреть конфигурацию переменной PS1, передав ее значение эхом следующим образом:
Настройка оболочки
После того как мы увидели, где хранится информация о приглашении терминала и что описывает переменная PS1, давайте посмотрим, как ее можно отредактировать, чтобы настроить приглашение bash.
Прежде чем редактировать переменную PS1, важно сохранить ее содержимое по умолчанию в новой переменной. Это поможет нам восстановить исходную конфигурацию приглашения, если что-то пойдет не так. Введите следующую команду в терминале:
1 | DEFAULT=$PS1 |
Теперь в переменной "DEFAULT" есть вся информация, необходимая для восстановления стандартных настроек.
Теперь давайте немного поэкспериментируем с нашей переменной PS1. Введите следующую команду:
1 | PS1="\u\$". |
Это новое значение PS1 окажет следующий эффект на вашу приглашение терминала:
Теперь вы можете видеть только имя пользователя и информацию о пользователе root без каких-либо цветов, так как информация о цвете еще не задана.
Давайте введем следующую команду, чтобы в нашей приглашении также был указан наш рабочий каталог
1 | PS1="\u:\w\$ " |
Это новое значение PS1 окажет следующий эффект на приглашение терминала:
Установка значения настроек приглашения терминала по умолчанию
Поскольку мы сохранили исходную конфигурацию переменной PS1 в переменной DEFAULT, мы можем вернуть значение PS1 к значению по умолчанию, передав ему значение нашей переменной DEFAULT.
PS1=$DEFAULT
Что еще можно настроить?
Если вы хотите, чтобы ваш запрос содержал определенный пользовательский текст, вы можете использовать следующий синтакс:
1 | PS1="[пользовательский текст] \u@\h:\w\$". |
Пример:
Я настроил свой запрос на включение пользовательского сообщения следующим образом:
Вы можете включить в приглашение следующие основные символы:
Символы | Назначение |
\d | Дата в формате день месяц дата. |
\e | Символ звонка. |
\a | Символ эвакуации. |
\h | Имя хоста текущего пользователя до '.'. |
\H | Имя хоста текущего пользователя. |
\l | Основное имя терминального устройства. |
\j | Количество заданий, выполняемых оболочкой. |
\r | Возврат каретки. |
\n | Новая строка. |
\u | Имя пользователя текущего пользователя. |
\v | Версия Bash. |
\! | Номер истории печати выполняемой команды. |
Вы можете включить текущее системное время в приглашение с помощью следующей команды:
1 | PS1="\A\u: \w\$ " |
Это новое значение PS1 будет иметь следующий эффект:
Вы также можете настроить приглашение так, чтобы она включала вывод команды; это дает вам неограниченные возможности для включения.
Синтаксис:
1 | PS1="\u@\h on `[command]` \w\$ " |
Пример:
В этом примере я задам в приглашении терминала имя основной группы, к которой принадлежит текущий пользователь.
1 | PS1="\u@\h on `id -gn` \w\$ " |
Изменение цвета приглашения
После настройки приглашения терминала вы поймете, что все может выглядеть несколько беспорядочно. Причина в том, что не так-то просто отличить одну функцию от другой, если все они перечислены одним цветом. Теперь давайте узнаем, как изменить цвет пришлашения, чтобы сделать ее более приятной для глаз.
Для того чтобы добавить цвета к одной или нескольким характеристикам, в переменной PS1 предусмотрены цветовые теги. Выделенный текст на следующем рисунке - это цветовой тег.
Установка цветов в приглашении bash
Вот формат цветового тега:
1 | \[\033[COLOR]m\] |
Например, имя пользователя и имя хоста по умолчанию, которые мы видим в приглашении терминала по умолчанию, являются зелеными из-за следующего цветового тега:
1 | \[\033[01;32m\]\u@\h |
Вы можете изменить это значение цвета для функции bash, чтобы придать ей новый цвет или добавить новый цветовой тег к функции, у которой его нет.
Вот некоторые распространенные цвета и их значения:
Цвет | Значение |
Зеленый | 32 |
Красный | 31 |
Черный | 30 |
Синий | 34 |
Голубой | 36 |
Фиолетовый | 35 |
Желтый | 33 |
Белый | 37 |
Пример:
Следующая команда сделает текст командной строки красным, так как мы указываем 31 (красный цвет) в теге color:
1 | PS1="\[\033[31m\]\u@\h:\w$ " |
Использование стилей текста в приглашении
Вы можете добавить стили к тексту приглашения, присвоив значение атрибута тегу color. Вот формат тега color с атрибутом:
1 | \[\033[ATTRIBUTE; COLORm\] |
Вы можете использовать следующие значения атрибутов для текста приглашения:
Значение | Назначение |
0 | Обычный текст (Это значение по умолчанию, даже если атрибут не установлен) |
1 | В терминале Ubuntu это значение определяет полужирный текст |
2 | Полужирный текст |
4 | Подчеркивание текста |
5 | Для мигающего текста |
7 | Меняет цвета текста и фона |
8 | Для скрытого текста |
Пример:
Вы можете использовать следующую команду для того, чтобы подчеркнуть текст в bash:
1 | PS1="\[\033[4;31m\]\u@\h:\w$ " |
Значение 4 указывает на то, что мы хотим "подчеркнуть" текст.
Внесение постоянных изменений в приглашение
Команды, которые вы выполняли до сих пор, изменяют приглашение только для текущего сеанса bash. После того, как вы поэкспериментировали с настройкой текста и цветом приглашения и пришли к окончательному варианту, который вы хотите установить навсегда для всех ваших сеансов bash, вам нужно отредактировать файл bashrc.
Откройте файл .bashrc и скопируйте значение PS1, которое вы окончательно установили в строке PS1 под строкой if; then. На следующем изображении я только что изменил цвет приглашения bash на красный:
Сохраните файл, нажав Ctrl+X, а затем нажав Y. Изменения в приглашении bash теперь будут постоянными.
Выйдите из Терминала и откройте его снова, чтобы убедиться, что ваш интерпретатор bash по-прежнему будет таким, каким вы его установили.
Потренировавшись по этому руководству, вы сможете преуспеть в настройке приглашения bash. Вы можете установить цвета для различения различных функций, которые вы включили в приглашение. Таким образом, вы сможете просматривать и использовать эту полезную информацию каждый раз, когда используете bash pro