Skip to content

Bash prompt string (ru)

Alexandr Motyrev edited this page Aug 18, 2023 · 2 revisions

Строка приглашения в терминале

В Linux Fedora одним из способов изменения строки приглашения является редактирование конфигурационных файлов. В данной статье мы рассмотрим несколько примеров, демонстрирующих, как изменить строку приглашения в терминале.

Пример:

image

Пример использования

Изменение строки приглашения в bash: Для изменения строки приглашения в bash необходимо отредактировать файл ~/.bashrc. Откройте терминал и выполните следующую команду: $ nano ~/.bashrc

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

Например, можно добавить текущую дату и время:

PS1='\[\e[0;32m\]\u@\h \[\e[0;35m\]\t \[\e[0;34m\]\w\[\e[m\]\$ '

Сохраните изменения, нажав Ctrl + X, затем Y и Enter. Затем обновите конфигурацию, выполнив следующую команду: $ source ~/.bashrc Теперь, когда вы открываете новый терминал, вы увидите измененную строку приглашения.

Для задания различных значений переменной PS1 существуют специальные символы. Комбинируя различные специальные символы можно составить свою строку приглашения.

Специальные символы

Специальные символы начинаются с символа косой черты «\», за которой следует буква или символ. Ниже приведена таблица специальных символов.

Обозначение Описание
\a ASCII-символ bell (07)
\d Дата в формате «День недели Месяц Дата» (например, «Пн Ноя 26»)
\D{format} Значение format передается функции strftime. В строку приглашения подставляется результат выполнения функции. Фигурные скобки обязательны.
\e ASCII-символ escape (033)
\h Hostname (имя хоста) до первого символа точка «.».
\H Hostname (имя хоста, компьютера).
\j Количество фоновых процессов, запущенных в данной оболочке
\l Базовое название оболочки.
\n Переход на новую строку.
\r Переход к началу строки (возврат каретки).
\s Имя оболочки (имя shell).
\t Текущее время в 24-часовом формате (HH:MM:SS).
\T Текущее время в 12-часовом формате (HH:MM:SS).
@ Текущее время в 12-часовом am/pm формате.
\A Текущее время в 24-часовом формате (HH:MM).
\u Имя пользователя.
\v Версия bash (например, 4.4).
\V Версия bash с версией релиза (например, 4.4.19).
\w Текущий абсолютный путь (полный путь). Домашняя директория сокращается до значка тильды «~».
\W Текущий относительный путь. Домашняя директория сокращается до значка тильды «~».
! Номер команды в истории команд (history).
# Номер команды в текущей сессии терминала.
$ Символ приглашения (# для root, $ для обычных пользователей).
\nnn Символ, соответствующий восьмеричному значению nnn.
\ Символ обратной косой черты «\».
[ Начало последовательности непечатаемых символов.
] Конец последовательности.

Цветовая палитра

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

Чтобы задавать цвета для элементов строки приглашения нужно части строки приглашения заключать в специальные символы.

Используется следующий синтаксис: \e[X;YmРАСКРАШИВАЕМАЯ_СТРОКА\e[m

\e[ - начало цветовой схемы. X;Ym — цветовая пара (X;Y). Именно значения X и Y определяют цвет. \e[m — окончание цветовой схемы.

Цвета задаются числами. Можно задавать парой X;Y или просто Y. Например, красный это — 0;31

Цвет Числовое обозначение
Black 30
Red 31
Green 32
Brown 33
Blue 34
Purple 35
Cyan 36
Light gray 37
Dark gray 90
Light red 91
Light green 92
Light yellow 93
Light blue 94
Light magenta 95
Light cyan 96
White 97

При задании цвета двумя числами X;Y, первое число X принимает следующие значения: 0 — обычный цвет; 1 — будет использоваться более яркий цвет; 2 — более темный цвет; 3 — курсив; 4 — подчеркивание; 5 — моргание.

Генератор стройки приглашения

На данный момент в планах есть создание генератора строки.