Заметки о решаемых задачах АйТишников

Сделал - запиши. Нашёл - сохрани :)

Прошу прощения за рекламу на сайте. Я постарался сделать это максимально ненавязчиво и по минимуму. При чтении заинтересовавших вас статей она не будет вам мешать.
И если есть возможность поставить мой сайт в исключения у блокировщика рекламы, я буду очень признателен вам.

Советы и приемы настройки командной строки в Bash Linux

Советы и приемы настройки командной строки в Bash Linux

 

 

 

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

[user@$host ~]$

Это вывод переменной окружения PS1 и она, кстати, как и всё в Linux, полностью настраивается и может содержать полезную информацию.

Вот несколько приёмов, которые можно использовать для настройки строки приглашения в Bash.

Как задать свой вид командной строки в Bash?

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

Вот пример кода который меняет PS1 и PS2 в текущей сессии терминала:

[user@host ~]$ export PS1="[NewPrompt]$ "
[NewPrompt] export PS2="... "
[NewPrompt] if true; then
... echo "Success!"
... fi
Success!

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

Значение PS1 устанавливается в ~/.bashrc (в домашней директории пользователя).

Пример строки с PS1 по умолчанию:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

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

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

\u : Имя пользователя
\h : Краткое имя хоста до первого символа . (точка)
\W : Текущий относительный путь до рабочего каталога (если домашний каталог, то используется ~ (тильда))
\s : Название оболочки (bash или sh, в зависимости от того какая оболочка используется)
\v : Версия оболочки

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

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

\d : Расширяет формат даты до День недели Месяц Дата (например, «Пт Сен 12»)
\D{fmt} : Позволяет использовать пользовательские форматы даты (команда man strftime покажет подробности)
\D{%с} : Показывает дату и время в текущей локали
\n : Перейти на новую строку
\w : Полный путь к текущей рабочей директории
\H : Полное имя хоста для текущей машины
\! : Номер команды в истории команд (файл .bash_history в домашней директории).

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

Многострочная строка приглашение

Удобно иметь многострочную строку приглашение, например: в первой строке дата, время и текущая директория, а во-второй строке 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\] : Сбрасывает цвета терминала по умолчанию. @\H]$ - вывод на экран этой части строки будет в цветах по умолчанию

Резюме

Строку приглашение можно раскрасить как угодно, можно сделать текст перевернутым или мигающим и т.д.
Всё зависит только от вашей фантазии.

 

07 июня 2022, 17:26    Александр Linux 0    1711 0

 

 

 

 



Комментарии ()

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