Cuando agarro algo, el resultado siempre está en rojo. Sé que el comando grep --colorimprime el resultado en color, que por defecto es rojo. ¿Puedo cambiar el color?
fuente
Cuando agarro algo, el resultado siempre está en rojo. Sé que el comando grep --colorimprime el resultado en color, que por defecto es rojo. ¿Puedo cambiar el color?
Puede cambiar el color de resaltado greputilizando una variable de entorno GREP_COLORS, que puede establecer de esta manera:
export GREP_COLORS='ms=01;31'
Los números pueden aplicar estilo al texto, cambiar el color de primer plano o el color de fondo, o cambiar las fuentes.
Las condiciones iniciales para todas las GREP_COLORSopciones son el estilo de texto, fuente y colores predeterminados del terminal. Restablecer cualquiera de estos volverá a los valores predeterminados del terminal, no a ninguno de greplos valores predeterminados.
ᴀ;ʙ;…- ;separa opciones numéricas que desea combinar (por ejemplo, negrita amarillo sobre negro combina texto opciones 1, 33y 40en 1;33;40)+ᴇꜰꜰᴇᴄᴛ- ᴇꜰꜰᴇᴄᴛ se activa cuando usa esa opción numérica-ᴇꜰꜰᴇᴄᴛ- ᴇꜰꜰᴇᴄᴛ se apaga cuando usa esa opción numéricacolor, green, cyan, Y grey- en la sección "Estilo de texto", éstos se refieren al color de primer planocolors - en la sección "Estilo de texto", esto se refiere tanto al color de primer plano como al color de fondothis color- en la sección "Colores de primer plano", esto se refiere al color de primer plano; en la sección "Colores de fondo", esto se refiere al color de fondoUna cadena vacía o 0restablece todos los estilos de texto y restablece ambos colores a los valores predeterminados, pero no restablece la fuente a los valores predeterminados.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Tenga en cuenta que el TTY no GUI no proporciona una serie de color de fondo más brillante.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
El cuadro de arriba es una captura de pantalla del contenido publicado en "Código de escape ANSI, colores de 8 bits" en Wikipedia , escrito por CMG Lee et al. el 24 de febrero de 2016 y posteriores , y con licencia de los autores bajo la licencia de copyright CC BY-SA 3.0 y la licencia de copyright GFDL .
Los colores de la tabla de 256 colores anterior se pueden usar de la siguiente manera:
38;5;ɴ- reemplace ɴ con el valor de un color en particular en la tabla anterior para cambiar el color de primer plano al color más cercano que admita el terminal48;5;ɴ- reemplace ɴ con el valor de un color particular en el cuadro anterior para cambiar el color de fondo al color más cercano que admita el terminalPor ejemplo, 38;5;214;48;5;30establecerá el primer plano en color 214y el fondo en color 30, dando un resultado naranja sobre verde azulado en los terminales que lo admiten.
Tenga en cuenta que no todos los terminales admiten los 256 colores, por lo que es importante darse cuenta de que el color elegido podría no usarse. Solo se utilizará el color compatible más cercano al elegido.
Por ejemplo, el TTY sin GUI solo admite los 16 colores básicos para el primer plano y los 8 colores básicos para el fondo, por lo que los colores más cercanos que terminan siendo utilizados pueden no ser lo que espera. Como ejemplo, la selección naranja sobre verde azulado arriba ( 38;5;214;48;5;30) se muestra como amarillo sobre negro en el TTY sin GUI, ya que esos son los colores compatibles más cercanos.
10es la fuente predeterminada 11a través de 20posibles fuentes alternativas ( 20generalmente significa una fuente 𝕱𝖗𝖆𝖐𝖙𝖚𝖗 en los raros terminales que lo admiten). Solo 10y 12parece existir por defecto en el TTY que no es GUI, y ninguno existe en el Terminal GNOME o xterm.
grepno cambia correctamente las fuentes antes de salir, así que ejecútelo resetsi se atasca en una fuente no deseada después de grepregresar al 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 │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
Fuentes de la sección "Opciones numéricas":
● "Código de escape ANSI, parámetros SGR (Seleccionar representación gráfica)" en Wikipedia
● Verificación experimental en el terminal GNOMExtermy TTY sin modo GUI en Ubuntu 16.04
El valor predeterminado de GREP_COLORSes'ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
El significado de cada elemento aceptado GREP_COLORSpuede consultarse en la página del manual de GNU.org .
Para completar, y como lo señaló @damadam, debe agregarlo exporta su .bashrcpara guardar los cambios.
Relacionado:
<<<hello GREP_COLORS='ms=5;104' grep '.*'una vez! Puede encontrar una lista de códigos, por ejemplo, aquí (sección 6).38;5;ɴ, donde ɴ debe reemplazarse con uno de los valores de color. Para el fondo, úselo48;5;ɴde la misma manera. Por ejemplo,38;5;214;48;5;30debería darle naranja sobre verde azulado. Si no es así, es posible que su terminal no admita 256 colores. Por ejemplo, el TTY no GUI solo admite 16 colores para el primer plano y 8 para el fondo y seleccionará los colores de primer plano y de fondo de los 16 y 8 más cercanos al naranja en verde azulado, que es amarillo sobre negro.Además de la respuesta de @M. Becerra, no olvides agregar esto
exportadentro~/.bashrc. Puedes hacerlo así:y escriba ahora su
export:Esto establece los
grepresultados en amarillo, y no necesito rehacer elexportterminal después del reinicio o la computadora.fuente