Toutes les distributions Linux ont étés avant tout concues de façon a etre utilisée via un shell, et dans mon utilisation quotidienne la ligne de commande est un outil indispensable… d’autant plus que pour certaines tâches , il n’y a pas plus rapide ! Ce billet est le premier d’une série sur la customisation et l’utilisation de Bash.
Le prompt est la première chose que l’on voit lors de l’utilisation du shell, il peut donc mettre en valeur des informations importantes. Il doit donc indiquer, au mininum ces information importantes:
- La machine sur laquelle on est loggué
- Le login
- Le répertoire courant
Pour cela j’utilise la configuration suivante soit dans le fichier /etc/bash.bashrc (tous les utilisateurs) soit dans mon ~/.bashrc (l’utilisateur courant) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # couleurs C_RED="\[\e[1;31m\]" C_BLUE="\[\e[1;34m\]" C_GRAY="\[\e[1;30m\]" C_WHITE="\[\e[1;37m\]" C_YELLOW="\[\e[1;33m\]" C_DEF="\[\033[0m\]" mUID=`id -u` MACHINE="Lorien" IP="192.168.0.243" if [ "$mUID" = "0" ] ; then PS1="${C_YELLOW}>${C_DEF} ${C_RED}\u${C_DEF}@${MACHINE}${C_YELLOW} [${C_DEF}$IP${C_YELLOW}]${C_DEF}:\w${C_RED}#${C_DEF} " PS2="${C_RED}>${C_DEF} " else PS1="${C_YELLOW}>${C_DEF} ${C_BLUE}\u${C_DEF}@${MACHINE}${C_YELLOW} [${C_DEF}$IP${C_YELLOW}]${C_DEF}:\w${C_BLUE}\$ ${C_DEF}" PS2="${C_BLUE}>${C_DEF} " fi export PS2 export PS1 |
Cette configuration fait en sorte d’avoir un prompt bleu, jaune et blanc pour un utilisateur normal et rouge, jaune et blanc pour l’utilisateur root attirant ainsi mon attention sur le fait qu’en root, on ne tape par n’importe quoi… Il m’indique aussi le nom de la machine ainsi que son adresse IP. Ce qui donne :
Pour que vous puissiez customiser votre prompt a votre gout, voiçi la liste des codes de couleurs et de correspondance.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <strong>Les fonctions communes:</strong> \d# La date \h# Nom de la machine \\# Un backslash \r# Retour à la ligne \t# L’heure \u# Utilisateur \v# Version du Bash \w# Repertoire courant complet \W# Repertoire courant \$# Le symbole $ <strong>Les couleurs:</strong> Noir:0;30 Rouge:0;31 Vert:0;32 Marron:0;33 Bleu:0;34 Violet:0;35 Cyan:0;36 Gris clair:0;37 Gris:1;30 Rose:1;31 Vert clair:1;32 Marron clair:1;33 Bleu clair:1;34 Violet clair:1;35 Cyan clair:1;36 Blanc:1;37 |
De la même manière que le prompt, le titre des terminaux est très utile pour se repèrer lorsqu’on utilise Xorg. Dans un terminal, il est possible de changer ce titre de manière dynamique avec un simple echo, il suffit alors d’utiliser la variable PROMPT_COMMAND pour stocker une commande que le shell éxécutera à chaque affichage du prompt.
1 2 3 4 5 6 7 8 9 | case $TERM in xterm*) PROMPT_COMMAND='echo -ne "\033]0;${USER}@${MACHINE}[$IP]: ${PWD}\007"' echo -ne "\033]0;${USER}@${MACHINE}[$IP]: ${PWD}\007" ;; *) setterm -blength 0 ;; esac |
Avec ces quelques lignes, les terminaux affiche la même chose que le prompt dans leur titre (sans les couleurs) lorsque le type de terminal commence par « xterm » (ce qui est le cas avec xterm mais aussi gnome-terminal ).
À noter que la seconde partie du case permet de supprimer le beep très énervant beep lorsqu’on est en console sans Xorg.


