Тот, кто начал работать в терминале 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} \w\n[\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? Дай нам знать в комментариях.