Поиск по сайту:

Как настроить цвета и содержимое Bash в командной строке терминала Linux


Сегодня Bash является оболочкой по умолчанию в большинстве (если не во всех) современных дистрибутивах Linux. Однако вы, возможно, заметили, что цвет текста в терминале и содержимое подсказки могут отличаться в разных дистрибутивах.

Рекомендуется к прочтению: 5 наиболее часто используемых оболочек с открытым исходным кодом для Linux

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

Переменная среды PS1 Bash

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

Разрешенное содержимое в PS1 состоит из нескольких специальных символов, экранированных обратной косой чертой, значение которых указано в разделе ПРОМТИНГ на странице руководства.

Для иллюстрации давайте отобразим текущее содержимое PS1 в нашей системе (в вашем случае оно может отличаться):

echo $PS1

[\u@\h \W]$

Теперь мы объясним, как настроить PS1 в соответствии с нашими потребностями.

Настройка формата PS1

Согласно разделу PROMPTING на странице руководства, это значение каждого специального символа:

  1. \u: имя пользователя текущего пользователя.
  2. \h: имя хоста до первой точки (.) в полном доменном имени.
  3. \W: базовое имя текущего рабочего каталога, где $HOME сокращено тильдой (~).
  4. \$: Если текущий пользователь является пользователем root, отобразите #, в противном случае $.

Например, мы можем рассмотреть возможность добавления \!, если мы хотим отображать номер истории текущей команды, или \H, если мы хотим отображать полное доменное имя вместо короткое имя сервера.

В следующем примере мы импортируем оба в нашу текущую среду, выполнив эту команду:

PS1="[\u@\H \W \!]$"

Когда вы нажмете Ввод, вы увидите, что содержимое приглашения изменится, как показано ниже. Сравните приглашение до и после выполнения приведенной выше команды:

Теперь давайте пойдем еще дальше и изменим цвет пользователя и имени хоста в командной строке – как текста, так и окружающего его фона.

На самом деле мы можем настроить 3 аспекта подсказки:

Text Format Foreground (text) color Background color
0: normal text 30: Black 40: Black
1: bold 31: Red 41: Red
4: Underlined text 32: Green 42: Green
33: Yellow 43: Yellow
34: Blue 44: Blue
35: Purple 45: Purple
36: Cyan 46: Cyan
37: White 47: White

Мы будем использовать специальный символ \e в начале и m в конце, чтобы указать, что далее следует последовательность цветов.

В этой последовательности три значения (фон, формат и передний план) разделены запятыми (если значение не указано, предполагается, что оно используется по умолчанию). .

Рекомендуется к прочтению: Изучите сценарии оболочки Bash в Linux

Кроме того, поскольку диапазоны значений различаются, не имеет значения, какой из них (фон, формат или передний план) вы укажете первым.

Например, следующий PS1 приведет к отображению подсказки в виде подчеркнутого желтого текста на красном фоне:

PS1="\e[41;4;33m[\u@\h \W]$ "

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

Чтобы сделать эти изменения постоянными, вам необходимо добавить следующую строку в ~/.bashrc или ~/.bash_profile в зависимости от вашего дистрибутива:

PS1="\e[41;4;33m[\u@\h \W]$ "

Не стесняйтесь экспериментировать с цветами, чтобы найти тот, который лучше всего подойдет вам.

Краткое содержание

В этой статье мы объяснили, как настроить цвет и содержимое приглашения Bash. Если у вас есть вопросы или предложения по поводу этой публикации, используйте форму комментариев ниже, чтобы связаться с нами. Мы с нетерпением ждем вашего ответа!