Найдите, где PS1
находится ваш .bashrc
и вставьте '\[\e[1m\]'
в начале и \[\e[0m\]
в конце.
\[
и \]
необходимы, чтобы оболочка знала, что беспорядок внутри занимает 0 места на экране, что предотвращает некоторые проблемы при редактировании строки. Вам не нужно слишком беспокоиться об этом.
\e[
известен как CSI (регулятор последовательности управления). Вы увидите, что он используется в большинстве кодов, перечисленных на ссылочной странице Википедии. \e
означает побег персонажа.
- Если вы посмотрите в таблицу SGR на странице Википедии, вы увидите, что 1 - это число для светлого / полужирного текста, а 0 - для сброса. При этом
CSI 1m
включается жирный шрифт и CSI 0m
сбрасывается шрифт, чтобы остальная часть текста была нормальной.
В Википедии есть полный список управляющих кодов ANSI, которые вы можете использовать, если ваш эмулятор терминала поддерживает это.
редактировать
Для переносимости и читабельности вы должны использовать tput
вместо кодов escape-кодов. Единственным недостатком является то, что этот tput
подход не будет работать с терминалами, которые поддерживают коды ANSI, но имеют поврежденные или отсутствующие базы данных terminfo, но в этом случае сломанный terminfo представляет большую проблему, так как многие из ваших консольных приложений, использующих terminfo, могут работать неправильно.
Вот пример того, что я делаю в своем .bashrc
:
# color names for readibility
reset=$(tput sgr0)
bold=$(tput bold)
black=$(tput setaf 0)
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
blue=$(tput setaf 4)
magenta=$(tput setaf 5)
cyan=$(tput setaf 6)
white=$(tput setaf 7)
user_color=$green
[ "$UID" -eq 0 ] && { user_color=$red; }
PS1="\[$reset\][\[$cyan\]\A\[$reset\]]\[$user_color\]\u@\h(\l)\
\[$white\]:\[$blue\]\W\[$reset\][\[$yellow\]\$?\[$reset\]]\[$white\]\
\\$\[$reset\] "
Вот как будет выглядеть моя обобщенная версия. Это 0
состояние выхода последней команды.