- Изменение содержания строки приглашения linux
- Изменение приглашения терминала в bash
- Как изменить формат строки приглашения в терминале Linux
- Введение
- Как изменить формат строки приглашения в терминале
- Сохранение нового формата строки приглашения на постоянной основе
- Настройка приглашения командной строки в Bash
- В какой переменной задается приглашение
- Как изменить приглашение (только для данной сессии)
- Настройка приглашения
- Примеры
- Пример 1
- Пример 2
- Пример 3
- Как изменить цвета в строке приглашения
- Примеры
- Пример 1
- Пример 2
- Как изменить приглашение на постоянной основе
Изменение содержания строки приглашения linux
Переменная оболочки — это некоторая строка символов, доступная по уникальному имени. Оболочка bash содержит в себе специальную переменную с именем PS1, которая определяет текст приглашения оболочки. Чтобы изменить этот текст, Вам нужно изменить содержимое переменной PS1.
Чтобы изменить содержимое переменной, введите ее имя и знак равенства (`=’), а затем строку, которая должна заменить существующее значение переменной. Например, для смены приглашения на строку «Чего изволите», введите:
Мы специально заключаем текст приглашения в кавычки, поскольку он содержит внутри пробелы.
Вы можете поместить в строку приглашения специальные символы для вывода определенного текста. Например, символ `
w’ в строке-значении PS1 проводит к выводу на месте приглашения наименования текущего рабочего каталога.
Для смены Вашего приглашения на стандартное приглашение bash — имя рабочего каталога и символ `$’ — введите:
Следующая таблица содержит список специальных символов и описание их назначения.
Символ | Назначение |
\a | Cимвол Ctrl-g, который вызывает системный звонок |
\d | Текущая системная дата |
\h | Сетевое имя машины |
\n | Символ новой строки |
\t | Текущее системное время в формате 24 часов |
\@ | Текущее системное время в формате 12 часов am/pm |
\w | Имя текущего рабочего каталога |
\u | Имя пользователя |
\! | Номер следующей команды в истории команд |
Вы можете использовать в строке приглашения любое количество специальных символов.Например, чтобы сменить строку приглашения на последовательность системной даты, пробела, сетевого имени машины в круглых скобках и символа >, введите:
Источник
Изменение приглашения терминала в bash
Приглашение в командной среде bash изменяется при помощи изменения переменных PS1, PS2, PS3, PS4 и PROMPT_COMMAND.
- PS1 — переменная, которая задает вид строки приглашения командной строки, которое bash выводит, когда ожидает ввода очередной команды пользователем.
- PS2 — переменная, отвечающая за вторичный тип приглашения ввода.
- PS3 — третичное приглашение, выводится тогда, когда пользователь должен сделать выбор в операторе select.
- PS4 — приглашение четвертого уровня, выводится при отладки сценариев (скриптов) в начале каждой строки перед командой перед исполняющейся командой.
- PROMPT_COMMAND — содержимое этой переменной выполняется перед каждой строкой приглашения.
Для того чтобы узнать текущие значения этих переменных можно воспользоваться командой echo.
Вывод будет примерно следующим:
Для изменения переменной можно пользоваться командой export . Например:
Изменит приглашение на такое:
Другим методом изменения данных переменных является задание из в конце файла
/.bashrc . Это делается таким образом:
Задание параметров приглашения командной оболочки производится при помощи задания управляющих последовательностей:
- \d — Дата в формате «День, месяц, число», например, Срд, Окт, 17.
- \h — Имя хоста (hostname) до первой точки
- \H — Полное имя хоста
- \t — Текущее время в 24-часовом формате: HH:MM:SS (часы:минуты:секунды)
- \T — Текущее время в 12-часовом формате: HH:MM:SS
- \@ — Текущее время в 12-часовом формате am/pm
- \u — Имя пользователя, запустившего оболочку
- \w — Полное имя текущего рабочего каталога (начиная с корня)
- \W — Текущий рабочий каталог (без указания пути)
- \$ — Символ #, если оболочка запущена суперпользователем, и символ $, если оболочка запущена обычным пользователем.
- \n — Новая строка (перевод строки)
- \s — Имя оболочки
- \# — Текущий номер команды
- \! — Порядковый номер данной команды в истории команд
- \\ — Обратный слэш (a backslash)
- \nnn — Непечатный символ, имеющий восьмеричный код nnn (к примеру esc)
- \a — Звуковой сигнал (ASCII-код 007)
- \e — escape (ASCII-код 033)
- \[ — Начало последовательности не печатаемых символов (этот символ может быть использован для того, чтобы включить в текст подсказки последовательность управляющих символов терминала)
- \] — Конец последовательности не печатаемых символов
Изменение цвета строки приглашения:
Изменение цвета строки приглашения командной оболочки делается при помощи последовательности
- # — номер свойства цвета
- ## — номер цвета
Номера свойств текста:
Свойство | Код |
Значение по умолчанию | 0 |
Повышенная яркость | 1 |
Пониженная яркость | 2 |
Подчеркнутый | 4 |
Нормальная яркость | 5 |
Инвертированный | 7 |
Скрытый | 8 |
Цвет | Текст | Фон |
Черный | 30 | 40 |
Красный | 31 | 41 |
Зеленый | 32 | 42 |
Желтый | 33 | 43 |
Синий | 34 | 44 |
Фиолетовый | 35 | 45 |
Голубой | 36 | 46 |
Белый | 37 | 47 |
Например такая последовательность:
Настроит строку приглашения следующим образом:
Как видно из примера управляющая последовательность изменяет свойства всего текста после неё и до другой последовательности.
Таким же образом устанавливается цвет фона и текста, но параметры дублированы. Первые два для фона, вторые — для текста:
Переменная PS2 :
Содержимое переменной PS2 появляется на экране терминала при переносе ввода команды на следующую строку. Например:
Метод изменения переменных одинаков, не будем останавливаться на каждой отдельно.
Переменная PS3 : Этот вид приглашения используется в скриптах, когда нужно сделать выбор при использовании оператора select.
Переменная PROMPT_COMMAND : Эта переменная используется для помещения какого либо выражения перед каждой строкой приглашения терминала:
Например если поместить в неё команду ls :
То перед каждой строкой приглашения выведется список файлов текущей папки:
Источник
Как изменить формат строки приглашения в терминале Linux
Введение
Строка приветствия или приглашения (prompt) представляет собой текст, после которого пользователь может вводить команды в терминале Linux. В каждом дистрибутиве Linux строка приветствия имеет свою форму, например в CentOS 7 по умолчанию она выглядит так:
Вид строки приглашения по умолчанию в CentOS 7
Форма строки приглашения хранится в переменной PS1 .
Увидеть шаблон, по которому строится строка приглашения можно с помощью вывода переменной PS1 .
Как видим строка состоит из обычных символов, которые выводятся в терминале как есть и экранированных символов вместо которых подставляются следующие данные:
- \u — (user) имя текущего пользователя.
- \h — (host) имя текущего хоста.
- \W — (working directory) путь к рабочему каталогу (каталог, где сейчас находится пользователь).
- \\$ — тип пользователя (# — для root, $ — для обычных пользователей).
Как изменить формат строки приглашения в терминале
Перед тем как изменять строку приглашения рекомендую сохранить ее текущий формат, чтобы в любом случае можно было все вернуть назад.
Сохраним текущий формат строки приветствия в новую переменную — PS1_SAVE .
Чтобы изменить формат строки приглашения, нужно изменить значение переменной — PS1 . Самая простая строка приглашения этот всего лишь один символ с пробелом.
Обычный текст не блещет информативностью, поэтому кроме него вам могут пригодиться экранированные символы, их список вы можете видеть ниже.
Простые экранируемые символы
- \a — звуковой сигнал (ASCII: 07)
- \e — символ escape-последовательности
- \» — двойные кавычки
- \\ — обратный слэш
- \n — новая строка
- \r — возврат каретки (курсора) на начало строки
- \[ — начало последовательности непечатных символов
- \] — конец последовательности непечатных символов
- \nnn — восьмеричный код символа (\113 -> K)
Вывод даты и времени
- \d — дата в формате «день недели месяц число»
- \D <формат даты>— дата в указанном формате, например \D
- \@ — время в 12 часовом формате «часы:минуты AM\PM»
- \A — время в 24 часовом формате «часы:минуты»
- \t — время в 24 часовом формате «часы:минуты:секунды»
- \T — время в 12 часовом формате «часы:минуты:секунды
Вывод системной информации
- \h — имя хоста до первой точки
- \H — полное имя хоста
- \j — количество работ (jobs), выполняемых в терминале (скрытых после нажатия Ctrl+Z)
- \s — имя текущей оболочки (вывод значения переменной — $0)
- \u — имя текущего пользователя
- \v — версия оболочки BASH
- \V — более детальная версия оболочки BASH
- \w — полный путь к текущей директории
- \W — имя текущей директории
- \! — номер текущей команды в истории команд
- \# — номер текущей команды за период сессии
- \\$ — тип пользователя (# — для root, $ — для всех остальных)
Рассмотрим пример создания кастомной строки приглашения. Выведем имя пользователя, имя хоста и полный путь для каталога, а с новой строки — тип пользователя.
Если вы хотите вернуть все назад то просто вставьте значение переменной PS1_SAVE , в которой мы сохранили изначальный вид строки приглашения.
Для того чтобы изменения переменной PS1 были сохранены для последующих сессий в терминале, нужно прописать значение этой переменной в файлах настроек терминала
/.bashrc или /etc/bashrc .
Сохранение нового формата строки приглашения на постоянной основе
При каждом запуске терминала значение переменной PS1 устанавливается в соответствии с тем значением, которое указано в файле /etc/bashrc . Однако крайне не рекомендуется изменять что-либо в этом файле. Вместо редактирования файла /etc/bashrc предусмотрен специальный каталог /etc/profile.d , в котором можно создавать свои файлы *.sh с необходимым вам функционалом.
Создадим файл /etc/profile.d/custom.sh для необходимой нам настройки оболочки bash. Данный файл будет автоматически импортирован в /etc/bashrc , поэтому никаких дополнительных действий не потребуется.
Далее уставим нужное нам значение переменной PS1 , я также добавлю немного цвета для строки приветствия.
PS1=»\e[1;38;5;48m\u@\h\e[m:\e[1;38;5;45m\w\e[m\n\\$ »
# Добавим сообщение для авторизованных пользователей
logged_user=$USER # Логин пользователя
echo -e «\e[1;38;5;215mЗдравствуйте $
Для применения новых настроек в файле /etc/profile.d/custom.sh необходимо перезапустить терминал. Также для перезапуска можно использовать команду exec.
Теперь когда пользователь будет заходить в свою учетную запись в терминале, он увидит следующий результат.
Результат изменения строки приглашения в файле /etc/profile.d/custom.sh
Важно, что все эти настройки будут применены для всех пользователей. Если вы хотите настроить bash только для одного пользователя, то используйте скрытый файл .bashrc , который находится в домашнем каталоге пользователя. Для применения настроек в
/.bashrc необходимо будет перезапустить оболочку — source
Вы также можете раскрасить свою строку приветствия, о том как это сделать вы можете почитать здесь.
Понравилась статья? Расскажите о ней друзьям!
Источник
Настройка приглашения командной строки в Bash
Приглашение ко вводу команд в bash — это строка, которая отображается слева от каждой команды, которую вы вводите в терминале. Обычно приглашение имеет вид пользователь@hostname:директория$
Приглашение можно настраивать. Можно добавлять информацию или, например, изменить цвет приглашения.
В какой переменной задается приглашение
Формат строки приглашения задается в переменной окружения PS1. Чтобы настроить приглашение, необходимо изменить значение переменной PS1.
Например, переменная PS1 может иметь значение:
Или, например, командой echo $PS1 можно вывести текущее значение переменной PS1. У меня в Ubuntu оно выглядит так:
Не пугайтесь. На самом деле существует масса возможностей для настройки строки приглашения. Ниже мы рассмотрим базовые методы настройки.
Как изменить приглашение (только для данной сессии)
Можно установить переменную 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
Раскрасим остальные элементы строки приглашения:
Как изменить приглашение на постоянной основе
Новое значение переменной PS1 прописывается в файле .bashrc , который расположен в вашей домашней директории (файл может отсутствовать).
Откроем файл .bashrc в редакторе nano для редактирования. Для этого в терминале выполним команду:
Перейдем в конец файла и добавим новую строку, в которой пропишем значение переменной PS1. Например:
Сохраним изменения и закроем файл. Для этого нажмите Ctrl+X, затем Y и Enter, чтобы сохранить изменения.
Теперь выполним команду source, чтобы наши изменения вступили в силу:
Перезапустите терминал. Приглашение для ввода команд будет обновлено.
Источник