Большинство дистрибутивов Linux настраивают приглашение Bash так, чтобы оно выглядело примерно так:
имя пользователя @ имя хоста: каталог $
. Но вы можете настроить приглашение Bash так, чтобы оно содержало все, что вам нравится, и даже выбирать любые цвета, которые вам нравятся.
Примеры шагов здесь были выполнены в Ubuntu 16.04 LTS. Процесс должен быть таким же в других дистрибутивах Linux, хотя приглашение Bash по умолчанию и настройки в файле .bashrc могут немного отличаться.
Где хранится переменная приглашения
Конфигурация приглашения Bash хранится в файле .bashrc вашей учетной записи, который находится по адресу
~ / .bashrc
. Итак, если ваше имя пользователя - bob, файл находится по адресу
/хьоме/боб/.башрк
.
Вы можете открыть файл, чтобы просмотреть текущую переменную Bash. В качестве примера текстового редактора мы будем использовать nano, хотя вы также можете использовать мы , emacs или любой другой текстовый редактор, который вам удобен. Откройте Терминал и запустите:
нано ~ / .bashrc
Прокрутите вниз до
Ψ1 =
раздел. Первая переменная выглядит довольно сложной, потому что она включает информацию о цвете - мы объясним это позже. Вторая переменная без информации о цвете выглядит следующим образом:
$ {debian_chroot:+($debian_chroot)} \ u @ \ h: \ w \ $
Это все еще немного сложно из-за
${debian_chroot:+($debian_chroot)}
биты. Они просто говорят Bash, чтобы вы знали, используете ли вы chroot-среду Debian, и обычно не отображаются. Не обращая на них внимания, вот структура переменной приглашения Bash по умолчанию:
\ u @ \ h: \ w \ $
эу
указывает ваше имя пользователя,
@
обозначает знак @,
\час
указывает имя хоста (имя компьютера),
:
обозначает: символ,
\в
указывает рабочий каталог, а
э$
обозначает $, если у вас обычный пользовательский аккаунт, или #, если у вас root. Итак, сложив все вместе, вы получите
имя пользователя @ имя хоста: рабочий_каталог $
.
Чтобы изменить приглашение Bash, вам просто нужно добавить, удалить или переставить специальные символы в переменной PS1. Но вы можете использовать гораздо больше переменных, чем те, которые используются по умолчанию.
Оставьте пока текстовый редактор - в nano нажмите Ctrl + X для выхода. Мы покажем вам, как поэкспериментировать с переменными, прежде чем фактически записывать новую в файл .bashrc.
Как создать пользовательское приглашение Bash
Конфигурация приглашения Bash хранится в переменной PS1. Чтобы сохранить содержимое переменной PS1 в новую переменную, выполните следующую команду:
ПО УМОЛЧАНИЮ = $ PS1
Теперь вы можете установить для переменной PS1 разные значения для экспериментов. Например, первая строка здесь установит вашу подсказку на базовую подсказку «user $», а вторая установит вашу подсказку на базовую подсказку «user: working_directory $».
ПС1="эуэ$ " ПС1="эу:эвэ$ "
Если вы когда-нибудь захотите вернуться к приглашению по умолчанию, просто выполните следующую команду.
PS1 = $ ПО УМОЛЧАНИЮ
Bash будет восстановлен до своего приглашения по умолчанию благодаря тому, что вы сохранили эти настройки по умолчанию ранее. Обратите внимание, что любые изменения, которые вы здесь вносите, являются временными для текущего сеанса Bash, поэтому вы всегда можете выйти и снова войти в систему или закрыть и снова открыть окно терминала, чтобы вернуться к приглашению по умолчанию. Но приведенная выше строка позволяет легко вернуться к приглашению Bash по умолчанию без необходимости выходить из системы или закрывать окно.
В переменную можно добавлять любые символы или текст. Итак, чтобы добавить к приглашению по умолчанию префикс «Hello World», вы можете использовать:
PS1 = "Привет, мир \ u @ \ h: \ w \ $"
Теперь, когда вы ознакомились с основами, вам просто нужно знать, что такое все специальные символы. Многие из них, вероятно, вас не интересуют, но вот их полный список в том виде, в котором он руководство Bash :
-
Колокольчик:
\ а -
Дата в формате «День недели, месяц, дата» (например, «Вт, 26 мая»):
\ d -
Формат передается в strftime (3), а результат вставляется в строку приглашения; пустой формат дает представление времени, зависящее от локали. Подтяжки необходимы:
\ D{format} -
Эскейп-символ:
\является -
Имя хоста до первого символа ".":
\час -
Имя хоста:
\ЧАС -
Количество заданий, которыми в настоящее время управляет оболочка:
\ j -
Базовое имя имени терминального устройства оболочки:
\ l -
Новая строка:
\ п -
Возврат каретки:
\р -
Имя оболочки, базовое имя $ 0 (часть после последней косой черты):
эс -
Время в 24-часовом формате ЧЧ: ММ: СС:
\ т -
Время в 12-часовом формате ЧЧ: ММ: СС:
\ T -
Время в 12-часовом формате am / pm:
э@ -
Время в 24-часовом формате ЧЧ: ММ:
\ A -
Имя текущего пользователя:
эу -
Версия Bash (например, 2.00):
эв -
Выпуск Bash, версия + уровень исправлений (например, 2.00.0):
ЭВ -
Текущий рабочий каталог, где $ HOME обозначается тильдой (использует переменную $ PROMPT_DIRTRIM):
\в -
Базовое имя $ PWD с аббревиатурой $ HOME с тильдой:
\В -
Номер истории этой команды:
э! -
Номер команды этой команды:
э# -
Если эффективный uid равен 0, #, в противном случае $:
э$ -
Символ, код ASCII которого является восьмеричным значением nnn:
\ nnn -
Обратная косая черта:
ээ -
Начните последовательность непечатаемых символов. Это можно использовать для вставки последовательности управления терминалом в приглашение:
эю -
Завершите последовательность непечатаемых символов:
эщ
Итак, если вы хотите добавить дату и время в командную строку Bash и поместить рабочий каталог в команду во второй строке, вы можете использовать следующую конструкцию:
PS1 = "[\d \t] \ u @ \ h \ n \ w \ $"
Квадратные скобки здесь совсем не нужны, но помогают визуально разбить текст и облегчить чтение строки. Как мы уже говорили ранее, вы можете добавить любой текст или обычные символы к переменной, которая вам нравится, поэтому не стесняйтесь использовать все, что вам подходит.
Есть еще один важный прием, о котором вы должны знать: вы можете добавить вывод любой команды в приглашение. Всякий раз, когда появляется запрос, Bash запускает команду и вводит текущую информацию. Для этого просто включите любую команду, которую хотите запустить между двумя
ё
символы. Это не апостроф - это серьезный ударение, которое появляется над клавишей Tab на клавиатуре.
Например, предположим, что вы хотите просмотреть версию ядра Linux в командной строке. Вы можете использовать следующую строку:
PS1 = "\ u @ \ h на ʻuname -s -r` \ w \ $"
В качестве другого примера предположим, что вы хотите просмотреть время безотказной работы и среднюю загрузку системы, отображаемые
время безотказной работы
команда. Вы можете использовать следующую конструкцию, которая помещает время безотказной работы в отдельной строке перед остальной частью приглашения.
ПС1="(ёоптимэё)энэу@эх:эв$ "
Не стесняйтесь экспериментировать с различными специальными символами и командами, чтобы собрать идеальную командную строку.
Как добавить цвета в приглашение Bash
Как только вы определились с желаемой подсказкой, вы можете добавить к ней цвета. На самом деле это очень просто, но из-за этого переменная выглядит ужасно запутанной и сложной, если вы не понимаете, на что смотрите.
Например, ранее использовавшаяся переменная приглашения цвета по умолчанию была:
$ {debian_chroot:+($debian_chroot)} \ [\033[01;32m\] \ u @ \ h \ [\033[00m\]: \ [\033[01;34m\] \ w \ [\033[00m\] \ $
Или, снова удалив биты debian_chroot:
\ [\033[01;32m\] \ u @ \ h \ [\033[00m\]: \ [\033[01;34m\] \ w \ [\033[00m\] \ $
На самом деле это просто
\ u @ \ h: \ w $
переменная из ранее, но с информацией о цвете. На самом деле, мы можем разбить его на несколько разделов:
э[\033[01;32m\]эу@эхэ[\033[00m\]:э[\033[01;34m\]\вэ[\033[00m\]э$
Первый раздел - это
эу@эх
бит, которому предшествует информация о цвете, которая делает его зеленым. Второй - это
:
символ, которому предшествует информация о цвете, удаляющая любую окраску. Третий - это
\в
бит, которому предшествует информация о цвете, которая делает его синим. Четвертый - это
э$
бит, которому предшествует информация о цвете, удаляющая любую окраску.
Как только вы поймете, как создавать собственные цветовые теги, вы можете добавлять любые цвета в любые разделы вашего приглашения Bash, которые вам нравятся.
Вот что вам нужно знать: вы должны включить всю информацию о цветовом коде между
эю
а также
\] характер
с. Внутри тега вы должны начать либо с
э033ю
или
\является[
чтобы указать Bash, что это информация о цвете. Обе
э033ю
а также
\является[
сделай то же самое.
\является[
короче, поэтому его удобнее использовать, но мы будем использовать
э033ю
здесь, поскольку он соответствует тому, что используется по умолчанию. В конце тега вы должны заканчиваться на
мэ
для обозначения конца цветовой метки.
Вот как будет выглядеть каждая цветовая метка. Единственное отличие - это информация, которую вы добавляете вместо ЦВЕТА для определения фактического цвета:
эюэ033юЦВЕТмэщ
Bash позволяет вам изменять цвет текста переднего плана, добавлять к тексту атрибуты, такие как «полужирный» или «подчеркивание», а также устанавливать цвет фона.
Вот значения для текста переднего плана:
- Черный: 30
- Синий: 34
- Голубой: 36
- Зеленый: 32
- Фиолетовый: 35
- Красный: 31
- Белый: 37
- Желтый: 33
Например, поскольку фиолетовый текст - это цветовой код 32, вы должны использовать
эюэ033ю
32
мэщ
для фиолетового текста.
Вы также можете указать атрибут для текста. Этот атрибут необходимо добавить перед номером цвета, разделив точкой с запятой (;). Текст с этими атрибутами будет выглядеть по-разному в разных эмуляторах терминала.
Вот значения для текстовых атрибутов:
- Обычный текст: 0
- Полужирный или светлый текст: 1 (это зависит от эмулятора терминала.)
- Тусклый текст: 2
- Подчеркнутый текст: 4
- Мигающий текст: 5 (не работает в большинстве эмуляторов терминала.)
- Перевернутый текст: 7 (инвертирует цвета переднего плана и фона, поэтому вы увидите черный текст на белом фоне, если текущий текст - белый текст на черном фоне.)
- Скрытый текст: 8
На самом деле вам не нужно включать обычный текстовый атрибут. Во всяком случае, это значение по умолчанию.
Например, поскольку красный текст - это код 31, а жирный текст - код 1, вы должны использовать
эюэ033ю
1;31
мэщ
для жирного красного текста.
Вы также можете указать цвет фона, но не можете добавить атрибут к цвету фона.
Вот значения для цветов фона:
- Черный фон: 40
- Синий фон: 44
- Голубой фон: 46
- Зеленый фон: 42
- Фиолетовый фон: 45
- Красный фон: 41
- Белый фон: 47
- Желтый фон: 43
Например, поскольку синий фон - это код 44,
эюэ033ю
44
мэщ
указал бы синий фон.
Вы можете указать теги цвета как переднего плана, так и фона. Например, 42 представляет зеленый фон, а 31 - красный текст. Итак, чтобы запрос по умолчанию стал красным текстом на зеленом фоне, вы должны использовать:
Ψ1 = "\ [\ 033 [42мэщэюэ033ю31m \] \ u @ \ h: \ w \ $ "
Здесь мы просто указываем один цвет фона, а затем один цвет текста переднего плана, который начинается в начале приглашения и применяется ко всему тексту в приглашении. Однако вы можете указать в переменной столько цветных тегов, сколько хотите, чтобы раскрасить различные разделы вашего приглашения, как вам нравится.
Цвета фона и текста переднего плана продолжаются после приглашения, если вы не укажете код цвета 00, чтобы очистить информацию о цвете. Вы также можете использовать этот тег в переменной, чтобы сбросить форматирование до значений по умолчанию где-нибудь в вашем приглашении. Например, следующая строка завершит всю раскраску перед
э$
характер.
Ψ1 = "\ [\ 033 [42мэщэюэ033ю31m \] \ u @ \ h: \ w \\ [\ 033 [00мэщэ$ "
Как установить новое приглашение по умолчанию
После того, как вы закончите экспериментировать с цветами, в текущем сеансе у вас должно появиться сообщение Bash, которое вам нравится. Но вы, вероятно, захотите сделать это новое приглашение постоянным, чтобы оно автоматически использовалось во всех ваших сеансах Bash.
Для этого вам просто нужно изменить содержимое переменной PS1 в файле .bashrc, который мы рассмотрели ранее.
Откройте файл .bashrc в предпочитаемом текстовом редакторе, например:
нано ~ / .bashrc
Прокрутите вниз и найдите раздел PS1 =. Просто замените переменную по умолчанию своей настраиваемой переменной. Вы, вероятно, захотите оставить
${debian_chroot:+($debian_chroot)}
Однако только биты - они не появятся, в любом случае, если вы не находитесь в среде chroot.
Введите свою цветную переменную PS1 под
если [ "$color_prompt" = yes ]; тогда
линия. Введите переменную без цветов под
еще
линия.
Сохраните файл и закройте текстовый редактор. Например, чтобы сохранить файл в nano, нажмите Ctrl + O, нажмите Enter, а затем нажмите Ctrl + X для выхода.
В следующий раз, когда вы запустите новую оболочку Bash, например, войдя в систему в терминале или открыв новое окно терминала, вы увидите настроенное вами приглашение.