Тот, кто начал работать в терминале Linux знаком со строкой по умолчанию в Bash:

[user@$host ~]$

 

Но знаете ли вы, что она полностью настраивается и может содержать некоторую полезную информацию? Вот несколько скрытых сокровищ, которые можно использовать для настройки Bash строки.

Как задать командную строку в Bash?

Строка в Bach задается переменной окружения PS1  (строка приглашения 1), которая используется для интерактивных подсказок оболочки. Существует также переменная PS2, которая используется в случае ввода и требуется для выполнения команды Bash.

[dneary@dhcp-41-137 ~]$ export PS1="[Linux Rulez]$ "
[Linux Rulez] export PS2="... "
[Linux Rulez] if true; then
... echo "Success!"
... fi
Success!

 

Где устанавливается значение PS1?

PS1 является регулярной переменной среды.

Значение системы по умолчанию устанавливается в /etc/bashrc. В нашей системе, подсказка по умолчанию устанавливается с помощью этой строки:

[ "$PS1" = "\s-\v\$ " ] && PS1="[u@h W]\$ "

 

Она проверяет, является ли значение PS1: s-v$ (значение по умолчанию системы), и если она есть, она устанавливает PS1 к значению [u@h W]\$.

Если вы хотите увидеть пользовательскую подсказку, вы не должны редактировать /etc/bashrc. Вместо этого вы должны добавить его в .bashrc в вашей домашней директории.

Что означает u, h, W, s, и v?

В части Подсказки man bash, вы можете найти описание всех специальных символов в PS1 и PS2 . Ниже приведены параметры по умолчанию:

  • u : Имя пользователя
  • h : Короткое имя хоста
  • W : Базовое имя текущего рабочего каталога ( ~ для дома, текущего каталога в другом месте)
  • s : Название оболочки (Bach или sh, в зависимости от того, как называется оболочка)
  • v : версия оболочки

Какие другие специальные строки можно использовать в подсказками?

Есть целый ряд специальных строк, которые могут быть полезны.

  • d : Расширяет даты в формате «Tue Jun 27»
  • D{fmt} : Позволяет пользовательские форматы даты – смотрите man strftime для доступных опций
  • D{%с} : Показывает дату и время в текущей локали
  • n: Включить новую строку (см многострочные подсказки ниже)
  • w: Полный путь к текущей рабочей директории
  • H : Полное имя хоста для текущей машины
  • ! : История номера – вы можете запустить любую предыдущую команду с ее историей номера с помощью целеуказателя истории оболочки событий, ! а затем номер для конкретной команды, которая вам необходима.

Есть много других специальных символов, вы можете увидеть полный список в PROMPTING части Bash man page.

Многоканальный подсказки

Если вы используете более длинные подсказки (например, если вы включите H или w или полную дату и время), вы можете разбить вещи на две строки. Вот пример многострочные строки а, с указанием даты, времени и текущей рабочей директории в одной строке, и username @hostname на второй линии:

PS1="D{%c} wn[u@H]$ "

 

Есть ли какие-либо другие интересные вещи, которые мы можем сделать?

Одна вещь, которую люди иногда делают это создать красочные приглашения. В то время как мы находим это раздражительным и отвлекающим, вы можете сделать подобное. Например, чтобы изменить дату и время, выше для отображения красным цветом, каталог в голубой цвет, и Ваше имя пользователя на желтом фоне, вы можете попробовать так:

PS1="[e[31m]D{%c}[e[0m] [e[36m]w[e[0m]n[[e[1;43m]u[e[0m]@H]$ "

 

Разберем этот код:

  • [..] объявляет некоторые не напечатанные символы
  • е[.. клавиша эскейп. То, что следует особая последовательность вывода, чтобы изменить цвет (или другие характеристики) в терминале
  • 31m красный текст ( 41м будет красный фон)
  • 36m является голубым текстом
  • 1;43m объявляет желтый фон ( 1;33m будет желтый текст)
  • [ е[0m] в конце сбрасывает цвета терминала по умолчанию

Вы можете найти больше цветов и советы в быстром HOWTO Bash. Вы можете даже сделать текст перевернутым или мигающим! Почему на планете кто-то захочет это сделать, мы не знаем. Но вы можете!

Какие ваши любимые быстрые настройки в Bash? Дай нам знать в комментариях.

Источник: AndreyEx.ru