Establecer/Reiniciar

Establecer/Reiniciar

Puedo cambiar el color mediante preferencias, pero ¿cómo puedo cambiar el color de fondo y el color del texto del terminal a través de la línea de comando?

Respuesta1

En ciertos terminales compatibles con XTerm/ANSI (como xtermy gnome-terminal), puede configurar colores usando una paleta más grande que la paleta predeterminada de 8/16 colores (por ejemplo, usando una paleta de 88 colores, 256 colores o 16777216 colores (RGB) ; ambos xtermy gnome-terminaladmite la paleta de 256 colores y la de 16777216 colores (RGB); Tenga en cuenta que el shell podría anular esto (este es el caso, por ejemplo, de zsh).

Aquí hay una secuencia de comandos para enumerar los colores en la paleta de 256 colores junto con su código de color ANSI en terminales compatibles con XTerm/ANSI con soporte de paleta de 256 colores:

#!/bin/bash
for((i=16; i<256; i++)); do
    printf "\e[48;5;${i}m%03d" $i;
    printf '\e[0m';
    [ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done

captura de pantalla1

captura de pantalla

Dependiendo de si desea aplicar el color al primer plano o al fondo, use un <fg_bg>valor de 38o 48(respectivamente) en el siguiente comando:

printf '\e[<fg_bg>;5;<ANSI_color_code>m'

Por ejemplo, para establecer el color de primer plano ( <fg_bg>= 38) en rojo ( <ANSI_color_code>= 196) y el color de fondo ( <fg_bg>= 48) en negro ( <ANSI_color_code>= 0):

printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'

captura de pantalla3

Es necesario volver a dibujar el mensaje usando printf '\e[K'para que el color de fondo se aplique a toda la línea y para que el color de primer plano se aplique al cursor:

captura de pantalla4

Se puede lograr lo mismo utilizando valores RGB en lugar de códigos de color ANSI en un terminal compatible; Dependiendo de si desea aplicar el color al primer plano o al fondo, use un <fg_bg>valor de 38o 48(respectivamente) en el siguiente comando:

printf '\e[<fg_bg>;2;<R>;<G>;<B>m'

Por ejemplo, para establecer el color de primer plano ( <fg_bg>= 38) en rojo ( <R>= 255, <G>= 0, <B>= 0) y el color de fondo ( <fg_bg>= 48) en negro ( <R>= 0, <G>= 0, <B>= 0):

printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'

captura de pantalla5

Nuevamente, es necesario volver a dibujar el mensaje usando printf '\e[K'para que el color de fondo se aplique a toda la línea y para que el color de primer plano se aplique al cursor:

captura de pantalla6

Utilizando cualquiera de los métodos, puede utilizar printf '\e[0m'para restablecer todos los atributos:

captura de pantalla7

Respuesta2

Información encontrada enesta página, excluyendo la columna de vista previa:

Las secuencias se componen del carácter de escape (a menudo representado por " ^[" o " <Esc>" ) seguido de algunos otros caracteres: " ^[FCm" (donde FCestá uno de los números en la lista con viñetas a continuación).

En bash, el Esccódigo puede ser cualquiera de los siguientes:

  1. \e
  2. \033(octal)
  3. \x1B(hexadecimal)

Nota 1:La \e[0msecuencia " " elimina todos los atributos (formato y colores). Puede ser una buena idea añadirlo al final de cada texto coloreado.

Nota 2:Los colores de primer plano y de fondo pueden variar, dependiendo de la configuración del terminal yno todos los colores son compatibles.

Establecer/Reiniciar

  • 0: Restablecer/eliminar todos los atributos modificadores, de primer plano y de fondo:echo -e "\e[0mNormal Text"
  • 1: Negrita/Brillante:echo -e "Normal \e[1mBold"
  • 2: Oscuro:echo -e "Normal \e[2mDim"
  • 4: Subrayada:echo -e "Normal \e[4mUnderlined"
  • 5: Parpadea (no funciona en la mayoría de terminales excepto XTerm):echo -e "Normal \e[5mBlink"
  • 7: Invertir/Invertir:echo -e "Normal \e[7minverted"
  • 8: Oculto (útil para información confidencial):echo -e "Normal \e[8mHidden Input"
  • 21: Restablecer/Eliminar negrita/brillante:echo -e "Normal \e[1mBold \e[21mNormal"
  • 22: Restablecer/Eliminar atenuación:echo -e "Normal \e[2mDim \e[22mNormal"
  • 24: Restablecer/Eliminar subrayado:echo -e "Normal \e[4mUnderlined \e[24mNormal"
  • 25: Restablecer/Eliminar parpadeo:echo -e "Normal \e[5mBlink \e[25mNormal"
  • 27: Restablecer/Eliminar invertir/invertir:echo -e "Normal \e[7minverted \e[27mNormal"
  • 28: Restablecer/Eliminar oculto:echo -e "Normal \e[8mHidden \e[28mNormal"

Primer plano

  • 39: Predeterminado (normalmente verde, blanco o gris claro):echo -e "Default \e[39mDefault"
  • 30: Negro: echo -e "Default \e[30mBlack"(mejor combinado con un color de fondo: echo -e "Default \e[30;107mBlack on white")
  • 31: Rojo (no usar con fondo verde)
  • 32: Verde
  • 33: Amarillo
  • 34: Azul
  • 35: Magenta/Púrpura
  • 36: cian
  • 37: Gris claro
  • 90: Gris oscuro
  • 91: Luz roja
  • 92: Verde claro
  • 93: Amarillo claro
  • 94: Azul claro
  • 95: Magenta claro/Rosa
  • 96: Cian claro
  • 97: Blanco

Fondo

  • 49: Color de fondo predeterminado (normalmente negro o azul)
  • 40: Negro
  • 41: Rojo
  • 42: Verde
  • 43: Amarillo
  • 44: Azul
  • 45: Magenta/Púrpura
  • 46: cian
  • 47: Gris claro (no utilizar con primer plano blanco)
  • 100: Gris oscuro (no utilizar con primer plano negro)
  • 101: Luz roja
  • 102: Verde claro (no usar con primer plano blanco)
  • 103: Amarillo claro (no utilizar con primer plano blanco)
  • 104: Azul claro (no usar con primer plano amarillo claro)
  • 105: Magenta claro/Rosa (no usar con primer plano claro)
  • 106: Cian claro (no usar con primer plano blanco)
  • 107: Blanco (no usar con primer plano claro)

Para configurar los colores de primer plano y de fondo a la vez, utilice otro formulario echo -e "\e[S;FG;BGm". Por ejemplo: echo -e "\e[1;97;41m"(primer plano blanco en negrita sobre fondo rojo)

Para ver 256 opciones de color, consulte la página de origen.

Respuesta3

Cambiar los colores de forma incidental.

Si está destinado a cambiar de color de forma incidental:

Puedes usar elfijadordominio:

setterm -term linux -back <background_colour> -fore <text_color> -clear

De los colores, puede elegir entre (tanto de frente como de fondo):

black|blue|green|cyan|red|magenta|yellow|white|default

para más opciones:

setterm -help

Cambia la configuración de tu perfil (color)

En 14.04, no encontré una opción para dconfconfigurar los colores o el terminal. Sin embargo puedes usargconftool

  • Primero necesitas obtener tu nombre de perfil:

    gconftool-2 --get /apps/gnome-terminal/global/profile_list
    
  • Luego, para configurar los colores del texto de su perfil:

    gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/foreground_color" --type string "#FFFFFF"
    

    por ejemplo, para establecer el color del texto en blanco

    Lo mismo con el color de fondo:

    gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string "#000000"
    

    por ejemplo, para establecer el color de fondo en negro

Alternativamente, para establecer el nombre de los colores, simplemente puede usar whiteo green, desde la misma paleta que el comando setterm, por ejemplo:

gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string black

Respuesta4

Los diversos códigos de color que se utilizaron para obtener resultados en color también se pueden utilizar para obtenerfondos de colores:

40  black
41  red
42  green
43  yellow
44  blue
45  magenta
46  cyan
47  white

Por lo tanto, el siguiente comando vuelve mi fondo rojo:

$ echo -e '\e[0;41m'

Dependiendo del shell, el emulador de terminal, etc., es posible que no necesite el archivo -e.

información relacionada