Un peu de couleur dans la console.

Structure

Colorer l'invite de commande sous linux n’est pas très compliqué : il faut connaître un peu le préformatage shell et sa structure.
D’abord : il faut savoir que l'invite est enregistrée sous la forme d’une chaîne de caractère, dans la variable d’environnement PS1. Vous pouvez afficher le contenu de la variable à l’aide de la commande echo $PS1.
La chaîne de caractère comporte des symboles graphiques comme le @ et des symbole de substitution comme les \u \h \w et \$. Ces derniers seront remplacés automatiquement par le contenu des variables suivantes : \u = $USER (nom de l’utilisateur connecté), \h = $HOSTNAME (nom de la machine) et w = $PWD qui est le répertoire courant.

Capture d’écran

  • Alors pourquoi un ~ à la place de /home/adrien ?
Le tilde ~ n’est pas une variable mais un alias : il sert à désigner le chemin du dossier personnel de l’utilisateur. Donc le shell affiche le tilde plutôt que le chemin complet.

Code couleur

Connaissant ça : vous pouvez tester la modification avec la commande export qui modifiera en temps réel le contenu de la variable sans modifier la config. Les modifications prendront fin quand vous fermerez la console. Le formatage du texte en Shell se déclare comme suit.
Celui ci permet un formatage par défaut.
\[\033[0m\]

Pour ajouter de la couleur : il suffit de remplacer le deuxième 0 par les codes de formatage : et en séparant les instructions de formatage par un point-virgule ;.
Celui ci fait du texte en bleu et gras :

\[\033[01;34m\]
Voici un exemple : mettre le nom en vert clair :
PS1='\[\033[01;32m\]\u\[\033[0m\]@\h:\w $'
Vous n’avez plus qu’à composer comme ça vous chante. 
PS : si un petit bug graphique apparaît quand vous parcourez l'historique de commande : descendez en bas de cet article : au chapitre "un bug historique".

Capture d’écran

Détail des codes

  • 00 = formatage par défaut
  • 01 = texte épais / couleur du texte plus claire
  • 04 = souligner du texte
  • 05 = texte clignotant
  • 07 = surlignage
  • 3x = couleur du texte
    • 0 = noir / defaut
    • 1 = rouge
    • 2 = vert
    • 3 = jaune
    • 4 = blue
    • 5 = violet
    • 6 = cyan
    • 7 = blanc
  • 4x = couleur de l’arrière plan
    • Même code couleur que le texte.

source : admin linux

Conserver la configuration

Pour sauvegarder votre invite préférée : il vous suffit d’éditer d’un fichier bashrc qui sera chargé à chaque démarrage de console ou connexion d’utilisateur.

Compte utilisateur

Il s’agit d’un fichier caché .bashrc dans le dossier personnel.
/home/utilisateur/.bashrc
Si la variable n’est pas précisée : déclarez là en fin de fichier.
PS1='\[\033[01;32m\]\u\[\033[0m\] @\[\033[0;37m\]\h\[\033[0m\] :\[\033[0;37m\]\w\[\033[0m $'
ATTENTION cependant : le root debian possède une instruction chroot en début de chaîne qu’il faut absolument conserver.
PS1='${debian_chroot:+($debian_chroot)} votre_code_ici'

Un bug historique ! ...ou pas. xD

Je ne suis pas totalement sûr d'avoir compris pourquoi : mais j'ai remarqué qu'après la modification : et lorsque l'on veut parcourir l'historique du shell (touche directionnelle haut et bas) : il peut y avoir un petit bug graphique qui vous bouffent les derniers caractères de votre invite, et cela peut être gênant.
Affichage normal :
adrien @Nunux :/dossier $ Macomende arg arg etc ...
Bug : 
adrien @Nunux :/dossierMacomende arg arg etc ...
Et : remarque intéressante : le dernier cratère intact et une variable (en l'occurrence $PWD).  Puisque les variables survivent au préformatage : il suffit donc de terminer la variable PS1 en sur une variable qui contient le dernier symbole. Trouvez une variable qui n'est pas déjà inutilisée (avec echo), puis déclarez là avant PS1. Comme ceci :
PSS = '$ '
PS1='\[\033[01;32m\]\u\[\033[0m\]@\h:\w '$PSS
 Et ça fera disparaître le vilain petit bug.

Ubuntu

Sur Ubuntu : il est possible d’avoir à “dé-commenter” (enlever le # en début de ligne) :
#force_color_prompt=yes

Plus d’info

Aucun commentaire:

Enregistrer un commentaire