Quand je grep quelque chose, le résultat est toujours en rouge. Je sais que la commande grep --color
imprime le résultat en couleur, qui par défaut est rouge. Puis-je changer la couleur?
Quand je grep quelque chose, le résultat est toujours en rouge. Je sais que la commande grep --color
imprime le résultat en couleur, qui par défaut est rouge. Puis-je changer la couleur?
Réponses:
Vous pouvez modifier la couleur de surbrillance grep
en utilisant une variable d'environnement GREP_COLORS
, que vous pouvez définir comme ceci:
export GREP_COLORS='ms=01;31'
Les nombres peuvent styliser le texte, changer la couleur de premier plan ou la couleur d'arrière-plan, ou changer les polices.
Les conditions de départ pour toutes les GREP_COLORS
options sont le style de texte, la police et les couleurs par défaut du terminal. La réinitialisation de l'un de ces paramètres rétablira les paramètres par défaut du terminal, et non aucun des grep
paramètres par défaut.
ᴀ;ʙ;…
- ;
sépare les options numériques que vous souhaitez combiner (par exemple, gras texte jaune sur noir combine les options 1
, 33
et 40
dans 1;33;40
)+ᴇꜰꜰᴇᴄᴛ
- ᴇꜰꜰᴇᴄᴛ est activé lorsque vous utilisez cette option numérique-ᴇꜰꜰᴇᴄᴛ
- ᴇꜰꜰᴇᴄᴛ est désactivé lorsque vous utilisez cette option numériquecolor
, green
, cyan
Et grey
- dans la section « style de texte », ceux - ci font référence à la couleur de premier plancolors
- dans la section "Style de texte", cela fait référence à la fois à la couleur de premier plan et à la couleur d'arrière-planthis color
- dans la section "Couleurs de premier plan", il s'agit de la couleur de premier plan; dans la section "Couleurs d'arrière-plan", il s'agit de la couleur d'arrière-planUne chaîne vide ou 0
réinitialise tous les styles de texte et réinitialise les deux couleurs aux valeurs par défaut, mais ne réinitialise pas la police par défaut.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Notez que le TTY non-GUI ne fournit pas une série de couleurs d'arrière-plan plus lumineuse.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Le graphique ci-dessus est une capture d'écran du contenu publié dans "Code d'échappement ANSI, couleurs 8 bits" sur Wikipedia , rédigé par CMG Lee et al. le 24 février 2016 et après , et sous licence par les auteurs sous la licence de droit d'auteur CC BY-SA 3.0 et la licence de droit d'auteur GFDL .
Les couleurs du tableau de 256 couleurs ci-dessus peuvent être utilisées comme suit:
38;5;ɴ
- remplacez ɴ par la valeur d'une couleur particulière dans le tableau ci-dessus pour changer la couleur de premier plan à la couleur la plus proche prise en charge par le terminal48;5;ɴ
- remplacez ɴ par la valeur d'une couleur particulière dans le tableau ci-dessus pour changer la couleur d'arrière - plan en la couleur la plus proche prise en charge par le terminalPar exemple, 38;5;214;48;5;30
définira le premier plan sur couleur 214
et l'arrière-plan sur couleur 30
, donnant un résultat orange sur bleu sur les terminaux qui le prennent en charge.
Notez que tous les terminaux ne prennent pas en charge les 256 couleurs, il est donc important de réaliser que la couleur choisie peut ne pas être utilisée. Seule la couleur prise en charge la plus proche de celle choisie sera utilisée.
Par exemple, le TTY non-GUI prend uniquement en charge les 16 couleurs de base pour le premier plan et les 8 couleurs de base pour l'arrière-plan, de sorte que les couleurs les plus proches qui finissent par être utilisées peuvent ne pas être celles que vous attendez. Par exemple, la sélection orange sur bleu ci-dessus ( 38;5;214;48;5;30
) s'affiche en jaune sur noir dans le TTY non-GUI, car ce sont les couleurs prises en charge les plus proches.
10
est la police par défaut. 11
à travers 20
sont des polices alternatives potentielles ( 20
signifie généralement une police 𝕱𝖗𝖆𝖐𝖙𝖚𝖗 dans les rares terminaux qui la prennent en charge). Seulement 10
et 12
semblent exister par défaut dans le TTY non-GUI, et aucun n'existe dans GNOME Terminal ou xterm
.
grep
ne rétablit pas correctement les polices avant de quitter, donc exécutez reset
si vous êtes coincé dans une police indésirable après le grep
retour au 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 │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
Sources de la section "Options numériques":
● "Code d'échappement ANSI, paramètres SGR (Select Graphic Rendition)" sur Wikipédia
● Vérification expérimentale sur le terminal GNOMExterm
, et TTY en mode non-GUI sur Ubuntu 16.04
La valeur par défaut de GREP_COLORS
est'ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
La signification de chaque élément accepté sur GREP_COLORS
peut être vérifiée sur la page de manuel de GNU.org .
Pour terminer, et comme l'a souligné @damadam, vous devez ajouter le export
à votre .bashrc
afin d'enregistrer les modifications.
En relation:
38;5;ɴ
, où ɴ doit être remplacé par l'une des valeurs de couleur. Pour le fond, utilisez 48;5;ɴ
de la même manière. Par exemple, 38;5;214;48;5;30
devrait vous donner de l'orange sur la sarcelle d'hiver. Si ce n'est pas le cas, votre terminal peut ne pas prendre en charge 256 couleurs. Par exemple, le TTY non GUI ne prend en charge que 16 couleurs pour le premier plan et 8 pour l'arrière-plan et choisira les couleurs de premier plan et d'arrière-plan parmi les 16 et 8 les plus proches de l'orange sur la sarcelle d'hiver, qui est jaune sur noir.
En plus de la réponse de @M. Becerra, n'oubliez pas d'ajouter ceci à l' export
intérieur ~/.bashrc
. Vous pouvez le faire comme ça:
nano ~/.bashrc
et saisissez maintenant votre export
:
export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Cela définit les grep
résultats sur jaune et je n'ai pas besoin de refaire le export
terminal après redémarrage ou l'ordinateur.
<<<hello GREP_COLORS='ms=5;104' grep '.*'
une fois! Une liste de codes peut être trouvée par exemple ici (section 6).