Как изменить приглашение командной строки
Перейти к содержимому

Как изменить приглашение командной строки

  • автор:

Конфигурирование приглашения командной строки

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

prompt johns prompt

Хотя можно использовать и обычный текст, он недостаточно информативен. Далее представлен список кодов, которые можно использовать для приглашения командной строки.

Коды для приглашения командной строки

Настройка приглашения командной строки в Bash

Bash Promt PS1

Приглашение можно настраивать. Можно добавлять информацию или, например, изменить цвет приглашения.

В какой переменной задается приглашение

Формат строки приглашения задается в переменной окружения 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *