CLICOLOR e LS_COLORS in bash


48

Ho la seguente configurazione in .bashrc per colorare gli elenchi.

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: o = 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:. ';

Questo sito mostra il codice per i colori e voglio cambiare il colore della directory in "colore chiaro". Ma fare di come segue non lo influenza.

di = 04; 94

La cosa interessante è che anche dopo aver commentato LS_COLORS, posso vedere un output colorato fintanto che ho CLICOLOR = 1.

  • Cosa devo fare per rendere il colore della directory in Azzurro (94)?
  • Che cos'è CLICOLOR e LS_COLORS? Perché la colorazione funziona senza LS_COLORS?

Risposte:


53

Esistono diverse implementazioni di colore per ls e ne hai confuse alcune.

  • Su FreeBSD e Mac OS X , lsmostra i colori se la CLICOLORvariabile di ambiente è impostata o se -Gviene passata sulla riga di comando. I colori effettivi vengono configurati tramite la LSCOLORSvariabile di ambiente (le impostazioni predefinite integrate vengono utilizzate se questa variabile non è impostata). Per mostrare le directory in azzurro, usare

    export LSCOLORS=Exfxcxdxbxegedabagacad
  • Con GNU ls , ad esempio su Linux, lsmostra i colori se --colorviene passato sulla riga di comando. I colori effettivi vengono configurati tramite la LS_COLORSvariabile di ambiente, che può essere impostata con il dircolorscomando (le impostazioni predefinite integrate vengono utilizzate se questa variabile non è impostata).


5
Grazie per la risposta, potresti insegnarmi cosa significa Exfxcxdxbxegedabagacad?
prosseek

@prosseek: vedi le pagine man a cui ho collegato. Ad esempio, i primi due caratteri sono il primo piano e lo sfondo delle directory, esignifica blu scuro, Eblu chiaro e xpredefinito. fnella terza posizione rende magenta i collegamenti simbolici e così via.
Gilles 'SO- smetti di essere malvagio'

Su questa stessa linea, come posso creare i treecolori dello spettacolo? Tree mostra i colori sul mio computer Debian ma non lo fa sul mio Mac. Le variabili di ambiente sono presenti per il colore come descritto sopra. Quindi il mio Mac mostra i colori per qualsiasi lscomando ma non tree. Ho installato l'albero con birra.
DanCat,

2
@DanCat Non lo so. treee lssono utility non correlate, non c'è motivo per cui le impostazioni di una si applichino all'altra. Dovresti porlo come domanda separata.
Gilles 'SO- smetti di essere malvagio' il

1
Per i pigri (come me) ecco un generatore LSCOLORS geoff.greer.fm/lscolors
udondan,

11

Che cos'è CLICOLOR e LS_COLORS? Perché la colorazione funziona senza LS_COLORS?

CLICOLORaccenderà o spegnerà i colori. LS_COLORSnon è richiesto e ti permetterà di personalizzare i colori.

Nota che su alcuni sistemi operativi (come MacOSX e FreeBSD), il valore è denominato LSCOLORS, non LS_COLORS.

Evito di impostare il colore usando LS_COLORS, perché quindi devo applicare lo stesso schema di colori su un centinaio di computer diversi e 10 Un * x diversi. Invece, modifico il colore nel mio programma Terminal, che funziona allo stesso modo sulla maggior parte degli host Unix.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.