it-swarm.com.de

CLICOLOR und LS_COLORS in Bash

Ich habe das folgende Setup in .bashrc zum Färben von Einträgen.

 export 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: oder = 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: '; 

Diese Seite zeigt den Code für Farben und ich möchte die Verzeichnisfarbe in "helle Farbe" ändern. Aber di wie folgt zu machen hat keinen Einfluss darauf.

di = 04; 94

Das Interessante ist, dass ich auch nach dem Auskommentieren von LS_COLORS eine farbige Ausgabe sehen kann, solange ich CLICOLOR = 1 habe.

  • Was kann ich tun, um die Verzeichnisfarbe hellblau (94) zu machen?
  • Was ist das für CLICOLOR und LS_COLORS? Warum funktioniert das Färben ohne LS_COLORS?
51
prosseek

Es gibt verschiedene Farbimplementierungen für ls, von denen Sie einige zusammengeführt haben.

  • Bei FreeBSD und Mac OS X zeigt ls Farben an, wenn die Umgebungsvariable CLICOLOR gesetzt ist oder wenn -G wird in der Kommandozeile übergeben. Die tatsächlichen Farben werden über die Umgebungsvariable LSCOLORS konfiguriert (integrierte Standardeinstellungen werden verwendet, wenn diese Variable nicht festgelegt ist). Verwenden Sie, um Verzeichnisse in hellblau anzuzeigen

    export LSCOLORS=Exfxcxdxbxegedabagacad
    
  • Mit GNU ls , z. Unter Linux zeigt ls Farben an, wenn --color wird in der Kommandozeile übergeben. Die tatsächlichen Farben werden über LS_COLORS Umgebungsvariable, die mit dem Befehl dircolors festgelegt werden kann (integrierte Standardeinstellungen werden verwendet, wenn diese Variable nicht festgelegt ist).

Was ist das für CLICOLOR und LS_COLORS? Warum funktioniert das Färben ohne LS_COLORS?

CLICOLOR schaltet Farben ein oder aus. LS_COLORS Ist nicht erforderlich und ermöglicht es Ihnen, die Farben anzupassen.

Beachten Sie, dass auf einigen Betriebssystemen (wie MacOSX und FreeBSD) der Wert LSCOLORS heißt und nicht LS_COLORS.

Ich vermeide es, die Farbe mit LS_COLORS einzustellen, da ich dann dasselbe Farbschema auf hundert verschiedene Computer und 10 verschiedene Un * xes anwenden muss. Stattdessen ändere ich die Farbe in meinem Terminal-Programm, das auf den meisten Unix-Hosts gleich funktioniert.

11

Wenn Sie ein Wrapper-Skript für ls benötigen, das auf allen Systemen funktioniert, diese Farbunterschiede usw. abstrahiert, siehe: http://www.pixelbeat.org/scripts/l

4
Pádraig Brady