ls
comando in Bash, noterai che le directory e i file che vedi sono colorati in base al loro tipo. È possibile personalizzare la propria combinazione di colori per scegliere diversi colori di testo, colori di sfondo e formattazione come grassetto e sottolineato.
Come funziona
Lo schema dei colori è memorizzato nella variabile LS_COLORS. Per visualizzare la combinazione di colori corrente, puoi dire a Bash di stampare il contenuto della variabile:
echo $LS_COLORS
Vedrai una lunga lista di tipi di file e codici numerici. Spiegheremo come creare da soli una lista come questa.
ORIGINAL=$LS_COLORS
LS_COLORS=$ORIGINAL
Le modifiche sono sempre temporanee finché non si modifica un file per renderle le nuove impostazioni predefinite. Puoi sempre uscire e accedere o chiudere e riaprire una finestra di terminale per ripristinare i colori alle impostazioni predefinite. Tuttavia, questo lo rende facile da fare con un singolo comando veloce.
Come impostare i colori personalizzati
La variabile LS_COLORS contiene un elenco di tipi di file insieme ai codici colore associati. L'elenco predefinito è lungo poiché specifica colori diversi per un numero di tipi di file diversi.
Iniziamo un esempio di base per dimostrare come funziona. Diciamo che vogliamo cambiare il colore delle directory dal blu grassetto predefinito al rosso grassetto. Possiamo eseguire il seguente comando per farlo:
LS_COLORS='di=1;31'
Il
di=1;31
un po 'dice
ls
quelle directory (
di
) siamo (
=
) grassetto (
1;
) rosso (
31
).
LS_COLORS='di=1:31:*.desktop=4;36'
Questo dice
ls
quelle directory (
di
) siamo (
=
) grassetto (
1;
) rosso (
31
) e (
:
) qualsiasi file che termina in.desktop (
*.desktop
) è (
=
) sottolineato (
4;
) ciano (
36
).
Per assemblare il tuo elenco, devi solo conoscere l'elenco di codici colore e codici tipo file. Questo utilizza gli stessi codici colore numerici che si usano quando si cambia il colore nel prompt di Bash.
Ecco l'elenco dei codici colore per il testo in primo piano:
- Nero: 30
- Blu: 34
- Ciano: 36
- Verde: 32
- Viola: 35
- Rosso: 31
- Bianco: 37
- Giallo: 33
Ad esempio, dal momento che il testo giallo è il codice colore 33, lo useresti
di=33
per rendere le directory gialle.
- Testo normale: 0
- Testo in grassetto o chiaro: 1 (dipende dall'emulatore di terminale).
- Dim Text: 2
- Testo sottolineato: 4
- Testo lampeggiante: 5 (Questo non funziona nella maggior parte degli emulatori di terminale.)
- Testo invertito: 7 (Questo inverte i colori di primo piano e di sfondo, quindi vedrai il testo nero su uno sfondo bianco se il testo corrente è testo bianco su sfondo nero.)
- Testo nascosto: 8
Quando si specifica un attributo o più di un codice colore, separare l'elenco di codici con un carattere punto e virgola (;). Non è necessario specificare 0 per il testo normale, poiché il testo normale viene utilizzato quando non si specifica un attributo qui.
Ad esempio, poiché il testo in grassetto è il codice colore 1 e il testo giallo è il codice colore 33, devi utilizzare
di=1;33
per rendere le directory in grassetto giallo. Puoi anche specificare più di un attributo. Ad esempio, potresti usare
di=1;4;33
per rendere le directory audaci, sottolineate di giallo.
- Sfondo nero: 40
- Sfondo blu: 44
- Ciano sfondo: 46
- Sfondo verde: 42
- Sfondo viola: 45
- Sfondo rosso: 41
- Sfondo bianco: 47
- Sfondo giallo: 43
Ad esempio, dal momento che uno sfondo blu è il codice colore 44, devi usare
di=44
usare uno sfondo blu per le directory. Puoi anche combinare un codice colore di sfondo, un codice colore in primo piano e tutti gli attributi che desideri. Per esempio,
di=1;4;33;44
ti darebbe un testo giallo sottolineato e sottolineato su uno sfondo blu.
- Elenco: di
- File: fi
- Link simbolico: ln
- Named Pipe (FIFO): pi
- Presa: così
- Dispositivo di blocco: bd
- Dispositivo di carattere: cd
- Link simbolico orfano (punta a un file che non esiste più): o
- File mancante (un file mancante a cui punta un link simbolico orfano): mi
- File eseguibile (ha il permesso "x"): es
- *. estensione: qualsiasi file che termina con un'estensione specificata. Ad esempio, utilizza *.txt per i file che terminano in.txt, *.mp3 per i file che terminano in.mp3, *.desktop per i file che terminano in.desktop o qualsiasi altra cosa che ti piace. Puoi specificare tutte le estensioni di file che desideri.
Specificare tanti tipi diversi di codici di tipi di file con tutti i colori diversi che desideri, separati dal carattere:. Ripeti questo processo per assemblare la tua variabile LS_COLORS.
Ad esempio, diciamo che vuoi usare il testo in grassetto viola per le directory, il testo rosso sottolineato per i file eseguibili e il testo verde in grassetto su uno sfondo rosso per i file.mp3. Mettendo insieme i codici dei tipi di file e i codici colore dagli elenchi precedenti, otterresti:
LS_COLORS='di=1;35:ex=4;31:*.mp3=1;32;41'
Come impostare i nuovi colori di default
Ora hai una variabile LS_COLORS personalizzata che funziona nella sessione Bash corrente. Tuttavia, probabilmente vuoi renderlo permanente in modo che venga utilizzato automaticamente ogni volta che avvii una nuova sessione di Bash senza che tu debba ricordarlo.
Puoi impostare la variabile LS_COLORS personalizzata e tutte le altre variabili Bash che ti piacciono aggiungendo il file.bashrc del tuo account utente. Questo file si trova in ~ /.bashrc. Quindi, se il tuo nome utente è bob, lo troverai su /home/bob/.bashrc. Esistono altri modi per impostare le variabili di ambiente, ma questo è semplice.
Innanzitutto, apri questo file nel tuo editor di testo preferito. Qui useremo nano qui come esempio, ma puoi usare vi, emacs o qualsiasi altra cosa che ti piace.
nano ~/.bashrc
LS_COLORS='di=1;35:ex=4;31:*.mp3=1;32;41'
Salva il file ed esci. In nano, premi Ctrl + O e quindi premi Invio per salvare, quindi premi Ctrl + X per uscire.
Puoi anche solo cancellare il
LS_COLORS=
linea aggiunta al file.bashrc per utilizzare nuovamente i colori predefiniti. Se non imposti il valore LS_COLORS, Bash utilizzerà i colori predefiniti.