dircolors : De la couleur dans ls
Voici un tutoriel pour afficher le contenu d'un dossier avec des couleurs personnalisées dans le terminal, grâce à la commande ls et l'utilitaire dircolors .
Introduction
Par défaut, la commande ls affiche les dossiers et fichiers d'un répertoire sans couleur. Il est possible d'utiliser des couleurs par défaut avec l'option :
ls --color=auto
Dans Ubuntu, cette configuration est ajoutée par défaut.
Il est possible de configurer les couleurs s'appliquant à certains types de fichiers/dossiers/liens via l'utilitaire
dircolors
et la variable d'environnement $LS_COLORS
Modification des couleurs
Utiliser ls avec des couleurs par défaut
Si cette configuration n'est pas déjà présente, éditez le fichier ~/.bashrc pour l'ajouter et la rendre permanente. Auquel cas, dans le ~/.bashrc, ajouter cette ligne :
alias ls='ls --color=auto'
Code Couleur
| Couleur | Signification |
|---|---|
| Couleur par défaut du shell | Fichier standard |
| Bleu | Répertoire |
| Cyan | Lien symbolique |
| Jaune | Fichier FIFO et block. |
| Magenta | Socket, fichier image (.jpg, .gif, .png, .tiff) et audio (.mp3, .ogg, .wav) |
| Rouge | Archive (.tar, .zip, .deb, .rpm) |
| Vert | Exécutable |
Personnalisation du code couleur
ls et dircolors
ls utilise les couleurs stockées dans une variable d'environnement
$LS_COLORS.
Il est possible d'en visualiser le contenu :
echo $LS_COLORS
Les types de fichiers sont abrégés et ce format est peu pratique pour une modification
par l'utilisateur. L'utilitaire dircolors
dispose de différentes options pour exporter la base de données des couleurs dans un format
plus facile à éditer et réintégrer les modifications dans la variable $LS_COLORS.
Ainsi donc, si vous avez l'âme de customiser les couleurs, ou que les couleurs ne vous plaisent pas, ouvrez votre terminal et lancez cette commande :
dircolors -p > ~/.ls_color
~/ correspond à /home/$USER/
Vous êtes prêt à modifier le fichier :
~/.ls_color
Modifier la couleur
| Code | Signification | Code | Couleur d'avant plan | Code | Couleur d'arrière plan | ||
|---|---|---|---|---|---|---|---|
| 00 | aucun | 30 | noir | 40 | noir | ||
| 01 | gras | 31 | rouge | 41 | rouge | ||
| 04 | souligné | 32 | vert | 42 | vert | ||
| 05 | clignotant | 33 | jaune | 43 | jaune | ||
| 07 | inversé | 34 | bleu | 44 | bleu | ||
| 08 | caché | 35 | magenta | 45 | magenta | ||
| 36 | cyan | 46 | cyan | ||||
| 37 | blanc | 47 | blanc |
signification des termes de dircolors
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 bloc
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
Exemples
la ligne DIR signifie que le dossier est de couleur bleu et gras.
DIR 01;34 # directory
Activer les paramètres
Dès que vous avez modifié vos paramètres, ouvrez le terminal et tapez la commande :
eval `dircolors $HOME/.ls_color`
Bien sûr, pour prendre en compte ces choix à chaque démarrage, cette ligne devra être incluse dans votre fichier.
~/.bashrc
Modification pour tous les utilisateurs
Si vous voulez que les modifications se fassent pour tous les utilisateurs, il faudra créer un fichier dans un dossier root par exemple /etc/ et modifier comme ceci :
dircolors -p > /etc/ls_color
ajouter dans le fichier /etc/profile :
eval `dircolors /etc/ls_color`
et mettre à jour le profile.
source /etc/profile
si aucun message d'erreur ne s'affiche c'est que tout c'est bien déroulé, dans le cas contraire, exposez votre problème sur le forum.
Tableau récapitulatif des codes couleurs
Créez un fichier texte, copiez/collez le code, enregistrez-le puis rendez-le exécutable et enfin lancez le terminal.
#!/bin/bash
esc="\033["
echo -n " 40 41 42 43"
echo " 44 45 46 47 "
for fore in 30 31 32 33 34 35 36 37; do
line1="$fore "
line2=" "
for back in 40 41 42 43 44 45 46 47; do
line1="${line1}${esc}${back};${fore}m Normal ${esc}0m"
line2="${line2}${esc}${back};${fore};1m Bold ${esc}0m"
done
echo -e "$line1\n $line2"
done
vous devriez voir ceci :
Liens
Les commandes de base en console : ls
https://manpages.ubuntu.com/manpages/bionic/fr/man1/dircolors.1.html
http://chl.be/glmf/www.linuxmag-france.org/old/lm6/lscoul.html
Alternatives
Eza est une alternative moderne à ls : https://eza.rocks/
Installation : https://github.com/eza-community/eza/blob/main/INSTALL.md#debian-and-ubuntu
