Полное имя хоста
|
\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 и посмотрите, сможете ли вы получить свою уникальную строку приглашения к вводу.
Большинство программ эмуляторов терминалов реагируют на некоторые последовательности непечатаемых символов, например управляющие атрибутами символов (такими, как цвет, жирность и мигание) и позицией курсора. О позиции курсора мы поговорим чуть позже, а сейчас займемся цветом.
недоразумения с терминалами
В стародавние времена, когда дискеты были большими, а терминалы подключались к удаленным компьютерам, существовало великое многообразие моделей терминалов, и все они работали по-разному. Они имели разные клавиатуры и по-разному интерпретировали управляющую информацию. В Unix и в Unix-подобных системах имеются две очень сложные подсистемы (которые называются termcap и terminfo), решающие все проблемы, связанные с управлением терминалами. Если заглянуть в самые потаенные кладовые настроек эмулятора терминала, можно обнаружить параметр, определяющий тип эмулируемого терминала.
Читать дальше