dircolors: modifie les paramètres de couleur globalement

40

Je comprends les lsutilisations dircolorspour afficher une sortie en couleur. dircolorsa la base de données par défaut des couleurs associées aux extensions de fichier, qui peuvent être imprimées avec la commande

dircolors --print-database

D'après ce que man dir_colorsj'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 modifier les paramètres de couleur à l'échelle du système dircolors? D'où la commande dircolors --print-databaseprend-elle les paramètres lorsqu'aucun fichier n'existe?

Je suis conscient que l'utilisateur peut avoir un fichier spécifique à l'utilisateur ~/.dircolorsavec 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 coloris colorés. Mon terminal est xterm-256color.

utilisateur1968963
la source

Réponses:

36

lsprend les paramètres de couleur de la variable d'environnement LS_COLORS. dircolorsest simplement un moyen pratique de générer cette variable d’environnement. Pour que cette variable d’environnement soit appliquée à l’ensemble du système, insérez-la dans le fichier de démarrage de votre shell.

Car 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)"

En effet zsh, vous le mettriez /etc/zshrcou organiseriez-vous pour zshle lire /etc/profileau démarrage. Votre distribution l’a peut-être zshdéjà fait. J'ajoute simplement ceci pour souligner que les paramètres dircolorspour tout le monde dépendent de la coque qu'ils utilisent.

En ce qui concerne les dircolorsparamètres d’origine, lorsque vous ne spécifiez pas de fichier, il utilise uniquement certains paramètres par défaut.

Vous pouvez utiliser xtermles codes d’échappement en 256 couleurs dans votre fichier dircolors, mais sachez qu’ils ne fonctionneront que pour xtermles terminaux compatibles. Ils ne fonctionneront pas sur la console de texte Linux, par exemple.

Le format des codes d’échappement à 256 couleurs est celui 38;5;colorNdes couleurs de premier plan et des couleurs 48;5;colorNd’arrière-plan. Donc 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!
Mat
la source
1
Pourriez-vous s'il vous plaît expliquer comment je peux utiliser les codes d'échappement 256 couleurs? Supposons que je souhaite modifier les éléments suivants .mp3 00;36pour utiliser color126 à partir du tableau de couleurs xterm-256 upload.wikimedia.org/wikipedia/fr/1/15/Xterm_256color_chart.svg
user1968963 Le
1
Bien sûr, voir mon édition.
Matt
8

D'où la commande dircolors --print-databaseprend-elle les paramètres lorsqu'aucun fichier n'existe?

Selon le manuel , il utilise une base de données précompilée en l'absence de fichier.

Si file est spécifié, dircolors le lit pour déterminer les couleurs à utiliser pour quels types de fichier et quelles extensions. Sinon, une base de données précompilée est utilisée. Pour plus de détails sur le format de ces fichiers, lancez ' dircolors --print-database'.

Pour modifier les paramètres pour tout le monde, vous pouvez créer un /etc/dircolorsfichier et ajouter les éléments suivants à /etc/bashrc:

d=/etc/dircolors
test -r $d && eval "$(dircolors $d)"
devnull
la source
7

Linux définit les couleurs d’arrière-plan de la console avec des couleurs:

Votre fichier dircolors contrôle les couleurs des mots qui apparaissent par ls sur la console. Trouvez ce .dircolorsfichier pour votre distribution, un lien pour vous aider:

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/profile.html

Pour moi sur Fedora 17, mon fichier dircolors est: /etc/DIR_COLORS

Copier /etc/DIR_COLORSdans votre /home/el/.dircolorsrépertoire. Créez-le s'il n'existe pas.

Éditez /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 brillant bleu sarcelle sur le noir (lisible).

Eric Leschinski
la source
2
-1: non /etc/DIR_COLORSdans la distribution de OP, Debian. Et il est déjà au courant ~/.dircolors, ce n'était pas la question
MestreLion le