Найдите, где 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состояние выхода последней команды.
