Comprendre le bitcoin, l'intelligence artificielle, faire un site web... En 3 minutes en vidéo!

Mettre de la couleur dans la commande ls sous Linux

Tutoriaux > Linux > Mettre de la couleur dans la commande ls sous Linux

Mettre de la couleur dans la commande ls sous Linux
Il est parfois utile de colorer les résultats de la commande "ls" sous Linux, pour différencier les différents types de fichiers et les droits d'un simple coup d'oeil.

Modifier ~/.bashrc

C'est le langague d'interprétation Bash qui est en général le langage par défaut utilisé lors de l'installation d'une distribution comme Ubuntu ou Debian.

Il faut donc dire à ce shell d'interpréter les couleurs lors de la commande ls, via des alias. On a de la chance, c'est déjà préconfiguré, mais commenté ! Il faut donc décommenter les lignes suivantes, dans le fichier ~/.bashrc :

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
#alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi


Qui deviennent ainsi :

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi


Personnaliser les couleurs

Configuration actuelle


Il faut tout d'abord obtenir la configuration actuelle des couleurs. On va la copier dans un fichier, pour pouvoir l'explorer par la suite :

dircolors -p > ~/.ls_colors


On peut de plus être curieux du contenu de la variable d'environnement $TERM, car c'est souvent utile pour la suite :

[email protected]:/$ echo $TERM
xterm

En effet, il faut simplement vérifier que votre $TERM est présent dans la liste de TERMS dans le fichier ~./ls_colors. S'il n'y est pas, ajoutez le !

TERM screen.linux
TERM vt100
TERM xterm
TERM xterm-16color
TERM xterm-256color

Edition des couleurs


Editez le fichier ~/.ls_colors que l'on vient de créer, avec votre éditeur préféré. Il y a ensuite deux possibilités pour colorer les résultats de commande. Soit par le type des fichiers, soit par leur extension.

Coloration par type de fichier


Voici les différents types trouvables dans ce fichier, ce sont en général les premières lignes :

Citation de Types de fichiers


  • NORMAL : il ne s'agit pas d'un type mais plus exactement de la valeur par défaut

  • FILE : Fichier "normal"

  • DIR : Dossier

  • LINK : Lien symbolique (ln -s)

  • FIFO : File d'attente (First in, first out)

  • SOCK : Socket

  • BLK : Fichier périphérique en mode bloqué

  • 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


Coloration par extension


Toujours dans ~/.ls_colors, on trouve par la suite des extensions. Attention, les extensions ne correspondent pas aux types "réels" des fichiers sous Linux ! (On peut mettre n'importe quelle extension pour n'importe quel fichier).

Appellation des couleurs


Ainsi, vous trouverez des numéros à côté de chacun de ces types de fichiers :

# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#NORMAL 00 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to "normal" color
DIR 01;34 # directory
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)

Ou encore :

# Or if you want to colorize scripts even if they do not have the
# executable bit actually set.
#.sh 01;32
#.csh 01;32
# archives or compressed (bright red)
.tar 01;31
.tgz 01;31

Comme vous pouvez le voir, le fichier lui-même est plutôt bien commenté.

Comment changer les couleurs ?

Nous arrivons à la partie pratique. Tous ces numéros, c'est beau, mais c'est quoi ?

  • Les numéros commençant par 0 sont les attributs
  • Ceux commençant par 3 sont les couleurs du texte
  • Ceux commençant par 4 sont les couleurs d'arrière plan


Quelle couleur pour quel numéro ?


  • Les attributs :
    00=aucun, 01=gras, 04=souligné, 05=clignotant, 07=inversé, 08=caché

  • Couleurs de texte :
    30=noir, 31=rouge, 32=vert, 33=jaune, 34=bleu, 35=magenta, 36=cyan, 37=blanc

  • Couleurs d'arrière plan :
    40=noir, 41=rouge, 42=vert, 43=jaune, 44=bleu, 45=magenta, 46=cyan, 47=blanc


Enregistrer les modifications

Une fois que vous avez changé ce que vous souhaitiez changer, il faut notifier l'utilitaire dircolors du changement.
Tapez :

dircolors ~/.ls_colors

Vous devriez voir quelquechose dans le genre :

[email protected]:/$ dircolors ~/.ls_colors
LS_COLORS='rs=0:di=01;34:ln=01;36:hl=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31::*.xspf=00;36:';

C'est en fait la déclaration de la variable d'environnement LS_COLORS. On va donc la sauvegarder en tapant simplement :

export LS_COLORS

Puis :

eval 'dircolors ~/.ls_colors'


Ca y est, vos nouvelles couleurs sont activesSourire

Par Pouzy , Le 01 Mai 2010 à 11h53
Ce tutoriel est la propriété d'Aidoweb et ne peut en aucun cas être copié.

Retour à Linux

Ajouter un commentaire

Suite a un fort volume de spam, les commentaires d'invités sont pour le moment désactivés. Vous devez vous inscrire ou vous identifier pour pouvoir commenter cet article, ou demander du support.

Lectures recommandées

Commentaires sur cet article

Aucun commentaire pour le moment.

Tutoriaux > Linux > Mettre de la couleur dans la commande ls sous Linux