Shell coloré
Un article de Diablotins.org.
|
Coloration contextuelle Shell
Souvent on veut colorer le ls de FreeBSD, alors on essaie :
$ alias ls='ls --color'
Hélas, ça ne marche pas ...
La commande ls de FreeBSD, n'est pas la commande GNU. On vois bien une solution pointer son nez :
$ alias ls='ls -G'
Comme nous dit le manuel. Mais ce dernier nous dit mieux que ça !
On peu lire l'existence de trois variables d'environnement :
- CLICOLOR : cette variable est un booléen qui sert à la même chose que le -G de notre alias. il active la coloration sur ls.
- CLICOLOR_FORCE : cette variable est aussi un booléen, mais cette fois-ci, si elle est à “enable”, cette variable implique la coloration dans tout les cas même en mode non interactif. La coloration fait appel au caractères d'échappements, et donc je vous déconseille se mode car sinon, dans vos scripts en piping de sortie de ls, vous aurez de drôles de surprises.
- LSCOLORS : c'est ici que ça devient intéressant !:)
on peu configurer les couleurs en liste 'fb', “foreground/background”.
les couleurs sont :
- a noir
- b rouge
- c vert
- d marron
- e blue
- f magenta
- g cyan
- h gris clair
- x couleur par défaut du shell pour le foreground et le background
Les majuscules en foreground mettent en gras. On a affaire ici au couleurs standards ANSI'. L'affichage dépend tout de même des capacités du mode d'affichage dans le quel on est.
xterm, xterm-color pour X sont très corrects et cons25 sous console.
L'ordre de la séquence pour la liste est :
- répertoire
- lien symbolique
- socket
- tube
- executable
- bloc spécial
- charactre spécial
- executable avec bit setuid
- executable avec bit setgid
- répertoire en sticky bit, en ecriture pour tout le monde
- répertoire en ecriture pour tout le monde, sans sticky bit
On peut donc avoir dans sont script rc de shell (.bashrc,.zshrc,.cshrc, ...).
export CLICOLOR=enable export LSCOLORS='cxgxhxhxbxhxhxbabacaca'
