CLICOLOR et LS_COLORS dans bash

48

J'ai la configuration suivante dans .bashrc pour la coloration des listes.

exportation CLICOLOR = 1
export LS_COLORS = 'no = 00: fi = 00: di = 00; 34: ln = 01; 36: pi = 40; 33: so = 01; 35: do = 01; 35: bd = 40; 33; 01: cd = 40; 33; 01: ou = 40; 31; 01: ex = 01; 32: *. 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: *. Bz2 = 01; 31: *. Deb = 01; 31: *. Rpm = 01; 31: *. Jar = 01; 31: *. Jpg = 01; 35: *. Jpeg = 01; 35: *. Gif = 01; 35: * .bmp = 01; 35: *. pbm = 01; 35: *. pgm = 01; 35: *. ppm = 01; 35: *. tga = 01; 35: *. xbm = 01; 35: *. xpm = 01; 35: *. tif = 01; 35: *. tiff = 01; 35: *. png = 01; 35: *. mov = 01; 35: *. mpg = 01; 35: *. mpeg = 01; 35: *. Avi = 01; 35: *. Fli = 01; 35: *. Gl = 01; 35: *. Dl = 01; 35: *. Xcf = 01; 35: *. Xwd = 01; 35: *. Ogg = 01; 35: *. Mp3 = 01; 35: *. Wav = 01; 35: ';

Ce site affiche le code des couleurs et je souhaite changer la couleur du répertoire en «couleur claire». Mais faire di comme suit ne l’affecte pas.

di = 04; 94

La chose intéressante est que même après avoir commenté LS_COLORS, je peux voir une sortie colorée tant que j'ai CLICOLOR = 1.

  • Que dois-je faire pour que la couleur du répertoire devienne bleu clair (94)?
  • Qu'est-ce que c'est pour CLICOLOR et LS_COLORS? Pourquoi la coloration fonctionne sans LS_COLORS?
Prosseek
la source

Réponses:

53

Il existe plusieurs implémentations différentes de la couleur pour ls, et vous en avez regroupé certaines.

  • Sous FreeBSD et Mac OS X , lsaffiche les couleurs si la CLICOLORvariable d’environnement est définie ou si elle -Gest transmise sur la ligne de commande. Les couleurs réelles sont configurées via la LSCOLORSvariable d'environnement (les valeurs par défaut intégrées sont utilisées si cette variable n'est pas définie). Pour afficher les répertoires en bleu clair, utilisez

    export LSCOLORS=Exfxcxdxbxegedabagacad
  • Avec GNU ls , par exemple sous Linux, lsaffiche les couleurs si --colorest passé en ligne de commande. Les couleurs réelles sont configurées via la LS_COLORSvariable d'environnement, qui peut être définie avec la dircolorscommande (les valeurs par défaut intégrées sont utilisées si cette variable n'est pas définie).

Gilles, arrête de faire le mal
la source
5
Merci pour la réponse, pourriez-vous m'apprendre ce que signifie Exfxcxdxbxegedabagacad?
prosseek
@prosseek: voir les pages de manuel auxquelles j'ai lié. Par exemple, les deux premiers caractères sont l’avant-plan et l’arrière-plan des répertoires, esignifient bleu foncé, bleu Eclair et xpar défaut. fen troisième position, les liens symboliques sont en magenta, etc.
Gilles 'SO- arrête d'être méchant'
Sur cette même ligne, comment puis-je créer des treecouleurs d'exposition? Tree affiche les couleurs sur ma machine Debian mais pas sur mon Mac. Les variables d'environnement sont présentes pour la couleur, comme décrit ci-dessus. Donc, mon Mac affiche les couleurs de toutes les lscommandes, mais pas tree. J'ai installé un arbre avec une infusion.
DanCat
2
@DanCat je ne sais pas. treeet lssont des utilitaires non liés, il n’ya aucune raison pour que les réglages de l’un s’appliquent à l’autre. Vous devriez poser cette question séparément.
Gilles 'SO- arrête d'être méchant'
1
Pour les fainéants (comme moi), voici un générateur LSCOLORS
Geoff.greer.fm/lscolors
11

Qu'est-ce que c'est pour CLICOLOR et LS_COLORS? Pourquoi la coloration fonctionne sans LS_COLORS?

CLICOLORactivera ou désactivera les couleurs. LS_COLORSn'est pas obligatoire et vous permettra de personnaliser les couleurs.

Notez que sur certains systèmes d'exploitation (comme MacOSX et FreeBSD), la valeur est nommée LSCOLORS, pas LS_COLORS.

J'évite de définir la couleur à l'aide de LS_COLORS, car je dois ensuite appliquer le même jeu de couleurs à une centaine d'ordinateurs différents et à 10 Un * x différents. Au lieu de cela, je modifie la couleur dans mon programme Terminal, qui fonctionne de la même manière sur la plupart des hôtes Unix.

Stefan Lasiewski
la source