Un peu de couleur pour le prompt de bash …

Dans cet exemple, nous allons mettre un peu de couleur au prompt du bash. L’exemple est réalisé sous une centos 5 mais il est bien entendu adaptable à d’autres distributions.

Editons le fichier /etc/bashrc et ajoutons à la fin de ce fichier :

alias ls="ls --color"
alias grep="grep --color"

if [[ ${EUID} == 0 ]] ; then
PS1='\
\[\033[0;00m\][\
\[\033[1;37m\]\[\033[41m\]\u\
\[\033[0;00m\]@\
\[\033[0;35m\]\h\
\[\033[0;00m\]:\
\[\033[0;34m\]\w\
\[\033[0;00m\]]\
\[\033[0;00m\]\$\
 '
else
PS1='\
\[\033[0;00m\][\
\[\033[0;31m\]\u\
\[\033[0;00m\]@\
\[\033[0;35m\]\h\
\[\033[0;00m\]:\
\[\033[0;34m\]\w\
\[\033[0;00m\]]\
\[\033[0;00m\]\$\
 '
fi

Les deux premières lignes définissent des alias pour coloriser les commandes ls et grep.
Ensuite nous définissons deux prompts différents : un pour le root et un autre pour les utilisateurs lambda.
La variable d’environnement PS1 permet de definir l’affichage du prompt.

Les codes couleurs sont les suivants :

\033[0;30m : Noir
\033[0;31m : Rouge
\033[0;32m : Vert
\033[0;33m : Jaune
\033[0;34m : Bleu
\033[0;35m : Magenta
\033[0;36m : Cyan
\033[0;37m : Gris clair

Si l’on remplace le [0 par [1, on obtient l’équivalent de la couleur en plus clair. Ainsi 0;37 étant le gris clair, 1;37 donnera du blanc.
En remplacant [0 par [4, le texte sera souligné.

Il est également possible de définir la couleur de fond de texte :

\033[40m : Noir
\033[41m : Rouge
\033[42m : Vert
\033[43m : Jaune
\033[44m : Bleu
\033[45m : Magenta
\033[46m : Cyan
\033[47m : Gris clair

Les variables sont :
\h : le hostname (jusqu’au premier ‘.’ )
\H : le hostname complet
\t : l’heure au format HH:MM:SS sur 24H
\T : l’heure au format HH:MM:SS sur 12H
\u : le username
\w : chemin complet vers le répertoire courant
\W : répertoire courant (format court)
\$ : # si root ou $ si utilisateur lambda
\d : la date
\# : le numéro de la commande dans la session courante
\! : le numéro de la commande dans l’historique.