Encontre onde seu PS1
está definido no seu .bashrc
e insira '\[\e[1m\]'
no início e \[\e[0m\]
no final.
-
\[
e \]
são necessários para que o shell saiba que a bagunça dentro ocupa 0 espaço na tela, o que evita algum comportamento errado ao fazer a edição de linha. Você não precisa se preocupar muito com isso.
-
\e[
é conhecido como o CSI (introdutor de seqüência de controle). Você verá que é usado na maioria dos códigos listados na página da Wikipédia referenciada. \e
significa o caractere de escape.
- Se você olhar na tabela SGR na página da Wikipedia, verá que 1 é o número para texto claro / negrito e 0 é para redefinir. Assim,
CSI 1m
ativa o negrito e CSI 0m
redefine a fonte para que o restante do texto seja normal.
A Wikipedia tem uma lista completa dos códigos de escape ANSI que você pode usar se o emulador de terminal for compatível.
Editar
Para portabilidade e legibilidade, você deve usar tput
em vez de códigos de escape codificados. A única desvantagem é que a abordagem tput
não funciona com terminais que suportam códigos ANSI, mas possuem bancos de dados terminados quebrados ou ausentes, mas, nesse caso, o terminfo quebrado é um problema maior, pois muitos dos seus aplicativos de console que dependem de terminfo não podem trabalhe corretamente.
Veja um exemplo do que eu faço no meu .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\] "
Veja como seria uma versão genérica da minha. O 0
é o status de saída do último comando.