Конфигурирование приглашения командной строки
При использовании командного интерпретатора (CMD.EXE) существует возможность изменить приглашение, так чтобы отображалась полезная информация, например, время, дата, версия операционной системы и т.д. С целью изменить приглашение командной строки воспользуйтесь следующей командой:
prompt johns prompt
Хотя можно использовать и обычный текст, он недостаточно информативен. Далее представлен список кодов, которые можно использовать для приглашения командной строки.
Коды для приглашения командной строки
Настройка приглашения командной строки в Bash

Приглашение можно настраивать. Можно добавлять информацию или, например, изменить цвет приглашения.
В какой переменной задается приглашение
Формат строки приглашения задается в переменной окружения PS1. Чтобы настроить приглашение, необходимо изменить значение переменной PS1.
Например, переменная PS1 может иметь значение:
PS1="\u@\h:\w$"
Или, например, командой echo $PS1 можно вывести текущее значение переменной PS1. У меня в Ubuntu оно выглядит так:
echo $PS1 \[\e]0;\u@\h: \w\a\]$\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$
Не пугайтесь. На самом деле существует масса возможностей для настройки строки приглашения. Ниже мы рассмотрим базовые методы настройки.
Как изменить приглашение (только для данной сессии)
Можно установить переменную PS1 только для текущей сессии в терминале. Это удобно, пока вы подбираете, как будет выглядеть строка приглашения. Чтобы это сделать нужно выполнить команду export для переменной PS1, например:
export PS1="\u@\w:"
После выполнения команды строка приглашения в терминале сразу изменится.
Настройка приглашения
Для задания различных значений переменной PS1 существуют специальные символы. Комбинируя различные специальные символы можно составить свою строку приглашения.
Специальные символы начинаются с символа косой черты « \ », за которой следует буква или символ. Ниже приведена таблица специальных символов.
| Обозначение | Описание |
|---|---|
| \a | ASCII-символ bell (07) |
| \d | Дата в формате «День недели Месяц Дата» (например, «Пн Ноя 26») |
| \D | Значение 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. |
| \\ | Символ обратной косой черты « \ ». |
| \[ | Начало последовательности непечатаемых символов. |
| \] | Конец последовательности. |
Примеры
Пример 1
Приглашение, состоящее из одного символа « > »:

Пример 2
Текущее время, пользователь, текущая директория:
PS1="\A \u@\w$"

Пример 3
Дата, пользователь, текущая директория, номер команды:

Как изменить цвета в строке приглашения
Элементы строки приглашения можно раскрашивать в разные цвета.
Чтобы задавать цвета для элементов строки приглашения нужно части строки приглашения заключать в специальные символы.
Используется следующий синтаксис:
\e[ X;Ym РАСКРАШИВАЕМАЯ_СТРОКА \e[m
\e[ — начало цветовой схемы.
X;Ym — цветовая пара (X;Y). Именно значения X и Y определяют цвет.
\e[m — окончание цветовой схемы.
Небольшой пример, чтобы вы понимали о чем идет речь. Раскрасим всю строку целиком цветом с обозначением 0;36.
export PS1="\e[0;36m\u@\h \W$ \e[m"

Цвета задаются числами. Можно задавать парой X;Y или просто Y. Например, красный это — 0;31 или просто 31. Есть и другие способы задания цветов, но в данной статье мы их не рассматриваем.
Список цифровых обозначений для цветов (Y):
| Цвет | Числовое обозначение |
|---|---|
| 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 — моргание.
Примеры
Пример 1
Например, установим имя пользователя желтым цветом, а остальной текст оставим стандартным цветом (в моем случае это белый). Для указания желтого цвета используем обозначение 1;33 (как светло-коричневый).
export PS1="\e[1:33m\u\e[m@\h \W$ "

Пример 2
Раскрасим остальные элементы строки приглашения:
export PS1="\e[1;33m\u\e[m@\e[0;96m\h\e[m \e[0;92m\W\e[m$ "

Как изменить приглашение на постоянной основе
Новое значение переменной PS1 прописывается в файле .bashrc , который расположен в вашей домашней директории (файл может отсутствовать).
Откроем файл .bashrc в редакторе nano для редактирования. Для этого в терминале выполним команду:
nano ~/.bashrc
Перейдем в конец файла и добавим новую строку, в которой пропишем значение переменной PS1. Например:
PS1="\u@\w$"
Сохраним изменения и закроем файл. Для этого нажмите Ctrl+X , затем Y и Enter , чтобы сохранить изменения.
Теперь выполним команду source, чтобы наши изменения вступили в силу:
source ~/.bashrc
Перезапустите терминал. Приглашение для ввода команд будет обновлено.
PROMPT – изменение приглашения командной строки CMD Windows.
Приглашение может включать обычные символы и следующие коды:
$A & (амперсанд)
$B | (вертикальная черта)
$C ( (левая круглая скобка)
$D Текущая дата
$E ESC (символ ASCII с кодом 27)
$F ) (правая круглая скобка)
$G > (знак «больше»)
$H BACKSPACE (удаление предыдущего символа)
$L $N Текущий диск
$P Текущие диск и каталог
$Q = (знак равенства)
$S (пробел)
$T Текущее время
$V Номер версии Windows
$_ Возврат каретки и перевод строки
$$ $ (символ доллара)
Когда расширенная обработка команд включена, команда PROMPT поддерживает следующие дополнительные символы форматирования:
$+ Отображение нужного числа знаков плюс (+) в зависимости от текущей глубины стека каталогов PUSHD, по одному знаку на каждый сохраненный путь.
$M Отображение полного имени удаленного диска, связанного с именем текущего диска, или пустой строки, если текущий диск не является сетевым.
При использовании PROMPT без параметров, выполняется установка текста приглашения в значение по умолчанию — $P$G — текущий диск и каталог и знак “Больше”.
prompt /? — отобразить подсказку по использованию команды.
В тексте приглашения можно использовать значение переменных окружения:
prompt %computername% $P$G — перед стандартным приглашением будет отображаться имя компьютера.
prompt $C%computername%$F $P$G — то же, что и в предыдущем примере, но имя компьютера будет заключено в скобки.
prompt $c%computername%$F$M$P$G — в скобках будет отображаться имя локального компьютера, путь сетевого ресурса в формате UNC, буква сетевого диска и путь, например:
(COMP0)\\SERVER\install i:\Piriform > — Локальный компьютер COMP0, сетевой ресурс \\SERVER\install , подключен как диск I: , текущий каталог — Piriform
prompt $D$_$T$_$P$G — текст приглашения представлен тремя строками, в первой отображается дата, во второй – время, в третьей – полный путь текущего каталога. Пример:
02.12.2015 17:50:58,62 I:\Piriform >
В примере, время представлено с точностью до сотых долей секунды — 17:50:58,62 . Для того, чтобы избавиться от них, и знака запятой в том числе, можно использовать три кода $H для удаления 3-х предшествующих им символа:
prompt $D$_$T$H$H$H$_$P$G — то же, что и в предыдущем примере, но время отображается без долей секунды — 17:50:58