LS en couleur

L’utilisation de la commande ls en couleur ne se limite pas à une simple manipulation esthétique.
En effet, il est très pratique de pouvoir différencier rapidement les fichiers “exécutables” des fichier “normaux” et ce d’un simple coup d’oeil.

Bien sûr, la commande ls --color permet d’activer les couleurs simplement (sans parler d’un éventuel alias). Mais pourquoi un répertoire devrait-il être bleu et non jaune ?

OBTENIR LES INFORMATIONS COURANTES

La première étape pour modifier les couleurs consiste à obtenir la configuration courante.
Pour ce faire, nous allons créer un fichier contenant (sous une forme lisible) les paramètres en cours :

–> dircolors -p > ~/.ls_couleur

Cette commande invoque l’utilitaire **dircolors avec le paramètre **-p permettant de lister la configuration.
Nous reroutons la sortie dans un fichier caché **.ls_couleur placé dans le répertoire personnel de l’utilisateur.

Par la même occasion, récupérons le contenu de la variable d’environnement TERM qui pourrait être nécessaire pour la suite des opérations (selon config.) :

–> echo $TERM

Notez le résultat de la commande dans un coin.
Pour information, cette variable détermine le type de terminal que vous utilisez.

MODIFIER LE FICHIER

Avec votre éditeur préféré, ouvrez le fichier .ls_couleur fra"chement créé.

–> sudo gedit /home/USER/.ls_couleur

Comme à l’accoutumée, les lignes débutant avec le symbole # (dièse) sont des commentaires.

Dans la première partie du fichier, vous devez trouver un certain nombre de mentions TERM suivies d’un mot (linux, console, xterm, vt100, etc).
Si le résultat de la commande echo $TERM ne figure pas dans la liste, ajoutez-le.
Dans notre cas, linux-lat a dû être ajouté pour que les modifications du fichier soient prises en compte.

Il existe deux façons d’associer une couleur à un fichier.

-1-La première consiste à déterminer une couleur en fonction du type de fichier.
Les types valides sont les suivants :

NORMAL : il ne s’agit pas d’un type mais plus exactement de la valeur par défaut
FILE : fichier normal
DIR : répertoire
LINK : lien symbolique
FIFO : tuyaux
SOCK : socket
BLK : fichier périphérique en mode bloque
CHR : fichier périphérique en mode caractères
ORPHAN : lien symbolique orphelin (pointant vers un fichier inexistant)
EXEC : fichier possédant une permission d’exécution

-2-La seconde manière de procéder se rapporte à l’extension des fichiers.
Il est possible d’associer une couleur en fonction du type « annoncé » par l’extension.
Attention, sous Linux le nom d’un fichier ne renseigne pas véritablement sur son type.
Il est tout à fait possible d’appeler un binaire toto.jpg ou encore un fichier jpeg, image.bmp.

Quelle que soit la manière de procéder, la syntaxe reste toujours la même.
Il suffit de faire suivre le type de fichier ou l’extension par un ou plusieurs codes de couleur.

Exemple :

FILE 00 # Fichiers normaux sans attribut spécifique
DIR 01;34 # Répertoire en gras, couleur bleue
.tar 01;31 # Fichiers TAR en gras, couleur rouge
.tgz 01;31 # idem
.arj 01;31 # idem

LES CODES DE COULEURS

Le codage des attributs et des couleurs est simple.
Nous avons, tout d’abord, les codes d’attributs :

00=aucun,
01=gras,
04=souligné,
05=clignotant,
07=inversé,
08=caché

Voyons maintenant les différentes couleurs d’avant plan :

30=noir,
31=rouge,
32=vert,
33=jaune,
34=bleu,
35=magenta,
36=cyan,
37=blanc

Enfin, à une dizaine près, les codes de couleurs d’arrière plan sont identiques :

40=noir,
41=rouge,
42=vert,
43=jaune,
44=bleu,
45=magenta,
46=cyan,
47=blanc

Il est possible de combiner plusieurs de ces codes comme dans notre exemple pour obtenir plus de couleurs (gras + couleur).

Quelques limitations matérielles empêchent, cependant, certaines combinaisons. Par exemple, il est impossible d’obtenir un arrière plan en gras.

UTILISATION DU NOUVEAU FICHIER

Une fois notre fichier de configuration personnalisé, il faut le faire interpréter par l’utilitaire dircolors.
Ainsi, nous pourrons obtenir la définition d’une variable d’environnement directement utilisable par ls.
Cette variable s’appelle LS_COLORS.

Tapez la commande suivante :

–> dircolor ~/.ls_couleur

Quelque chose comme ceci devrait s’afficher :

–> LS_COLORS=‘no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:
or=40;31;01:ex=01;33:.tar=01;31:.tgz=01;31:.arj=01;31:.taz=01;31:.lzh=01;31:.zip=01;31:
.z=01;31:.Z=01;31:.gz=01;31:.deb=01;31:.jpg=01;35:.gif=01;35:.bmp=01;35:.ppm=01;
35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.mpg=01;37:.avi=01;37:.gl=01;37:.d
l=01;37:’;

–> export LS_COLORS

C’est la déclaration de la variable LS_COLORS telle que vous auriez du la saisir sans utiliser l’utilitaire dircolors.
Ce dernier accepte deux paramètres permettant de choisir la syntaxe de la déclaration en fonction du shell que vous utilisez : -b pour le shell Bash et -c pour csh.

Pour activer nos choix de couleur, nous utiliserons la commande :

–> eval dircolors ~/.ls_couleur

Bien sûr, pour prendre en compte ces choix à chaque démarrage, cette ligne devra être incluse dans votre fichier .profile par exemple.

–> sudo gedit /home/USER/.

Alors ken pensez vous ?? :smiley:
Source: http://chl.be/glmf/www.linuxmag-france.org/old/lm6/lscoul.html

Tuto bien sympa, mais je voudrais juste préciser deux points.

Tout d’abord, dans la partie “Modifier le fichier”, la commande donnée pour l’ouverture est sudo gedit /home/*USER*/.ls_couleur
. Or, pour ouvrir une application en graphique, il est fortement recommandé d’utiliser gksudo à la place de sudo.

Et de toute manière, puisque ici le fichier est placé dans le home/login, il n’y a pas besoin de l’ouvrir en root. un simple gedit /home/*USER*/.ls_couleur
est suffisant.
.

c’est vrai, tu as raison, j’ai de mauvaise habitude :stuck_out_tongue:

Pas de souci, c’est pas facile de se défaire de ses habitudes :wink:

Mais je tenais juste à le préciser pour le cas où des “débutants” (entre guillemets parce que je le suis encore aussi) lisent ce how-to. Autant leur en faire prendre de bonnes de suite.

Yessssssssssssssssss ! :stuck_out_tongue: :smiley: