Как изменить приглашение командной оболочки bash в Linux

Приглашение командной оболочки bash (bash prompt) — это строка, которая отображается в терминале и ожидает ввода команды. По умолчанию приглашение выглядит довольно просто, но его можно настроить под свои нужды. В этой статье мы рассмотрим, как изменить приглашение bash с помощью переменных PS1, PS2, PS3, PS4 и PROMPT_COMMAND.

Основные переменные

В bash существует несколько переменных, которые отвечают за внешний вид приглашения:

  • PS1 — основное приглашение.
  • PS2 — приглашение для продолжения ввода (например, при незаконченной команде).
  • PS3 — приглашение для команд select.
  • PS4 — приглашение для отладки скриптов.

Изменение переменной PS1

Переменная PS1 отвечает за основное приглашение. Вот несколько примеров, как можно изменить эту переменную:

PS1="\u@\h:\w\$ "

Этот пример изменит приглашение на username@hostname:current_directory$.

Пример 1: Добавление времени

PS1="\t \u@\h:\w\$ "

Этот пример добавит текущее время в 24-часовом формате перед стандартным приглашением.

Пример 2: Цветное приглашение

PS1="\[\e[32m\]\u@\h:\w\[\e[m\]\$ "

Этот пример изменит цвет текста приглашения на зеленый.

Пример 3: Отображение ветки Git

PS1='\u@\h:\w$(__git_ps1 " (%s)")\$ '

Этот пример добавит текущую ветку Git в приглашение. Для этого необходимо установить и настроить git-prompt.sh.

Изменение переменной PS2

Переменная PS2 используется для приглашения продолжения ввода. По умолчанию она равна > . Вот пример изменения этой переменной:

PS2="continue> "

Изменение переменной PS3

Переменная PS3 используется в командах select. Вот пример:

PS3="Выберите опцию: "

Изменение переменной PS4

Переменная PS4 используется для отладки скриптов. Вот пример:

PS4="+ " 

Использование PROMPT_COMMAND

Переменная PROMPT_COMMAND позволяет выполнять команды перед отображением приглашения. Это может быть полезно для выполнения различных задач, таких как обновление информации в приглашении или выполнение других команд. Вот пример:

PROMPT_COMMAND='echo "Команда выполнена"'

Этот пример будет выводить сообщение “Команда выполнена” перед каждым приглашением.

Временное изменение приглашения

Если вам нужно временно изменить приглашение, вы можете сделать это с помощью команды export. Например:

export PS1="temporary_prompt$ "

Это изменение будет действовать только в текущей сессии терминала. После закрытия терминала или открытия нового окна приглашение вернется к исходному виду.

Создание резервной копии файла .bashrc

Перед внесением изменений в файл .bashrc, рекомендуется создать его резервную копию. Это можно сделать с помощью команды:

cp ~/.bashrc ~/.bashrc.bak

Эта команда создаст копию файла .bashrc с именем .bashrc.bak в домашней директории пользователя.

Сохранение изменений

Чтобы изменения вступили в силу при каждом запуске терминала, добавьте их в файл ~/.bashrc:

echo 'PS1="\u@\h:\w\$ "' >> ~/.bashrc

После этого перезапустите терминал или выполните команду source ~/.bashrc.

Заключение

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