Как настроить цвета и содержимое Bash в командной строке терминала Linux
Сегодня Bash является оболочкой по умолчанию в большинстве (если не во всех) современных дистрибутивах Linux. Однако вы, возможно, заметили, что цвет текста в терминале и содержимое подсказки могут отличаться в разных дистрибутивах.
Рекомендуется к прочтению: 5 наиболее часто используемых оболочек с открытым исходным кодом для Linux
Если вам интересно, как настроить это для лучшей доступности или просто по прихоти, продолжайте читать – в этой статье мы объясним, как это сделать.
Переменная среды PS1 Bash
Внешний вид командной строки и терминала определяется переменной среды с именем PS1
. Согласно справочной странице Bash, PS1 представляет собой основную строку приглашения, которая отображается, когда оболочка готова прочитать команду.
Разрешенное содержимое в PS1 состоит из нескольких специальных символов, экранированных обратной косой чертой, значение которых указано в разделе ПРОМТИНГ на странице руководства.
Для иллюстрации давайте отобразим текущее содержимое PS1
в нашей системе (в вашем случае оно может отличаться):
echo $PS1
[\u@\h \W]$
Теперь мы объясним, как настроить PS1 в соответствии с нашими потребностями.
Настройка формата PS1
Согласно разделу PROMPTING на странице руководства, это значение каждого специального символа:
\u:
имя пользователя текущего пользователя.\h:
имя хоста до первой точки (.) в полном доменном имени.\W:
базовое имя текущего рабочего каталога, где $HOME сокращено тильдой (~).\$:
Если текущий пользователь является пользователем 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. Если у вас есть вопросы или предложения по поводу этой публикации, используйте форму комментариев ниже, чтобы связаться с нами. Мы с нетерпением ждем вашего ответа!