Come colorare l'output di ls?


22

Sto eseguendo CentOS in modalità testo Linux. Quando eseguo il comando ls /usr/, l'output è troppo difficile da leggere (blu scuro su nero). Come posso cambiare la colorazione del testo?

Schermata dell'output di ls

Risposte:


19

Se vuoi cambiare i tuoi colori nella console, che è al di fuori di X , puoi specificare i colori nel tuo .bashrc, in questo modo:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0222222" #black
    echo -en "\e]P8222222" #darkgrey
    echo -en "\e]P1803232" #darkred
    ....
    fi

Dove stai definendo il nero come #222222Vedi questo post per i dettagli: http://phraktured.net/linux-console-colors.html

Se stai lavorando in X , puoi personalizzare la tua configurazione definendo i tuoi colori in questo .Xresourcesmodo:

!black
 *color0:  #3D3D3D
 *color8:  #5E5E5E
!red
 *color1:  #8C4665
 *color9:  #BF4D80
 ...

e quindi approvare questo file quando si avvia X, in genere dal proprio .xinitrc:

xrdb -merge ~/.Xresources

Arch Wiki ha una pagina su .Xresources che spiega tutte le opzioni: https://wiki.archlinux.org/index.php/Xresources

Un altro miglioramento che è possibile apportare in X o meno è quello di specificare tutti i diversi tipi di file che si desidera colorare e i rispettivi colori in un .dir_colorsfile, in questo modo:

.xinitrc       01;31 
.Xauthority    01;31
.Xmodmap       00;31
.Xresources    01;33
 ...

Per iniziare, copia /etc/dir_colorsnella /homedirectory del tuo utente e apporta le modifiche. Quindi procedi dal tuo .bashrccon eval $(dircolors -b ~/.dir_colors)Questo ti consentirà un controllo accurato sui colori di file e tipi di file quando lo usi ls.

Puoi trovare un .dir_colorsfile di esempio (incredibilmente dettagliato e completo) qui: https://github.com/trapd00r/LS_COLORS/blob/master/LS_COLORS

Con una combinazione di tutti e tre gli approcci, è possibile creare una configurazione ragionevolmente uniforme, sia che si lavori nella console o in X.


mi dispiace, sono un nuovo studente di linux. l'ho installato nel testo di Linux. non c'è console. tutto è in esecuzione nella riga di comando. grazie,
runeveryday,

2
Sì: questo è ciò che intendevo quando ho detto fuori da X - nelle console TTY (TTY 1-7).
Jasonwryan,

jasonwryan, ho eseguito il comando vim / etc / DIR_COLORS il DIR è 01; 34 COME CAMBIARE AL COLORE MARRONE. grazie
runeveryday il

2
Il termine colori è qui: tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html Il verde è 00;32e il verde chiaro / grassetto è 1;32L'unico modo per ottenere verde acqua è utilizzare il metodo che ho descritto sopra per definire uno di quei 16 colori come equivalente esadecimale dell'alzavola.
Jasonwryan,

scusa se questa è una domanda per principianti, ma la tua risposta cambia per un sistema Unix in OS X?
Charlie Parker,

9

Il file che desideri è /etc/DIR_COLORS. Ho avuto lo stesso identico problema e ho cambiato le directory in un colore verde acqua. Funziona molto meglio.

cp /etc/DIR_COLORS /home/yourusername/.dir_colors

Modifica /home/yourusername/.dir_colors, vedrai questa riga:

DIR 01;34    #directory

Cambialo in questo:

DIR 01;36    #directory

Ciò rende i colori delle directory verde acqua.


quando eseguo il comando / etc / DIR_COLORS viene negato il permesso di output. sono l'utente root, perché? come cambiare il colore in verde acqua. grazie
runeveryday il

3
@run Non è un comando, è un file di configurazione; aprilo in un editor di testo
Michael Mrozek

il DIR è 01; 34 COME CAMBIARE AL COLORE MARRONE. grazie
runeveryday il

@MaxMackie Questo non sembra funzionare per me (copiato in ~/.dir_colors) e ha cambiato tutto in 00. Ho scoperto che devo aprire un nuovo terminale. Come viene imposto / collegato al terminale corrente?
Bernhard,
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.