Строка приглашения в bash

Материал из Belgorod Linux User Group - Белгород

Перейти к: навигация, поиск

Содержание

Стандартный вид

например такой:

fura@localhost ~ $

Давайте разберемся что мы можем "выжать" полезного из приглашения. Сейчас видно юзера, имя хоста, текущая директория. Чтобы увидеть как приглашение настроено нужно набрать:

echo $PS1

Если приглашение цветное, то вы увидете длинную строку с \033, [01;3m] и прочими спец символами. На самом деле для всего этого достаточно строки "\u@\h \w $". Введя в консоли:

export PS1="\u@\h \w $ "

Вы получите тоже самое, только без цвета. Теперь становится понятно что значит каждая буква:

\u - user (имя пользователя)
\h - hostname (имя компьютера - до первой точки - то есть короткое)
\w - pwd (текущая директория)

Так же существуют другие

Слеш последовательности

\d - date (дата в формате "<день недели> <месяц> <число>")
\t - time (время часы:минуты:секунды в 24 часовом формате, \T в 12 часовом)
\$ - заменяется на 
   1) символ #, если оболочка запущена root'ом
   2) символ $, если оболочка запущена обычным пользователем
\s - shell ( имя оболочки)
\# - текущий номер команды
\! - порядковый номер данной команды в истории команд (ссылка на history)
\\ - обратный слэш
\v - version (версия shell'a)
\V - Version (полная версия shell'a, т.е. со всеми минорами)

пример

Теперь давайте попробуем сделать "полезное" приглашение. Естественно для каждого полезность субъективна. Допустим у вас есть 10 или около того серверов\рабочих станций. Что нужно, естественно имя пользователя,

\u

также не помешало бы знать на какой машине мы находимся,

\u \H 

для работы нужно знать текущую директорию.

\u \H \w 

и для частого сидения в консоли не помешало бы время :)

\u \H \w \t

и лично мне нравится -

\u \H \w \t - 

Если набрать

export PS1="\u \H \w \t - "

то можно увидеть примерно следущее:

fura web2.lan /usr/include 11:57:39 -

Уже поинтереснее, но без цвета и подряд удобочитаемость будет низкая. Тут каждый сам пробует подобрать красивый вариант или убрать то что мешает. У меня получилось следующее:

export PS1="\H(\u) \t \w - "

Если у хоста \H не информативен, я вбиваю имя сам, т.е.

PS1="gentoo_test_na_balkone(\u) \t \w - "

С цветами выглядит так:

export PS1='\[\033[01;31m\]\H(\[\033[01;32m\]\u\[\033[01;31m\]) \[\033[00m\]\t \[\033[01;34m\]\w \[\033[00m\]- '

Цвета

ссылка или описание тут

Личные инструменты