Яндекс.Практикум

Настройка строки приглашения в bash

Строка приглашения в bash – то, что печатается в терминал до начала ввода команды. К примеру, по умолчанию у меня это выглядит как-то так:
Как видно, достаточно неприметный вид, ничем не выделяется. А значит сложный поиск введённых команд среди вывода bash. Рецепт в статье универсальный, будут работать как для Ubuntu 16.04, так и в Archlinux.

Формат задаётся с помощью глобальной переменной PS1, узнать её значение можно с помощью echo:
$ echo $PS1

Изменить её можно следующим образом (пока консоль не закроется):
$ PS1='значение'

Либо добавив запись вида:
export PS1='значение'
В файлы ~/.bashrc и ~/.bash_profile – для определённого пользователя или же /etc/bashrc и /etc/bash_profile – для всех по умолчанию.

Формат строки приглашения в 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]'
С пояснениями (переключение цвета показано окраской последовательности):

А выглядит это вот так:

Возможно выглядит это не особо эстетично, но главное – заметно. Что меня полностью и устраивает =)

Понравилась статья? Поделиться с друзьями:
IPCalc Blog