Un terminal tout en couleur
Par Nicofo le jeudi 21 décembre 2006, 21:09 - Linux - Lien permanent
Comment procéder
Lancer simplement la séquence d'échappement voulue avant le texte à afficher. Pour faire reconnaître la séquence comme telle (et non comme texte standard) à la commande
"echo"
par exemple, il faut utiliser l'option -e
. La commande est donc de la forme « echo -e "<séquence>Votre texte..."
». Construction de la séquence d'échappement
- La séquence commence par le caractère ESC, dont la valeur octale est 33 :
\033
- Ensuite vient un crochet ouvrant :
[
- Ensuite viennent les attributs souhaités (voir ci-dessous), séparés le cas échéant par des point-virgules :
attr1;attr2;attr3;...
- Enfin, pour les couleurs et le formattage, la séquence se termine par la lettre minuscule :
m
\033[attr1;attr2m
». Les attributs concernent aussi la couleur (de fond et du texte) que le formatage.Liste des attributs
Attribut |
Description |
|
0 |
Annule tous les attributs, sauf ceux des couleurs d'avant et d'arrière plan |
|
1 |
Gras (ou plus clair) |
|
2 |
Plus clair (ou normal) |
|
4 |
Souligné |
|
5 |
Clignotant (dépend du type de terminal) |
|
7 |
Inversé (avant <=> arrière plan) |
|
8 |
Caché (n'affiche pas les caractères : pour mots de passe par ex.) |
|
Texte |
Fond |
Couleurs |
30 |
40 |
noir – gris foncé |
31 |
41 |
rouge |
32 |
42 |
vert |
33 |
43 |
brun – jaune |
34 |
44 |
bleu |
35 |
45 |
magenta (violet) |
36 |
46 |
cyan (bleu clair) |
37 |
47 |
gris clair – blanc (avant plan : il faut peut-être utiliser « 0 » à la place ou en plus) |
Exemples
echo -e "\033[31mTexte en rouge" |
Texte en rouge |
echo -e "\033[1;4;31mTexte en rouge et gras souligné" |
Texte en rouge et gras souligné |
echo -e "\033[7;31mCouleurs de fond et de texte inversées" |
Couleurs de fond et de texte inversées |
echo -e "\033[1;46;32mTexte vert gras sur fond bleu clair" |
Texte vert gras sur fond bleu clair |
Passons à la pratique ! Comment se définir une invite en couleur ?
=> Rajouter la ligne
PS1='\[\033[0;34m\]'$PS1'\[\033[0;0m\]'dans votre fichier ~/.bashrc. Ça sera tout de suite bien plus pratique ! (relancer d'abord le terminal) :
[nico@N ~]$ echo "Hello" Hello [nico@N ~]$ |
==> | [nico@N ~]$ echo "Hello" Hello [nico@N ~]$ |


Commentaires
Merci, c'est sympa

Une couleur pour l'utilisateur et une autre pour le root, et hop, on identifie d'un coup d'oeil qui fait quoi (et en mettant du rouge pour le root on souligne le cote dangereux de la chose :P)
Pas tres joli, mais pratique
Hello! How i may contact the administrator of a site? I have a question.
On the right side panel: "Contactez-moi" link.