Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

Ajout de couleur

La plupart des programmes d'émulation de terminal répondent à certaines séquences de caractères non imprimables pour contrôler des éléments tels que les attributs des caractères (comme la couleur, le texte en gras et le texte clignotant redouté) et la position du curseur. Nous couvrirons un peu la position du curseur, mais nous examinerons d'abord la couleur.


image

Confusion terminale

Dans les temps anciens, lorsque les terminaux étaient connectés à des ordinateurs distants, il existait de nombreuses marques concurrentes de terminaux et ils fonctionnaient tous différemment. Ils avaient des claviers différents et ils avaient tous des manières différentes d'interpréter les informations de contrôle. Les systèmes Unix et de type Unix ont deux sous-systèmes assez complexes pour gérer le babel du contrôle de terminal (appelé termecap ainsi que infos sur le terme). Si vous regardez dans les recoins les plus profonds des paramètres de votre émulateur de terminal, vous pouvez trouver un paramètre pour le type d'émulation de terminal.

Dans un effort pour que les terminaux parlent une sorte de langage commun, l'American National Standards Institute (ANSI) a développé un ensemble standard de séquences de caractères pour contrôler les terminaux vidéo. Les anciens utilisateurs DOS se souviendront AN-SI.SYS fichier qui a été utilisé pour permettre l'interprétation de ces codes.


La couleur des caractères est contrôlée en envoyant à l'émulateur de terminal un Code d'échappement ANSI intégré dans le flux de caractères à afficher. Le code de contrôle ne « s'imprime » pas sur l'écran, il est plutôt interprété par le terminal comme une instruction. Comme nous l'avons vu dans le tableau ci-dessus, les \[ ainsi que \] les séquences sont utilisées pour encapsuler des caractères non imprimables. Un code d'échappement ANSI commence par un octal 033 (le code généré par la touche d'échappement), suivi d'un attribut de caractère facultatif, suivi d'une instruction. Par exemple, le code pour définir la couleur du texte sur normal (attribut = 0), le texte noir est :

\033[0;30m

Voici un tableau des couleurs de texte disponibles. Notez que les couleurs sont divisées en deux groupes, différenciés par l'application de l'attribut caractère gras (1) qui crée l'apparence de couleurs « claires » :


Tableau 13- 2 : Séquences d'échappement utilisées pour définir les couleurs du texte


Séquence

Couleur du texte

Séquence

Couleur du texte

\033[0;30m

Noir

\033[1;30m

Gris foncé

\033[0;31m

Rouge

\033[1;31m

Rouge clair

\033[0;32m

Vert

\033[1;32m

Green Light

\033[0;33m

Marron

\033[1;33m

Jaune

\033[0;34m

Bleu

\033[1;34m

Bleu clair

\033[0;35m

Violet

\033[1;35m

Violet clair

Ajout de couleur


\033[0;36m

Cyan

\033[1;36m

Cyan clair

\033[0;37m

Gris Clair

\033[1;37m

Blanc


Essayons de faire une invite rouge. Nous allons insérer le code d'échappement au début :



$ PS1="\[\033[0;31m\]<\u@\h \W>\$ "

$

$ PS1="\[\033[0;31m\]<\u@\h \W>\$ "

$


Cela fonctionne, mais notez que tout le texte que nous tapons après l'invite est également rouge. Pour résoudre ce problème, nous allons ajouter un autre code d'échappement à la fin de l'invite qui indique à l'émulateur de terminal de revenir à la couleur précédente :



$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "

$

$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "

$


C'est mieux!

Il est également possible de définir la couleur d'arrière-plan du texte à l'aide des codes répertoriés ci-dessous. Les couleurs d'arrière-plan ne prennent pas en charge l'attribut bold.


Tableau 13-3 : Séquences d'échappement utilisées pour définir la couleur d'arrière-plan


Séquence

Couleur de fond

Séquence

Couleur de fond

\033[0;40m

Noir

\033[0;44m

Bleu

\033[0;41m

Rouge

\033[0;45m

Violet

\033[0;42m

Vert

\033[0;46m

Cyan

\033[0;43m

Marron

\033[0;47m

Gris Clair


Nous pouvons créer une invite avec un fond rouge en appliquant une simple modification au premier code d'échappement :



$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "

<moi@linuxbox ~>$

$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "

<moi@linuxbox ~>$


Essayez les codes couleurs et voyez ce que vous pouvez créer !


image

Remarque : Outre les attributs de caractère normal (0) et gras (1), le texte peut également recevoir des attributs de soulignement (4), de clignotement (5) et d'inverse (7). Cependant, dans l'intérêt du bon goût, de nombreux émulateurs de terminaux refusent d'honorer l'attribut clignotant.


image


Meilleur système d'exploitation Cloud Computing chez OnWorks :