Linux цвет строки приглашения

Содержание
  1. Как сделать приглашение командной строки Bash разноцветным
  2. Как изменить формат строки приглашения в терминале Linux
  3. Введение
  4. Как изменить формат строки приглашения в терминале
  5. Сохранение нового формата строки приглашения на постоянной основе
  6. Как изменить приглашение командной оболочки bash в Linux?
  7. Что такое приглашение командной оболочки?
  8. Стейтменты приглашения bash
  9. Изменение приглашения bash
  10. Изменение приглашения bash на постоянку
  11. Временное изменение приглашения bash
  12. Популярные пользовательские параметры приглашения bash
  13. Отображение имени пользователя и имени хоста
  14. Добавление специальных символов
  15. Отображение имени пользователя, имени оболочки и версии оболочки
  16. Добавление даты и времени в приглашение bash
  17. Убираем всю информацию из приглашения bash
  18. Отделение обычных пользователей от root
  19. Дополнительные параметры оболочки
  20. Добавление в приглашение bash выполнения команды
  21. Как изменить цвет приглашения bash?
  22. Откат изменений к настройкам по умолчанию
  23. Заключение

Как сделать приглашение командной строки Bash разноцветным

В большинстве дистрибутивов приглашение командной строки Bash по умолчанию того же цвета, что и вводимые команды и текст вывода этих команд. При интенсивной работе в консоли, когда вводится множество команд подряд, бывает трудно сразу увидеть, где оканчивается вывод одной команды и начинается ввод другой, особенно если вывод команд большой. К счастью, Bash позволяет выделить приглашение цветом.

Вид приглашения командной строки Bash определяется переменной PS1. Его можно просмотреть как любую другую переменную окружения:

Сравнив вывод команды [\u@\h \W]\$ с самим приглашением [ya@antony

]$ можно сделать следующие выводы:

1. Символы [, @, ], $ означают сами себя.

2. \u — специальный символ, означающий логин пользователя «ya».

3. \h — специальный символ, означающий имя компьютера (хоста) «antony».

4. \W — специальный символ, означающий рабочую директорию. (Как известно, тильда (

) обозначает домашнюю директорию).

В данном примере мы без труда разобрались со структурой переменной PS1 из дистрибутива AltLinux 4.1. В других дистрибутивах структура эта может оказаться далеко не столь очевидной. Например, в дистрибутиве Debian Lenny:

Что означает вся первая часть \[\e]0;\u@\h: \w\a\]$ можно разобраться только с помощью специальных руководств. Даже man bash , где все специальные символы описаны вкратце в разделе PROMPTING (ПРИГЛАШЕНИЯ) , не позволяет понять, что же там зашифровано. Зато последняя часть \u@\h:\w]\$ почти совпадает с разобранным нами приглашением AltLinux. Отсутствуют только квадратные скобки, да имеется двоеточие, а в целом приглашение выглядит так:

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

Раскрашивание производится внесением определенных изменений в структуру переменной PS1.

Например, чтобы символ доллара сделать желтого цвета, нужно ввести следующую команду:

Таким образом, чтобы расцветить некую часть приглашения, нужно непосредственно перед этой частью подставить выражение \[\033[Хm\] . В случае желтого цвета, вместо Х подставляем 33;1 . Если подставить просто 33 , то получится кирпичный цвет; если 33;4 то кирпичный подчеркнутый; если 33;5 то кирпичный символ станет мигать; если 33,7 то будет черный символ в кирпичном квадратике. К слову сказать, безразлично в каком порядке ставить значения вокруг точки с запятой, так 33;1 эквивалентно 1;33 .

Вот таблица основных цветов

Добавление к номеру цвета через точку с запятой единицы дает более светлый оттенок:

Добавление к номеру цвета через точку с запятой четверки дает подчеркивание:

Добавление к номеру цвета через точку с запятой пятерки дает мигающий символ:

Добавление к номеру цвета через точку с запятой семерки дает черный символ на фоне соответствующего цвета:

Если вместо номеров 30-38 подставить номера 40-48, то окрашиваться в те же самые цвета будут не символы, а фон вокруг них. Например:

Можно также составлять более сложные комбинации цветов фона и шрифта:

Словом, огромный простор для экспериментов.

Внимательно просмотрев все вышеприведенные команды PS1=». » следует обратить внимание, что все они заканчиваются одним и тем же выражением \[\033[m\] . Дело в том, что данное выражение равнозначно выражению \[\033[0m\] , что задает «никакой» цвет, то есть тот цвет, что был первоначально. Это необходимо, чтобы весь дальнейший текст (вводимые команды, параметры, вывод команд) производился обычным цветом консольного текста, а не окрашивался в новые цвета.

При расцвечивании приглашения командной строки мы не обязаны ограничиваться только знаком доллара. Можно окрасить любую часть приглашения в один из перечисленных цветов. Например, окрасим ya@antony в темно-красный цвет. На черном фоне это будет заметно и не слишком ярко:

Раскрашивайте приглашение командной строки на свой вкус, однако помните, что стоит закрыть окно консоли, как все ваши краски исчезнут.

Для того, чтобы сделать разноцветное приглашение постоянным, его надо вписать в конец файла .bashrc в вашем домашнем каталоге. Вписываем в том же виде, как вводили в командную строку:

Теперь окно эмулятора терминала будет всегда открываться с цветным приглашением. Также будет оно цветным и в терминале, открываемом при помощи комбинации клавиш CTRL+ALT+Fn.

Но стоит вам сменить логин, например на root, как консоль снова станет одноцветной. Это лишний раз напомнит вам, что вы обладаете правами суперпользователя и должны соблюдать осторожность. А можете раскрасить также и root-консоль, только в другие цвета, чтобы сразу было видно. Для этого нужно строку PS1=». » вписать в файл /root/.bashrc/ .

Читайте также:  Manjaro linux после установки не загружается

Источник

Как изменить формат строки приглашения в терминале 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Здравствуйте $, добро пожаловать на сервер meliorem.ru!\e[0m»

Для применения новых настроек в файле /etc/profile.d/custom.sh необходимо перезапустить терминал. Также для перезапуска можно использовать команду exec.

Теперь когда пользователь будет заходить в свою учетную запись в терминале, он увидит следующий результат.

Результат изменения строки приглашения в файле /etc/profile.d/custom.sh

Важно, что все эти настройки будут применены для всех пользователей. Если вы хотите настроить bash только для одного пользователя, то используйте скрытый файл .bashrc , который находится в домашнем каталоге пользователя. Для применения настроек в

/.bashrc необходимо будет перезапустить оболочку — source

Вы также можете раскрасить свою строку приветствия, о том как это сделать вы можете почитать здесь.

Понравилась статья? Расскажите о ней друзьям!

Источник

Как изменить приглашение командной оболочки bash в Linux?

Обновл. 5 Май 2021 |

В Linux существенная часть работы выполняется из командной оболочки. Одной из самых популярных командных оболочек является bash (сокр. от «Bourne-Again shell»). bash интерпретирует ваши команды и передает их для выполнения операционной системе.

Что такое приглашение командной оболочки?

Всякий раз, когда мы открываем окно терминала, мы видим приглашение командной оболочки:

имя_пользователя — имя пользователя, который в данный момент вошел в систему;

имя_хоста — имя хоста системы;

(тильда) — означает, что в данный момент мы находимся в домашнем каталоге /home/ ;

$ — означает, что текущий пользователь является обычным пользователем (а знак решетки # дает понять, что текущим пользователем является пользователь root).

Стейтменты приглашения bash

bash содержит 4 различных стейтменты приглашения (PS от англ. «Prompt Statement»):

PS1 — это основное приглашение, которое отображается перед каждой командой; по этой причине оно и модифицируется чаще всего.

PS2 — отображается в тех случаях, когда команде требуются дополнительные данные для ввода (например, при использовании многострочных команд).

PS3 — отображается при работе со встроенной в оболочку командой интерактивного меню select .

PS4 — используется для запуска сценария оболочки в режиме отладки.

До сих пор мы работали только с PS1. В большинстве случаев вы будете работать только с PS1 и, возможно, с PS2.

Чтобы увидеть текущее значение PS1, введите следующее:

В зависимости от системы терминал вернет что-то вроде этого:

Теперь посмотрим, что у нас содержится в PS2:

Как видите, здесь у нас только одна угловая скобка:

Повторение той же команды для PS3 вообще вернет полностью пустую строку.

Для PS4 вы увидите знак + .

Изменение приглашения bash

Поведение bash задается через соответствующий файл конфигурации .bashrc, расположенный в домашнем каталоге пользователя. Если имя вашего пользователя, например, diego, то путь к файлу будет следующим:

Или более краткий вариант:

Прежде чем вносить какие-либо изменения в него, настоятельно рекомендуется создать резервную копию данного файла. Для этого откройте окно терминала и введите следующее:

Примечание: Расширение .bak (от англ. «backup») сообщает нам, что файл является резервной копией.

Изменение приглашения bash на постоянку

Откройте для редактирования файл конфигурации bash:

В этом файле вы должны увидеть несколько различных настроек. Некоторые из них в данный момент неактивны и представляют собой обычные комментарии — строки синего или сине-зеленого цвета, отмеченные знаком # . Строки белого цвета используются оболочкой для настройки её поведения.

Прокрутите страницу до конца файла конфигурации и добавьте следующую строку:

Вы можете заменить часть RavesliPrompt> любой строкой текста, которая вам придется по душе.

Сохраните файл (сочетание клавиш Ctrl+O, и затем Enter) и выйдите из редактора (Ctrl+X).

Обновите bash, чтобы применить изменения:

В результате наших манипуляций приглашение оболочки должно измениться на следующее:

Временное изменение приглашения bash

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

Давайте зададим такой вид приглашения, при котором будет отображаться только имя пользователя:

В результате, приглашение оболочки должно немедленно принять вот такую форму:

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

Популярные пользовательские параметры приглашения bash

Вы можете использовать следующие параметры с любым методом изменения приглашения bash: временным (с помощью команды export ) или постоянным (отредактировав файл .bashrc).

Отображение имени пользователя и имени хоста

Используйте опцию -H для отображения полного имени хоста:

Вы должны увидеть имя хоста в приглашении:

Добавление специальных символов

Вы можете добавить в приглашение оболочки специальные символы, расположив их вместе с уже знакомыми вам опциями:

В результате будет отображаться следующее:

Примечание: Я рекомендуем вам сделать так, чтобы приглашение оканчивалось специальным символом или пробелом: двоеточие, угловая скобка или символ пробела непосредственно перед последней кавычкой. Это поможет пользователям визуально отделить приглашение оболочки от вводимой ими в данный момент команды.

Отображение имени пользователя, имени оболочки и версии оболочки

Введите следующую команду, чтобы отобразить имя пользователя, название оболочки ( s от англ. «shell») и её версию ( v от англ. «version»):

Приглашение должно измениться на следующее:

Добавление даты и времени в приглашение bash

Используйте следующие параметры для отображения различных форматов даты и времени:

\d — отображает текущую дату в формате [день_недели]/[месяц]/[число]:

export PS1=»\u@\H>\d «

\t — отображает текущее время в 24-часовом формате:

export PS1=»\u@\H>\t «

\T — отображает текущее время в 12-часовом формате:

export PS1=»\u@\H>\T «

\A — отображает текущее время в 24-часовом формате, но без секунд:

export PS1=»\u@\H>\A «

Примечание: Параметры \u@\H , предшествующие параметру даты и времени, добавляют имя пользователя ( u от англ. «username») и имя хоста ( H от англ. «Hostname»).

Убираем всю информацию из приглашения bash

Используйте эту возможность, чтобы скрыть отображение имен пользователей или имени хоста в приглашении:

Вы должны увидеть следующее:

Отделение обычных пользователей от root

В стандартном приглашении оболочки знак $ указывает на обычного пользователя. Если вы входите в систему как пользователь root, то отображается знак # .

Используйте символ $ , чтобы указать, что текущий пользователь не является пользователем root:

Дополнительные параметры оболочки

Ниже представлен список большинства параметров, которые вы можете использовать для настройки приглашения bash. Стоит оговориться, что не все из них могут поддерживаться конкретным Linux-дистрибутивом:

\a — звуковой сигнал;

\d — дата (день/месяц/число);

\D <формат>— форматированный вывод текущего времени;

\e — символ escape-последовательности;

\h — имя хоста (короткое, до первой точки);

\H — полное имя хоста (доменное имя);

\j — количество задач, обрабатываемых оболочкой в данный момент;

\l — название терминала;

\n — переход на новую строку;

\r — возврат каретки на начало строки;

\s — название оболочки;

\t — время в 24-часовом формате (час:минута:секунда);

\@ — время в 12-часовом формате (AM/PM);

\A — время в 24-часовом формате без секунд;

\u — текущее имя пользователя;

\V — дополнительная информация о версии bash (номер релиза, патча);

\w — текущий рабочий каталог;

\W — базовое имя рабочего каталога;

\! — отображает номер, под которым команда будет занесена в историю команд bash;

\# — отображает номер команды в текущем сеансе без привязки к истории. При запуске нового терминала, нумерация начинается с единицы;

\$ — если пользователем является root, то используется символ # , в противном случае — символ $ ;

\\ — обратная косая черта;

\[ — начало последовательности непечатаемых символов (полезно, если вы хотите изменить цвет, добавить команду или набор инструкций в приглашение);

\] — конец последовательности непечатаемых символов.

Добавление в приглашение bash выполнения команды

Есть еще один трюк, с которым полезно ознакомиться: вы можете добавить в приглашение командной оболочки вывод любой команды. Всякий раз, когда появляется приглашение оболочки, bash запускает команду и отображает её вывод. Для этого просто добавьте имя любой команды, которую вы хотите запустить, между двумя символами машинописного обратного апострофа (кнопка Ё на английской раскладке клавиатуры):

В качестве другого примера, предположим, что вы хотите просмотреть время безотказной работы системы и среднее значение нагрузки, отображаемое командой uptime . Вы можете использовать следующую конструкцию, которая помещает время безотказной работы в свою собственную строку перед остальной частью приглашения:

Как изменить цвет приглашения bash?

Параметры цвета строки приглашения задаются в виде следующей последовательности — \e[X;Y;Zm , где:

\e[ — часть с escape-символом, обозначающая начало изменения цвета;

X — код атрибута текста:

0 — нормальный;

1 — жирный (яркий);

2 — тусклый;

4 — подчеркнутый;

Y — цветовой код текста:

30 — черный;

31 — красный;

32 — зеленый;

33 — коричневый;

34 — синий;

35 — фиолетовый;

36 — голубой;

37 — светло-серый.

Z — цветовой код фона:

40 — черный;

41 — красный;

42 — зеленый;

43 — коричневый;

44 — синий;

45 — фиолетовый;

46 — голубой;

47 — светло-серый.

m — символ, указывающий на конец блока с цветовым кодом.

Примечание: Для того, чтобы терминал корректно выполнил обработку нашей последовательности, необходимо её поместить между символами \[ и \] , т.е. \e[X;Y;Zm станет \[\e[X;Y;Zm\] .

Рассмотрим пример, который временно изменяет текст и цвет строки приглашения на зеленый:

\[ — сочетание символов, обозначающее начало блока изменения атрибутов текста;

\e[ — сочетание символов, обозначающее начало блока цветового кода;

0;32 — цветовой код ( 0 — обычный текст, 32 — зеленый цвет);

m — символ, указывающий на конец блока с цветовым кодом;

\] — сочетание символов, обозначающее конец блока изменения атрибутов текста;

[\u@\h \W]\$ — код, задающий стандартный вид приглашения оболочки;

\[ — сочетание символов, обозначающее начало блока изменения атрибутов текста;

\e[ — сочетание символов, обозначающее начало блока цветового кода;

0 — цветовой код ( 0 — обычный текст белого цвета)

m — символ, указывающий на конец блока с цветовым кодом;

\] — сочетание символов, указывающее на конец блока с цветовым кодом.

В результате мы получим следующее:

Кроме того, если вы скомбинируете опцию яркости с цветовым кодом, то получите более светлую версию заданного цвета. Например, если вы используете цветовой код 1;32 , то получите светло-зеленый цвет вместо обычного зеленого. Если вы используете 1;33 , то получите желтый цвет вместо коричневого.

Откат изменений к настройкам по умолчанию

Есть два способа сбросить вышепредставленные изменения. Для временных изменений (введенных с помощью команды export PS1=»» ) достаточно просто выйти из системы.

Если же вы редактировали файл .bashrc, то есть два способа вернуться к настройкам по умолчанию:

Способ №1: Закомментируйте свои изменения в файле, добавив в начале каждой строки символ # .

Способ №2: Восстановите настройки из резервной копии, введя:

Заключение

Вышеприведенные примеры являются лишь небольшой демонстрацией того, каким образом настраивается внешний вид приглашения оболочки. Не стесняйтесь экспериментировать с различными специальными символами, командами и параметрами, чтобы создать свой вид идеальной командной строки.

Поделиться в социальных сетях:

Источник

Читайте также:  Управление hyper v средствами windows
Оцените статью