Je comprends que ls
utilise dircolors
pour afficher la sortie colorée. dircolors
possède une base de données par défaut de couleurs associées aux extensions de fichier, qui peut être imprimée avec la commande
dircolors --print-database
De man dir_colors
J'ai lu, la base de données à l'échelle du système devrait être située dans /etc/DIR_COLORS
. Mais ce fichier n'existe pas sur mon système (Debian). Comment puis-je modifier les paramètres de couleur à l'échelle du système pour dircolors
? D'où vient la commande dircolors --print-database
récupère les paramètres quand aucun fichier n'existe.
Je suis conscient que l'utilisateur peut avoir un fichier spécifique à l'utilisateur ~/.dircolors
avec ses paramètres, mais cela ne me convient pas, car je dois modifier les paramètres pour tout le monde.
Une deuxième question est de savoir s'il est possible d'utiliser des couleurs 8 bits pour les dircolors. Mon terminal est xterm-256color
.
ls
reprend les paramètres de couleur de la variable d'environnement LS_COLORS
. dircolors
est simplement un moyen pratique de générer cette variable d'environnement. Pour que cette variable d'environnement prenne effet à l'échelle du système, placez-la dans le fichier de démarrage de votre Shell.
Pour bash
, vous mettriez ceci dans /etc/profile
:
# `dircolors` prints out `LS_COLORS='...'; export LS_COLORS`, so eval'ing
# $(dircolors) effectively sets the LS_COLORS environment variable.
eval "$(dircolors /etc/DIR_COLORS)"
Pour zsh
, vous devez soit le mettre dans /etc/zshrc
ou faites en sorte que zsh
lise /etc/profile
au démarrage. Votre distribution peut déjà avoir zsh
le faire. Je soulève juste ceci pour souligner que la configuration de dircolors
pour vraiment tout le monde dépend du Shell qu'ils utilisent.
Quant à l'endroit où dircolors
obtient ses paramètres, lorsque vous ne spécifiez pas de fichier, il utilise simplement des valeurs par défaut intégrées.
Vous pouvez utiliser les 256 codes d'échappement couleur de xterm
dans votre fichier dircolors, mais sachez qu'ils ne fonctionneront que pour les terminaux compatibles xterm
. Ils ne fonctionneront pas sur la console texte Linux, par exemple.
Le format pour 256 codes d'échappement de couleur est 38;5;colorN
pour les couleurs de premier plan et 48;5;colorN
pour les couleurs d'arrière-plan. Ainsi, par exemple:
.mp3 38;5;160 # Set fg color to color 160
.flac 48;5;240 # Set bg color to color 240
.ogg 38;5;160;48;5;240 # Set fg color 160 *and* bg color 240.
.wav 01;04;05;38;5;160;48;5;240 # Pure madness: make bold (01), underlined (04), blink (05), fg color 160, and bg color 240!
D'où vient la commande
dircolors --print-database
récupère les paramètres quand aucun fichier n'existe.
Selon le manuel , il utilise une base de données précompilée en l'absence de fichier.
Si un fichier est spécifié, dircolors le lit pour déterminer les couleurs à utiliser pour quels types de fichiers et extensions. Sinon, une base de données précompilée est utilisée. Pour plus de détails sur le format de ces fichiers, exécutez ‘
dircolors --print-database
’.
Afin de modifier les paramètres pour tout le monde, vous pouvez créer un /etc/dircolors
fichier et ajoutez ce qui suit à /etc/bashrc
:
d=/etc/dircolors
test -r $d && eval "$(dircolors $d)"
Linux définit les couleurs d'arrière-plan de la console avec des dircolors:
Votre fichier dircolors contrôle les couleurs des mots qui apparaissent à travers ls sur la console. Trouve ça .dircolors
fichier pour votre distribution, un lien pour aider:
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/profile.html
Pour moi sur Fedora 17, mon fichier dircolors est: /etc/DIR_COLORS
Copie /etc/DIR_COLORS
Dans votre /home/el/.dircolors
répertoire. Créez-le s'il n'existe pas.
Modifiez /home/el/.dircolors, recherchez le texte "dir".
Change ça:
DIR 01;34 # directory
Pour ça:
DIR 01;36 # directory
Enregistrez, fermez et redémarrez le shell. Les répertoires vont du bleu foncé sur le noir (illisible) au bleu sarcelle brillant sur le noir (lisible).