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

We use cookies. Read the Privacy and Cookie Policy

По умолчанию строка приглашения к вводу имеет следующий вид:

[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

Последняя часть в имени текущего рабочего каталога

!

Номер текущей команды в истории

#

Число команд, введенных в текущем сеансе командной оболочки

$

Выводит символ $, если пользователь не является суперпользователем, в противном случае выводит символ #

[

Отмечает начало последовательности из одного или нескольких непечатаемых символов. Используется для внедрения непечатаемых символов, управляющих поведением эмулятора терминала, например перемещает курсор или изменяет цвет текста

]

Отмечает конец последовательности непечатаемых символов