Un terminal tout en couleur
Par nicofo, jeudi 21 décembre 2006 à 21:09 :: Linux :: #17 :: rss
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 ~]$ |
D'autres séquences d'échappement ? voir position du curseur dans le terminal.
Mots-clés :

Commentaires
1. Le vendredi 22 décembre 2006 à 15:38, par bochecha
Ajouter un commentaire