4. Comment donner une configuration par défaut

Contenu de cette section

Ceci est réalisé individuellement pour chaque console virtuelle à l'aide de la séquence ANSI : Cette information a été trouvée en parcourant le source du noyau. Je ne peux donc dire s'il s'agit d'un standard.

        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