web-dev-qa-db-fra.com

Modifier la couleur de grep

Quand je fais quelque chose, le résultat est toujours en rouge. Je sais que la commande grep --color imprime le résultat en couleur, qui est rouge par défaut. Puis-je changer la couleur?

22
Codito ergo sum

Vous pouvez modifier la couleur de surbrillance de grepà l'aide d'une variable d'environnement, GREP_COLORS, que vous pouvez définir comme suit:

export GREP_COLORS='ms=01;31'

Options numériques

Les nombres peuvent styler 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 options GREP_COLORS sont le style de texte, la police et les couleurs par défaut du terminal. La réinitialisation de ces options rétablira les valeurs par défaut du terminal, et non celles de grepname __.

Légende

  • ;ʙ; - ; sépare les options numériques que vous souhaitez combiner (par exemple, un texte en gras jaune sur noir combine les options 1, 33 et 40 en 1;33;40
  • +ᴇꜰꜰᴇᴄᴛ - ᴇꜰꜰᴇᴄᴛ est activé lorsque vous utilisez cette option numérique
  • -ᴇꜰꜰᴇᴄᴛ - ᴇꜰꜰᴇᴄᴛ est désactivé lorsque vous utilisez cette option numérique
  • color, green, cyan et grey - dans la section "Style de texte", ils font référence à la couleur de premier plan
  • colors - dans la section "Style de texte", cela fait référence à la couleur de premier plan et à la couleur d'arrière-plan
  • this color - dans la section "Couleurs de premier plan", cela fait référence à la couleur de premier plan; dans la section "Couleurs de fond", cela fait référence à la couleur de fond

Style de texte

Une 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»           │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

Couleurs de premier plan

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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!)    │
└────────────┴────────────────────────────────────────────────────────────────────┘

Couleurs de fond

Notez que le TTY non-graphique 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!)     │
└────────────┴────────────────────────────────────────────────────────────────────┘

Tableau 256 couleurs

256-color chart

Le graphique ci-dessus est une capture d'écran du contenu publié dans "Code d'échappement ANSI, couleurs 8 bits" sur Wikipedia , écrit par CMG Lee et al. Le 24 février 2016 et ultérieurement , et sous licence des auteurs sous les deux licence de copyright CC BY-SA 3. et licence de copyright GFDL .

Les couleurs du tableau 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 modifier la couleur d'avant-plan par la couleur la plus proche prise en charge par le terminal
  • 48;5;ɴ - remplacez par la valeur d'une couleur particulière dans le tableau ci-dessus pour modifier la couleur d'arrière-plan par la couleur la plus proche prise en charge par le terminal

Par exemple, 38;5;214;48;5;30 définira le premier plan sur la couleur 214 et l’arrière-plan sur la couleur 30, ce qui donnera un résultat orange sur sarcelle 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 comprendre 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-graphique ne prend en charge que les 16 couleurs de base pour le premier plan et les 8 couleurs de base pour l’arrière-plan. Par conséquent, les couleurs les plus proches qui seront utilisées risquent de ne pas correspondre à vos attentes. Par exemple, la sélection orange sur bleu sarcelle ci-dessus (38;5;214;48;5;30) s'affiche en jaune sur noir dans le TTY non graphique, car ce sont les couleurs prises en charge les plus proches.

Les polices

10 est la police par défaut. 11 à 20 sont des polices de remplacement potentielles (20 signifie généralement n ?????????????????????????????? font dans le terminaux rares qui le supportent). Seuls 10 et 12 semblent exister par défaut dans le TTY non graphique, et aucun n’existe dans le terminal GNOME ou xtermname__.

grepne modifie pas correctement les polices avant de quitter. Lancez donc resetsi vous êtes bloqué dans une police non souhaitée après le retour de grepau 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 Wikipedia
 ● Vérification expérimentale sur le terminal GNOME, xtermet TTY en mode non graphique sur Ubuntu 16.04


examples of color changes after setting <code>GREP_COLORS</code>

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 à partir de page de manuel de GNU.org .

Pour terminer, et comme l'a souligné @damadam, vous devez ajouter exportà votre .bashrc afin de sauvegarder les modifications.

Connexes:

Grep multicolore

tilisez des couleurs différentes pour chaque autre grep

18
M. Becerra

En plus de la réponse de @M. Becerra, n'oubliez pas d'ajouter ceci export dans ~/.bashrc. Vous pouvez le faire comme ça:

nano ~/.bashrc

et tapez maintenant votre export:

export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'

Ceci définit les résultats grep en jaune et je n'ai pas besoin de refaire le export après le redémarrage du terminal ou de l'ordinateur.

5
damadam