Последовательность | Отображаемое значение |
\a | Звонок. Заставляет компьютер издавать звуковой сигнал |
\d | Текущая дата в формате: день недели месяц число; например, «Mon May 26» (Пн Май 26) |
\h | Имя хоста локальной машины минус имя домена |
\H | Полное имя хоста |
\j | Число заданий, действующих в текущем сеансе |
\l | Имя текущего устройства терминала |
\n | Символ перевода строки |
\r | Возврат каретки |
\s | Имя программы командной оболочки |
\t | Текущее время в 24-часовом формате |
\T | Текущее время в 12-часовом формате |
\@ | Текущее время в 12-часовом формате AM/PM |
\A | Текущее время в 24-часовом формате, часы:минуты |
\г | Имя пользователя |
\v | Номер версии командной оболочки |
\V | Номер версии и выпуска командной оболочки |
\w | Имя текущего рабочего каталога |
\W | Последняя часть в имени текущего рабочего каталога |
\! | Номер текущей команды в истории |
\# | Число команд, введенных в текущем сеансе командной оболочки |
\$ | Выводит символ $, если пользователь не является суперпользователем, в противном случае выводит символ # |
\[ | Отмечает начало последовательности из одного или нескольких непечатаемых символов. Используется для внедрения непечатаемых символов, управляющих поведением эмулятора терминала, например перемещает курсор или изменяет цвет текста |
\] | Отмечает конец последовательности непечатаемых символов |
Альтернативные варианты оформления приглашения
Имея список специальных символов, можно попробовать изменить оформление приглашения. Для начала сохраните исходное определение, чтобы его можно было восстановить позднее. Для этого скопируйте значение переменной PS1 в другую переменную:
[me@linuxbox ~]$ ps1_old="$PS1"
Здесь создается новая переменная с именем ps1_old, и ей присваивается значение переменной PS1. Убедиться, что значение скопировано, можно с помощью команды echo:
[me@linuxbox ~]$ echo $ps1_old
[\u@\h \W]\$
Это позволит вам в любой момент восстановить исходное оформление приглашения, выполнив обратную процедуру:
[me@linuxbox ~]$ PS1="$ps1_old"
Теперь, когда все готово, давайте посмотрим, что получится, если определить пустую строку приглашения:
[me@linuxbox ~]$ PS1=
Если определить приглашение как пустую строку, мы ничего не увидим. Строка приглашения просто исчезнет! В действительности она все еще существует, но поскольку она пустая, на экране ничего не отображается, — собственно, как мы и просили. Так как пустая строка приглашения дезориентирует, давайте определим минимальное оформление:
PS1="\$ "
Так лучше. По крайней мере, теперь видно, где мы находимся. Обратите внимание на завершающий пробел внутри кавычек. Он обеспечивает дополнительное пространство на экране между знаком доллара и курсором.
Добавим в строку приглашения сигнал:
$ PS1="\a\$ "
Теперь при каждом выводе строки приглашения вы должны слышать короткий звуковой сигнал. Постоянно звучащий сигнал может раздражать, но в некоторых случаях он может быть полезен, например если нужно получать звуковое оповещение об удачном завершении долго выполняющихся команд.
А теперь попробуйте сделать приглашение более информативным, добавив имя хоста и время суток:
$ PS1="\A \h \$ "
17:33 linuxbox $
Добавление времени суток может пригодиться, если есть необходимость зафиксировать, в какой момент закончилось выполнение задачи. Наконец, сделайте приглашение похожим на оригинальное:
17:37 linuxbox $ PS1="<\u@\h \W>\$ "
Попробуйте использовать другие последовательности из табл. 13.1 и посмотрите, сможете ли вы получить свою уникальную строку приглашения к вводу.
Добавление цвета
Большинство программ эмуляторов терминалов реагируют на некоторые последовательности непечатаемых символов, например управляющие атрибутами символов (такими, как цвет, жирность и мигание) и позицией курсора. О позиции курсора мы поговорим чуть позже, а сейчас займемся цветом.