Ceci est réalisé individuellement pour chaque console virtuelle à l'aide de la
séquence ANSI :
ESC [ 8 ]qui spécifie les valeurs par défaut des couleurs d'avant et arrière-plan. La séquence ANSI de recomposition des attributs (
ESC [ m
) permet alors
de prendre en compte ces couleurs plutôt que du blanc sur fond noir.
La méthode décrite ici est supposée être pour des systèmes "isolés", dans le sens où les logins ne se font que sur la console. Ceci ne marche pas forcément pour des logins se faisant depuis des terminaux distants, des connexions par modem ou d'autres machines, qui dans ce cas ne comprendrait pas les séquences. L'interprétation des codes ANSI est une propriété des consoles Linux et n'existe que dans peu d'autres programmes de terminal.
Si vous êtes sur un système "isolé", un bon moyen de faire prendre en compte
les couleurs pour chaque console est de modifier le fichier /etc/issue
, et
d'en voir le résultat en se délogeant. Généralement (et en particulier dans les
distributions Slackware) ce fichier est lu et affiché à chaque reboot.
Ainsi si votre /etc/rc.d/rc.S
contient (aux environs de la ligne 75) :
# Initialise /etc/issue et /etc/motd pour qu'il donne la version du noyau utilise # ATTENTION : les fichiers /ETC/ISSUE AND /ETC/MOTD sont crees a chaque boot. # Mettez ceci en commentaire si vous desirez personnaliser une bonne fois pour # toute ces fichiers. echo ""> /etc/issue echo Bienvenue dans le monde merveilleux de Linux \ `/bin/uname -a | /bin/cut -d\ -f3`. >> /etc/issue echo >> /etc/issue
Mettez ces lignes en commentaire ou modifiez comme suit :
... # Mettez ceci en commentaire si vous desirez personnaliser une bonne fois pour # toute ces fichiers ESCAPE="<remplacez ici par un seul caractere d'echappement>" echo "${ESCAPE}[H${ESCAPE}[37;44m${ESCAPE}[8]${ESCAPE}[2J"> /etc/issue ...
Mon shell de démarrage ne comprend pas le \033
, je dois alors spécifier
le code ASCII 27 dans mon script comme indiqué dans le premier paragraphe.
La ligne ressemble alors à ESCAPE="ˆ["
.
Ce code a pour effet de ramener le curseur en début de fenêtre, changer les couleurs, sauver la sélection et effacer l'écran. Cette modification n'aura un effet qu'au prochain reboot.
Si votre "boîte Linux" n'est pas "isolée", il se peut que certains problèmes apparaissent lors des connexions des utilisateurs distants. Ceci est dû au fait que leur terminal ne comprend pas les séquences d'échappement ANSI.
Vous devez alors ajouter au niveau de l'utilisateur :
.profile (sh/bash) : if [ "$TERM" = "console" ]; then echo "\033[37;44m\033[8]" fi ou .login (csh/tcsh) : if ( "$TERM" == "console" ) then echo "\033[37;44m\033[8]" endif
Si l'on désire que la modification se fasse pour tous les utilisateurs du système,
il suffit alors que root
modifie les fichiers /etc/profile
ou
/etc/csh.login
.
(Je rappelle une dernière fois que si le shell ne peut interpréter les \0xx
(en particulier l'échappement \033
), il suffit de remplacer ce dernier par
"ESC".
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre