Quando grep qualcosa, il risultato è sempre in rosso. So che il comando grep --colorstampa il risultato a colori, che per impostazione predefinita è rosso. Posso cambiare il colore?
Quando grep qualcosa, il risultato è sempre in rosso. So che il comando grep --colorstampa il risultato a colori, che per impostazione predefinita è rosso. Posso cambiare il colore?
Risposte:
È possibile modificare il colore di evidenziazione greputilizzando una variabile di ambiente GREP_COLORS, che è possibile impostare in questo modo:
export GREP_COLORS='ms=01;31'
I numeri possono modellare il testo, cambiare il colore di primo piano o il colore di sfondo o cambiare i caratteri.
Le condizioni iniziali per tutte le GREP_COLORSopzioni sono lo stile di testo, il carattere e i colori predefiniti del terminale. Il ripristino di uno qualsiasi di questi ripristinerà le impostazioni predefinite del terminale, non quelle greppredefinite.
ᴀ;ʙ;…- ;separa opzioni numeriche che si desidera combinare (ad esempio, grassetto giallo su nero combina testo opzioni 1, 33e 40in 1;33;40)+ᴇꜰꜰᴇᴄᴛ- ᴇꜰꜰᴇᴄᴛ si attiva quando si utilizza quell'opzione numerica-ᴇꜰꜰᴇᴄᴛ- ᴇꜰꜰᴇᴄᴛ viene disattivato quando si utilizza quell'opzione numericacolor, green, cyan, E grey- nella sezione "Testo styling", questi si riferiscono al colore di primo pianocolors - nella sezione "Stile del testo", si riferisce sia al colore di primo piano sia al colore di sfondothis color- nella sezione "Colori di primo piano", si riferisce al colore di primo piano; nella sezione "Colori di sfondo", si riferisce al colore di sfondoUna stringa vuota o 0reimposta tutto lo stile del testo e ripristina entrambi i colori sui valori predefiniti, ma non ripristina il carattere sui valori predefiniti.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ │ «reset style+colors» │ «reset style+colors» │ «reset style+colors» │
│ 0 │ «reset style+colors» │ «reset style+colors» │ «reset style+colors» │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 1 │ +bold, +brighter color │ +bold, +brighter color │ +brighter color, │
│ │ │ │ -forced grey │
│ 2 │ +fainter color │ +fainter color │ +forced grey │
│ 3 │ +italic │ +italic │ +forced green │
│ │ │ │ ● overrides 2 and 4 │
│ 4 │ +underline │ +underline │ +forced cyan │
│ │ │ │ ● overrides 2 │
│ 5 │ «no effect» │ +blink │ «no effect» │
│ 7 │ +invert colors │ +invert colors │ +invert colors │
│ 8 │ +invisible │ +invisible │ «no effect» │
│ │ │ ● underline appears │ │
│ 9 │ +strikethrough │ +strikethrough │ «no effect» │
├─────┼─────────────────────────┤ ├───────────────────────┤
│ 21 │ -bold, -brighter color, │ +double underline │ -brighter color, │
│ │ -fainter color ├─────────────────────────┤ -forced grey │
│ 22 │ -bold, -brighter color, │ -bold, -brighter color, │ -brighter color, │
│ │ -fainter color │ -fainter color │ -forced grey │
│ 23 │ -italic │ -italic │ -forced green │
│ 24 │ -underline │ -underline, │ -forced cyan │
│ │ │ -double underline │ │
│ 25 │ «no effect» │ -blink │ «no effect» │
│ 27 │ -invert colors │ -invert colors │ -invert colors │
│ 28 │ -invisible │ -invisible │ «no effect» │
│ 29 │ -strikethrough │ -strikethrough │ «no effect» │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ 39 │ «reset this color» │ «reset this color» │ «reset this color» │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 30 │ very dark grey │ black │ black │
│ 31 │ dull red │ red │ light red │
│ 32 │ dull green │ light green │ light green │
│ 33 │ dull yellow │ yellow │ yellow │
│ 34 │ greyish blue │ dark blue │ sky blue │
│ 35 │ dull purple │ purple │ purple │
│ 36 │ teal │ cyan │ cyan │
│ 37 │ light grey │ light grey │ light grey │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 90 │ dark grey │ dull grey │ dull grey │
│ 91 │ red │ bright red │ bright red │
│ 92 │ lime green │ bright green │ bright green │
│ 93 │ yellow │ bright yellow │ pure yellow │
│ 94 │ light greyish blue │ dull blue │ deep blue │
│ 95 │ light purple │ magenta │ magenta │
│ 96 │ cyan │ bright cyan │ bright cyan │
│ 97 │ off white │ white │ white │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 38;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255 │
│ │ for closest supported color (non-GUI TTY has only 16 colors!) │
│ 38;5;ɴ │ replace ɴ with value from 256-color chart below │
│ │ for closest supported color (non-GUI TTY has only 16 colors!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Si noti che il TTY non GUI non fornisce una serie di colori di sfondo più luminosa.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ 49 │ «reset this color» │ «reset this color» │ «reset this color» │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 40 │ very dark grey │ black │ black │
│ 41 │ dull red │ red │ light red │
│ 42 │ dull green │ light green │ light green │
│ 43 │ dull yellow │ yellow │ yellow │
│ 44 │ greyish blue │ dark blue │ sky blue │
│ 45 │ dull purple │ purple │ purple │
│ 46 │ teal │ cyan │ cyan │
│ 47 │ light grey │ light grey │ light grey │
├─────┼─────────────────────────┼─────────────────────────┼╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶┤
│ 100 │ dark grey │ dull grey │ black │
│ 101 │ red │ bright red │ light red │
│ 102 │ lime green │ bright green │ light green │
│ 103 │ yellow │ bright yellow │ yellow │
│ 104 │ light greyish blue │ dull blue │ sky blue │
│ 105 │ light purple │ magenta │ purple │
│ 106 │ cyan │ bright cyan │ cyan │
│ 107 │ off white │ white │ light grey │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 48;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255 │
│ │ for closest supported color (non-GUI TTY has only 8 colors!) │
│ 48;5;ɴ │ replace ɴ with value from 256-color chart below │
│ │ for closest supported color (non-GUI TTY has only 8 colors!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Sopra il grafico c'è uno screenshot del contenuto pubblicato in "Codice di escape ANSI, colori a 8 bit" su Wikipedia , scritto da CMG Lee et al. il 24 febbraio 2016 e versioni successive e concesso in licenza dagli autori in base alla licenza di copyright CC BY-SA 3.0 e alla licenza di copyright GFDL .
I colori della tabella a 256 colori sopra possono essere usati come segue:
38;5;ɴ- sostituire ɴ con il valore di un colore particolare nella tabella sopra per cambiare il colore di primo piano con il colore più vicino supportato dal terminale48;5;ɴ- sostituire ɴ con il valore di un colore particolare nella tabella sopra per cambiare il colore di sfondo con il colore più vicino supportato dal terminaleAd esempio, 38;5;214;48;5;30imposterà il primo piano sul colore 214e lo sfondo sul colore 30, dando un risultato arancione-verde acqua sui terminali che lo supportano.
Si noti che non tutti i terminali supportano tutti i 256 colori, quindi è importante rendersi conto che il colore scelto potrebbe non essere utilizzato. Verrà utilizzato solo il colore supportato più vicino a quello scelto.
Ad esempio, il TTY non GUI supporta solo i 16 colori di base per il primo piano e gli 8 colori di base per lo sfondo, quindi i colori più vicini che finiscono per essere utilizzati potrebbero non essere quelli previsti. Ad esempio, la selezione arancione-verde acqua sopra ( 38;5;214;48;5;30) mostra come giallo-nero nel TTY non-GUI, poiché quelli sono i colori supportati più vicini.
10è il carattere predefinito. 11attraverso 20sono potenziali caratteri alternativi (di 20solito significa un carattere 𝕱𝖗𝖆𝖐𝖙𝖚𝖗 nei rari terminali che lo supportano). Solo 10e 12sembra esistere di default nel TTY non GUI, e nessuno esiste nel Terminale GNOME o xterm.
grepnon ripristina correttamente i caratteri prima di uscire, quindi esegui resetse rimani bloccato in un carattere indesiderato dopo il grepritorno alla shell.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ 10 │ «no effect» │ «no effect» │ «reset font» │
│ 11 │ «no effect» │ «no effect» │ -messed up font │
│ 12 │ «no effect» │ «no effect» │ +messed up font │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
Fonti della sezione "Opzioni numeriche":
● "Codice di escape ANSI, parametri SGR (Select Graphic Rendition)" su Wikipedia
● Verifica sperimentale sul terminale GNOMExterme TTY non in modalità GUI su Ubuntu 16.04
Il valore predefinito di GREP_COLORSè'ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Il significato di ogni elemento accettato GREP_COLORSpuò essere verificato nella pagina del manuale di GNU.org .
Per il completamento, e come sottolineato da @damadam, è necessario aggiungere il exportproprio .bashrcper salvare le modifiche.
Relazionato:
38;5;ɴ, dove ɴ deve essere sostituito con uno dei valori di colore. Per lo sfondo, utilizzare 48;5;ɴallo stesso modo. Ad esempio, 38;5;214;48;5;30dovrebbe darti l'arancia sull'alzavola. In caso contrario, il terminale potrebbe non supportare 256 colori. Ad esempio, il TTY non GUI supporta solo 16 colori per il primo piano e 8 per lo sfondo e sceglierà i colori di primo piano e di sfondo tra quelli 16 e 8 più vicini all'arancione sull'alzavola, che è giallo su nero.
Oltre alla risposta di @M. Becerra, non dimenticare di aggiungere questo exportall'interno ~/.bashrc. Puoi farlo così:
nano ~/.bashrc
e digita ora il tuo export:
export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Questo imposta i greprisultati su giallo e non è necessario ripetere il exportterminale di riavvio o il computer.
<<<hello GREP_COLORS='ms=5;104' grep '.*'una volta! È possibile trovare un elenco di codici, ad esempio qui (sezione 6).