Устройство строки приглашения к вводу
По умолчанию строка приглашения к вводу имеет следующий вид:
[me@linuxbox ~]$
Обратите внимание, что она содержит имя пользователя, имя хоста (сетевое имя компьютера) и имя текущего рабочего каталога. Но как она образовалась? Все, оказывается, очень просто. Форма приглашения к вводу определяется в переменной окружения PS1 (сокращенно от prompt string 1 — строка приглашения 1). Увидеть содержимое переменной PS1 можно с помощью команды echo:
[me@linuxbox ~]$ echo $PS1
[u@h W]$
ПРИМЕЧАНИЕ
Не волнуйтесь, если вы увидите нечто отличающееся от примера, приведенного выше. Все дистрибутивы Linux определяют приглашение к вводу по-своему, а некоторые содержат весьма экзотические определения.
Мы видим, что PS1 содержит несколько символов, например: квадратные скобки, знак @ и знак доллара, но все остальное — сплошная абракадабра. Наиболее догадливые из вас сразу поймут, что символы, экранированные слешем, — специальные символы, как те, что мы видели в табл. 7.2. В табл. 13.1 приводится неполный список символов, которые командная оболочка интерпретирует специальным образом в строке приглашения.
Таблица 13.1. Экранированные последовательности, используемые в строке приглашения
Последовательность
Отображаемое значение
a
Звонок. Заставляет компьютер издавать звуковой сигнал
d
Текущая дата в формате: день недели месяц число; например, «Mon May 26» (Пн Май 26)
h
Имя хоста локальной машины минус имя домена
H
Полное имя хоста
j
Число заданий, действующих в текущем сеансе
l
Имя текущего устройства терминала
Символ перевода строки
Возврат каретки
s
Имя программы командной оболочки
Текущее время в 24-часовом формате
T
Текущее время в 12-часовом формате
@
Текущее время в 12-часовом формате AM/PM
A
Текущее время в 24-часовом формате, часы:минуты
г
Имя пользователя
v
Номер версии командной оболочки
V
Номер версии и выпуска командной оболочки
w
Имя текущего рабочего каталога
W
Последняя часть в имени текущего рабочего каталога
!
Номер текущей команды в истории
#
Число команд, введенных в текущем сеансе командной оболочки
$
Выводит символ $, если пользователь не является суперпользователем, в противном случае выводит символ #
[
Отмечает начало последовательности из одного или нескольких непечатаемых символов. Используется для внедрения непечатаемых символов, управляющих поведением эмулятора терминала, например перемещает курсор или изменяет цвет текста
]
Отмечает конец последовательности непечатаемых символов