Navigosaure.net

Améliorer l'ergonomie de votre prompt, et celui du root, avec de la couleur

Publié le mardi 15 avril 2008 à 23:54 dans la catégorie Le libre
Tags associés :

En ce moment je ne parle plus beaucoup de Firefox (ou de quoi que ce soit d'autre) car ma dernière occupation relève de l'administration d'un serveur Web. Je suis donc amené à utiliser intensivement la ligne de commande et à passer fréquemment du compte utilisateur classique au compte root.

Étant assez déçu du peu de différence visuel entre les deux comptes, j'ai donc modifié mon prompt utilisateur en rajoutant cette ligne dans le fichier /home/tbassetto/.bashrc :

export PS1='[\t]\[\e[1;32m\]\u\[\e[0m\]@\[\e[1;33m\]\h\[\e[0m\]:\[\e[1;37m\]\w\[\e[0m\]\$ '

Et pour root j'ai rajouté cette ligne dans le fichier /root/.bashrc :

export PS1='[\t]\[\e[41;1;37m\]\u@\h:\w\[\e[0m\]\$ '
# Vous pouvez aussi modifier 41;1;37 par 41;5;37 pour que le prompt clignote :)

Ces deux lignes rajoutent l'heure en début de prompt. Pour l'utilisateur classique on colorie différemment le nom de l'utilisateur, de la machine et le chemin dans lequel on est. Pour le root tout le prompt est écrit en blanc sur fond rouge :)

Pour prendre en compte les modifications vous devez relancer le terminal. Si vous souhaitez personnaliser encore plus votre prompt je vous recommande la lecture de Tip: Prompt magic.

On en parle ailleurs :

Aucun trackback.

Les trackbacks pour ce billet sont fermés.

Commentaires / Ajoutez le votre

3po

Sous ubuntu moi j'ai juste le .bashrc à modifier pour avoir un affichage différent entre root et l'utilisateur normal. Je rajoute ces lignes par exemple :

if [ `id -u` = "0" ] ; then
PS1='\[\033[31m\]\u\[\033[36m\]@\[\033[33m\]\h\[\033[00m\]:\[\033[34m\]\w\[\033[00m\]\$ '
else
PS1='\[\033[32m\]\u\[\033[36m\]@\[\033[33m\]\h\[\033[00m\]:\[\033[34m\]\w\[\033[00m\]\$ '
fi

Par contre, je n'utilise pas "su" mais "sudo -s" ça change sûrement le comportement du fichier de configuration utilisé.

Standop

Je voudrais savoir s'il est possible d'avoir tout texte après le prompt (cmde et resultat de cette cmde, texte de fichier ouvert avec vim, etc) d'une couleur différente lorsqu'on est sous root.

Cela fait quelques temps que j'ai placé des couleurs pour le prompt mais je me demande si on peut pas aller plus loin...

En fait la couleur est gérée/sélectionnée par GnomeTerminal, GMT, Kterm, etc dans les préferrences de chacun de ses terms. Aussi je doute que puisse avoir une couleur différente ... mais bon je demande au cas où ?

coolix

Pour prendre en compte les modifications vous devez relancer le terminal.

Ou bien encore dans le terminal actuel:
source .bashrc
ou
. .bashrc

f.

Bien sympa, j'adopte ;}
Merci.

Thomas

@3po : je ne sais pas si "su" prend en compte le .bashrc dans le /home/, ça m'étonnerait.

@Standop : Essaye avec : export PS1='[\t]\[\e[0m\]\[\e[41;1;37m\]\u@\h:\w\$ '

Quelque explications : \[\e[0m\] indique l'arrêt de la personnalisation (enlève la couleur, etc.). D'habitude je le met à la fin du prompt pour ne pas avoir un impact sur le reste de la commande mais si on le met au début le code qui indique la couleur (\[\e[41;1;37m\]) s'applique aussi sur la commande. À tester, personnellement je trouve ça lourd.

Note : au lieu de le mettre eu début (ou presque de ligne) on pourrais carrément l'enlever...

@coolix : ok c'est bon à savoir

KissCoolMan

J'ai écrit deux articles sur le même sujet plus ou moins, car je suis passé moi aussi de développeur web à administrateur système.
Voici donc :
www.betaphile.net/index.p...
pour personnaliser votre console, et puis
www.betaphile.net/index.p...
qui présente zsh, un shell alternatif à bash très puissant, rapide, et pratique :) !

vincent

Su et Sudo ont des comportements quasi similaire.. Par exemple, su - fait la même chose que sudo -i (enfin l'inverse), puisqu'il fait un "login", en gros il reset l'environnement actuel par l'environnement par défaut de l'utilisateur. Dans ce cas là, à priori, c'est le /root/.bashrc et/ou le global qui sont lu en lieu et place du $HOME/.bashrc...

Par contre, avec su et sudo -s, à priori il fait pas de login, donc c'est toujours le $HOME/.bashrc qui doit être lu.. ça mériterais des tests rapides.. m'enfin :)

(ps : pour aller encore plus loin avec les prompts, zsh est mieux)

Ajouter un commentaire