Passo la maggior parte del mio tempo a lavorare in ambienti Unix e ad utilizzare emulatori di terminale. Cerco di usare il colore sulla riga di comando, perché il colore rende l'output più utile e intuitivo.
Quali opzioni esistono per aggiungere colore al mio ambiente terminale? Che trucchi usi? Quali trabocchetti hai incontrato?
Sfortunatamente, il supporto per il colore varia a seconda del tipo di terminale, del sistema operativo, dell'impostazione TERM, dell'utilità, delle implementazioni con bug, ecc.
Ecco alcuni suggerimenti dalla mia configurazione, dopo molte sperimentazioni:
- Tendo a impostare
TERM=xterm-color
, che è supportato sulla maggior parte degli host (ma non su tutti). - Lavoro su diversi host, diverse versioni del sistema operativo, ecc. Uso di tutto, da macOS X, Ubuntu Linux, RHEL/CentOS/Scientific Linux e FreeBSD. Sto cercando di mantenere le cose semplici e generiche, se possibile.
- Faccio un sacco di lavoro usando GNU
screen
, che aggiunge un altro livello di divertimento. - Molti sistemi operativi impostano cose come
dircolors
e per impostazione predefinita, e non voglio modificarlo su cento host diversi. Quindi cerco di attenermi alle impostazioni predefinite. Invece, modifico la configurazione del colore del mio terminale. -
Usa il colore per alcuni comandi Unix (
ls
,grep
,less
,vim
) e il prompt di Bash. Questi comandi sembrano utilizzare le "sequenze di escape ANSI" standard. Ad esempio:alias less='less --RAW-CONTROL-CHARS' export LS_OPTS='--color=auto' alias ls='ls ${LS_OPTS}'
Pubblicherò il mio .bashrc
e rispondi alla mia stessa domanda Jeopardy Style.
Risposta accettata:
Ecco un paio di cose che puoi fare:
Editor + codice
Molti editor supportano l'evidenziazione della sintassi. vim
e emacs
averlo acceso per impostazione predefinita. Puoi anche abilitarlo in nano
.
Puoi anche evidenziare la sintassi del codice sul terminale usando Pigmenti come strumento da riga di comando.
grep grep --color=auto
mette in evidenza tutte le partite. Puoi anche usare export GREP_OPTIONS='--color=auto'
per renderlo persistente senza alias. Se usi --color=always
, utilizzerà il colore anche durante le tubazioni, il che confonde le cose.
ls
ls --color=always
Colori specificati da:
export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33'
(suggerimento:dircolors
può essere utile)
PS1
Puoi impostare la tua PS1 (prompt della shell) per utilizzare i colori. Ad esempio:
PS1='e[33;[email protected]: e[31mWe[0m$ '
Produrrà una PS1 come:
[giallo][protetto tramite email]:[rosso]~[normale]$
Puoi diventare davvero creativo con questo. Come idea:
PS1='e[se[0;0He[1;33mh tne[1;32mThis is my computere[u[[email protected]: w]$ '
Mette una barra nella parte superiore del tuo terminale con alcune informazioni casuali. (Per risultati migliori, usa anche alias clear="echo -e 'e[2Jnn'"
.)
Sbarazzarsi delle sequenze di fuga
Correlati:risoluzione dello schermo non elencata?
Se qualcosa è bloccato emettendo il colore quando non lo desideri, io uso questo sed
riga per rimuovere le sequenze di escape:
sed "s/[^[[0-9;]*[a-zA-Z]//gi"
Se desideri un'esperienza più autentica, puoi anche eliminare le righe che iniziano con e[8m
, che indica al terminale di nascondere il testo. (Non ampiamente supportato.)
sed "s/^[^[8m.*$//gi"
Nota anche che quelle ^[s dovrebbero essere effettive, letterali ^[s. Puoi digitarli premendo ^V^[ in bash, ovvero Ctrl + V , Ctrl + [ .