Я видел на некоторых снимках экрана (не помню, где в сети), что терминал может отображать [username@machine /]$
жирным шрифтом. Я тоже с нетерпением жду этого, потому что всегда прокручиваю длинные результаты, чтобы с трудом найти первую строку после моей команды.
Как я могу сделать имя пользователя и т. Д. Жирным или цветным?
bash
prompt
escape-characters
Вениамин
источник
источник
Ответы:
Вы должны быть в состоянии сделать это, установив
PS1
переменную подсказки в вашем~/.bashrc
файле следующим образом:Чтобы сделать его цветным (и, возможно, жирным - это зависит от того, активировал ли его эмулятор терминала), вам нужно добавить escape-коды цвета:
Здесь все, что не может быть разделено между
1;91m
и0m
частями, будет окрашено в1;91
цвет (жирный красный). Поместите эти escape-коды вокруг разных частей приглашения, чтобы использовать разные цвета, но не забудьте сбросить цвета с помощью,0m
иначе у вас также будет цветной вывод терминала. Не забудьте затем загрузить исходный файл для обновления текущей оболочки:source ~/.bashrc
источник
1;31
и1;91
. Используя нормальный вес шрифта, диапазон 90-97 дает более яркие цвета, чем другие.Найдите, где
PS1
находится ваш.bashrc
и вставьте'\[\e[1m\]'
в начале и\[\e[0m\]
в конце.\[
и\]
необходимы, чтобы оболочка знала, что беспорядок внутри занимает 0 места на экране, что предотвращает некоторые проблемы при редактировании строки. Вам не нужно слишком беспокоиться об этом.\e[
известен как CSI (регулятор последовательности управления). Вы увидите, что он используется в большинстве кодов, перечисленных на ссылочной странице Википедии.\e
означает побег персонажа.CSI 1m
включается жирный шрифт иCSI 0m
сбрасывается шрифт, чтобы остальная часть текста была нормальной.В Википедии есть полный список управляющих кодов ANSI, которые вы можете использовать, если ваш эмулятор терминала поддерживает это.
редактировать
Для переносимости и читабельности вы должны использовать
tput
вместо кодов escape-кодов. Единственным недостатком является то, что этотtput
подход не будет работать с терминалами, которые поддерживают коды ANSI, но имеют поврежденные или отсутствующие базы данных terminfo, но в этом случае сломанный terminfo представляет большую проблему, так как многие из ваших консольных приложений, использующих terminfo, могут работать неправильно.Вот пример того, что я делаю в своем
.bashrc
:Вот как будет выглядеть моя обобщенная версия. Это
0
состояние выхода последней команды.источник
Это приглашение по умолчанию, которое вы получаете в оболочке cygwin bash:
Ссылки:
man bash
и проверьтеPROMPTING
раздел.источник
Я использую эту функцию оболочки для получения текстовых атрибутов в терминале:
Тогда использовать это:
Это дает мне,
[username@hostname]:cwd>
гдеusername@hostname
жирный зеленый иcwd
жирный синий.источник
~/.bashrc
?~/.bashrc
файле и использовал его для установки моего приглашения. Я даже меняю цвета в зависимости от системы, на которой я работаю.Чтобы это выглядело как приглашение Ubuntu по умолчанию, добавьте
export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '
в вашем
~/.bashrc
.Это приведет к общеизвестному зеленому
user@host
(полужирному шрифту), за которым следует двоеточие, не выделенное жирным шрифтом, за которым следует рабочий каталог, выделенный полужирным синим цветом, за которым следуют$
знак, пробел и команда, набранная не жирными белыми буквами:источник