- Настройка строки приглашения в bash
- Формат строки приглашения в bash
- Последовательность символов, отображающих время и дату
- Специальные символы, изменяющие значение в зависимости от пользователя и хоста
- Местоположение
- Прочее
- Пример использования
- Изменение цвета символов
- Свойства цвета и их численное обозначение
- Цвет
- Пример использования
- Заключение
- Настройка вида приглашения командной строки в Bash
- Как изменить приглашение (только для данной сессии)
- Как изменить приглашение на постоянной основе
- Как изменить цвета в строке приглашения
- Примеры
- Список возможных настроек приглашения
- Настройка приглашения командной строки в Bash
- В какой переменной задается приглашение
- Как изменить приглашение (только для данной сессии)
- Настройка приглашения
- Примеры
- Пример 1
- Пример 2
- Пример 3
- Как изменить цвета в строке приглашения
- Примеры
- Пример 1
- Пример 2
- Как изменить приглашение на постоянной основе
Настройка строки приглашения в bash
Строка приглашения в bash – то, что печатается в терминал до начала ввода команды. К примеру, по умолчанию у меня это выглядит как-то так:
Как видно, достаточно неприметный вид, ничем не выделяется. А значит сложный поиск введённых команд среди вывода bash. Рецепт в статье универсальный, будут работать как для Ubuntu 16.04, так и в Archlinux.
Формат задаётся с помощью глобальной переменной PS1, узнать её значение можно с помощью echo:
$ echo $PS1
Изменить её можно следующим образом (пока консоль не закроется):
$ PS1=’значение’
Формат строки приглашения в bash
В переменную PS1 можно записать обычные символы, но они не представляют собой какого-то практического интереса, служат скорее для декорации. В то же время существуют и специальные символы, выполняющие какую-то функцию.
Последовательность символов, отображающих время и дату
| Символы | Значение |
|---|---|
| d | Дата в формате: день недели, текущий месяц, число |
| t | Время в 24-часовом формате: часы, минуты, секунды |
| T | Время в 12-часовом формате: часы, минуты, секунды |
| @ | Время в 12-часовом формате: часы, минуты, секунды + AM(утро) или PM(вечер) |
Специальные символы, изменяющие значение в зависимости от пользователя и хоста
| Символы | Значение |
|---|---|
| H | Полный hostname |
| h | hostname до первой точки |
| u | Текущий пользователь |
| $ | Показывает $ – если оболочка запущена непривилегированным пользователем и # – root’ом |
| s | Название оболочки терминала |
Местоположение
| Символы | Значение |
|---|---|
| W | Полный путь папки в которой происходит сеанс |
| w | Сокращенный путь (отображается только имя текущей директории) |
Прочее
| Символы | Значение |
|---|---|
| n | Новая строка |
| # | Номер команды |
| ! | Номер команды в истории bash’а |
| a | Звуковой сигнал |
Пример использования
Задав приглашение в виде ‘имя_хоста : время : номер команды -:’
PS1=’H : t : # -:’
Увидим примерно это:
ozi-linux : 08:55:35 : 8 -:
Изменение цвета символов
Цвет букв или фона меняется с помощью такой последовательности:
[е[K;Nm] Где K – номер свойства, N – номер цвета букв или фона, в зависимости от значения.
Свойства цвета и их численное обозначение
| Свойство | K |
|---|---|
| По-умолчанию | 0 |
| Яркий | 1 |
| Тусклый | 2 |
| Подчеркнутый | 4 |
| Обычный | 5 |
| Инвентированный | 7 |
| Скрытый | 8 |
Цвет
| Цвет | N для символов | N для фона |
|---|---|---|
| Чёрный | 30 | 40 |
| Красный | 31 | 41 |
| Зелёный | 32 | 42 |
| Жёлтый | 33 | 43 |
| Синий | 34 | 44 |
| Фиолетовый | 35 | 45 |
| Голубой | 36 | 46 |
| Белый | 37 | 47 |
Пример использования
[е[1;47m][е[2;35m]
Эта последовательность задаёт яркий(1) белый фон(47) и тусклые(2) фиолетовые символы(35) для последующего вывода.
Заключение
Немного подумав, я выбрал такой формат:
PS1='[e[1;31m]u[e[0;32m]:[e[0;35m]w[e[0;32m]$ [e[0;37m]’
С пояснениями (переключение цвета показано окраской последовательности):
Возможно выглядит это не особо эстетично, но главное – заметно. Что меня полностью и устраивает =)
Настройка вида приглашения командной строки в Bash
Вид приглашения командной строки Bash определяется переменной PS1 . Его можно просмотреть как любую другую переменную окружения:
Как изменить приглашение (только для данной сессии)
Можно установить переменную PS1 только для текущей сессии в терминале. Это удобно, пока вы подбираете, как будет выглядеть строка приглашения. Чтобы это сделать нужно выполнить команду export для переменной PS1 , например:
После выполнения команды строка приглашения в терминале сразу изменится.
Как изменить приглашение на постоянной основе
Новое значение переменной PS1 прописывается в файле .bashrc , который расположен в вашей домашней директории (файл может отсутствовать).
Откроем файл .bashrc в редакторе nano для редактирования. Для этого в терминале выполним команду:
Перейдем в конец файла и добавим новую строку, в которой пропишем значение переменной PS1 . Например:
Сохраним изменения и закроем файл. Для этого нажмите Ctrl+X, затем Y и Enter, чтобы сохранить изменения.
Теперь выполним команду source, чтобы наши изменения вступили в силу:
Перезапустите терминал. Приглашение для ввода команд будет обновлено.
Как изменить цвета в строке приглашения
Элементы строки приглашения можно раскрашивать в разные цвета.
Чтобы задавать цвета для элементов строки приглашения нужно части строки приглашения заключать в специальные символы.
Используется следующий синтаксис:
e[ — начало цветовой схемы. X;Ym — цветовая пара (X;Y). Именно значения X и Y определяют цвет. e[m — окончание цветовой схемы.
Небольшой пример, чтобы вы понимали о чем идет речь. Раскрасим всю строку целиком цветом с обозначением 0;36 .
Цвета задаются числами. Можно задавать парой X;Y или просто Y. Например, красный это — 0;31 или просто 31. Есть и другие способы задания цветов, но в данной статье мы их не рассматриваем.
Список цифровых обозначений для цветов (Y):
| Цвет | Числовое обозначение |
|---|---|
| Black | 30 |
| Red | 31 |
| Green | 32 |
| Brown | 33 |
| Blue | 34 |
| Purple | 35 |
| Cyan | 36 |
| Light gray | 37 |
| Dark gray | 90 |
| Light red | 91 |
| Light green | 92 |
| Light yellow | 93 |
| Light blue | 94 |
| Light magenta | 95 |
| Light cyan | 96 |
| White | 97 |
При задании цвета двумя числами X;Y, первое число X принимает следующие значения:
0 — обычный цвет; 1 — будет использоваться более яркий цвет; 2 — более темный цвет; 3 — курсив; 4 — подчеркивание; 5 — моргание. Примеры
Простой вывод текущего пользователя и полного пути:
Такойже вывод, но с подстветкой:
PS1="\[\e]0;\u@\h: \w\a\]$:+($debian_chroot)>\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ " Список возможных настроек приглашения
Для задания различных значений переменной PS1 существуют специальные символы. Комбинируя различные специальные символы можно составить свою строку приглашения.
Специальные символы начинаются с символа косой черты \ , за которой следует буква или символ. Ниже приведена таблица специальных символов
| Обозначение | Описание |
|---|---|
| \a | ASCII-символ bell (07) |
| \d | Дата в формате «День недели Месяц Дата» (например, «Пн Ноя 26») |
| \D | Значение format передается функции strftime. В строку приглашения подставляется результат выполнения функции. Фигурные скобки обязательны. |
| \e | ASCII-символ escape (033) |
| \h | Hostname (имя хоста) до первого символа точка . . |
| \H | Hostname (имя хоста, компьютера). |
| \j | Количество фоновых процессов, запущенных в данной оболочке |
| \l | Базовое название оболочки. |
| \n | Переход на новую строку. |
| \r | Переход к началу строки (возврат каретки). |
| \s | Имя оболочки (имя shell). |
| \t | Текущее время в 24-часовом формате (HH:MM:SS). |
| \T | Текущее время в 12-часовом формате (HH:MM:SS). |
| \@ | Текущее время в 12-часовом am/pm формате. |
| \A | Текущее время в 24-часовом формате (HH:MM). |
| \u | Имя пользователя. |
| \v | Версия bash (например, 4.4). |
| \V | Версия bash с версией релиза (например, 4.4.19). |
| \w | Текущий абсолютный путь (полный путь). Домашняя директория сокращается до значка тильды ~ . |
| \W | Текущий относительный путь. Домашняя директория сокращается до значка тильды ~ . |
| \! | Номер команды в истории команд (history). |
| \# | Номер команды в текущей сессии терминала. |
| \$ | Символ приглашения (# для root, $ для обычных пользователей). |
| \nnn | Символ, соответствующий восьмеричному значению nnn. |
| \\ | Символ обратной косой черты \ . |
| \[ | Начало последовательности непечатаемых символов. |
| \] | Конец последовательности. |
Приветствую вас на сайте ZENCOD.ru! Здесь вы найдете статьи по web-разработке, javascript, linux и прочим темам, которые могут быть полезны.
Настройка приглашения командной строки в Bash
Приглашение можно настраивать. Можно добавлять информацию или, например, изменить цвет приглашения.
В какой переменной задается приглашение
Формат строки приглашения задается в переменной окружения PS1. Чтобы настроить приглашение, необходимо изменить значение переменной PS1.
Например, переменная PS1 может иметь значение:
Или, например, командой echo $PS1 можно вывести текущее значение переменной PS1. У меня в Ubuntu оно выглядит так:
echo $PS1 \[\e]0;\u@\h: \w\a\]$\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ Не пугайтесь. На самом деле существует масса возможностей для настройки строки приглашения. Ниже мы рассмотрим базовые методы настройки.
Как изменить приглашение (только для данной сессии)
Можно установить переменную PS1 только для текущей сессии в терминале. Это удобно, пока вы подбираете, как будет выглядеть строка приглашения. Чтобы это сделать нужно выполнить команду export для переменной PS1, например:
После выполнения команды строка приглашения в терминале сразу изменится.
Настройка приглашения
Для задания различных значений переменной PS1 существуют специальные символы. Комбинируя различные специальные символы можно составить свою строку приглашения.
Специальные символы начинаются с символа косой черты « \ », за которой следует буква или символ. Ниже приведена таблица специальных символов.
| Обозначение | Описание |
|---|---|
| \a | ASCII-символ bell (07) |
| \d | Дата в формате «День недели Месяц Дата» (например, «Пн Ноя 26») |
| \D | Значение format передается функции strftime. В строку приглашения подставляется результат выполнения функции. Фигурные скобки обязательны. |
| \e | ASCII-символ escape (033) |
| \h | Hostname (имя хоста) до первого символа точка « . ». |
| \H | Hostname (имя хоста, компьютера). |
| \j | Количество фоновых процессов, запущенных в данной оболочке |
| \l | Базовое название оболочки. |
| \n | Переход на новую строку. |
| \r | Переход к началу строки (возврат каретки). |
| \s | Имя оболочки (имя shell). |
| \t | Текущее время в 24-часовом формате (HH:MM:SS). |
| \T | Текущее время в 12-часовом формате (HH:MM:SS). |
| \@ | Текущее время в 12-часовом am/pm формате. |
| \A | Текущее время в 24-часовом формате (HH:MM). |
| \u | Имя пользователя. |
| \v | Версия bash (например, 4.4). |
| \V | Версия bash с версией релиза (например, 4.4.19). |
| \w | Текущий абсолютный путь (полный путь). Домашняя директория сокращается до значка тильды « ~ ». |
| \W | Текущий относительный путь. Домашняя директория сокращается до значка тильды « ~ ». |
| \! | Номер команды в истории команд (history). |
| \# | Номер команды в текущей сессии терминала. |
| \$ | Символ приглашения ( # для root, $ для обычных пользователей). |
| \nnn | Символ, соответствующий восьмеричному значению nnn. |
| \\ | Символ обратной косой черты « \ ». |
| \[ | Начало последовательности непечатаемых символов. |
| \] | Конец последовательности. |
Примеры
Пример 1
Приглашение, состоящее из одного символа « > »:
Пример 2
Текущее время, пользователь, текущая директория:
Пример 3
Дата, пользователь, текущая директория, номер команды:
Как изменить цвета в строке приглашения
Элементы строки приглашения можно раскрашивать в разные цвета.
Чтобы задавать цвета для элементов строки приглашения нужно части строки приглашения заключать в специальные символы.
Используется следующий синтаксис:
\e[ X;Ym РАСКРАШИВАЕМАЯ_СТРОКА \e[m
\e[ — начало цветовой схемы.
X;Ym — цветовая пара (X;Y). Именно значения X и Y определяют цвет.
\e[m — окончание цветовой схемы.
Небольшой пример, чтобы вы понимали о чем идет речь. Раскрасим всю строку целиком цветом с обозначением 0;36.
Цвета задаются числами. Можно задавать парой X;Y или просто Y. Например, красный это — 0;31 или просто 31. Есть и другие способы задания цветов, но в данной статье мы их не рассматриваем.
Список цифровых обозначений для цветов (Y):
| Цвет | Числовое обозначение |
|---|---|
| Black | 30 |
| Red | 31 |
| Green | 32 |
| Brown | 33 |
| Blue | 34 |
| Purple | 35 |
| Cyan | 36 |
| Light gray | 37 |
| Dark gray | 90 |
| Light red | 91 |
| Light green | 92 |
| Light yellow | 93 |
| Light blue | 94 |
| Light magenta | 95 |
| Light cyan | 96 |
| White | 97 |
При задании цвета двумя числами X;Y, первое число X принимает следующие значения:
0 — обычный цвет;
1 — будет использоваться более яркий цвет;
2 — более темный цвет;
3 — курсив;
4 — подчеркивание;
5 — моргание.
Примеры
Пример 1
Например, установим имя пользователя желтым цветом, а остальной текст оставим стандартным цветом (в моем случае это белый). Для указания желтого цвета используем обозначение 1;33 (как светло-коричневый).
Пример 2
Раскрасим остальные элементы строки приглашения:
export PS1="\e[1;33m\u\e[m@\e[0;96m\h\e[m \e[0;92m\W\e[m$ " Как изменить приглашение на постоянной основе
Новое значение переменной PS1 прописывается в файле .bashrc , который расположен в вашей домашней директории (файл может отсутствовать).
Откроем файл .bashrc в редакторе nano для редактирования. Для этого в терминале выполним команду:
Перейдем в конец файла и добавим новую строку, в которой пропишем значение переменной PS1. Например:
Сохраним изменения и закроем файл. Для этого нажмите Ctrl+X , затем Y и Enter , чтобы сохранить изменения.
Теперь выполним команду source, чтобы наши изменения вступили в силу:
Перезапустите терминал. Приглашение для ввода команд будет обновлено.