GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo cambiar el color de tu terminal Linux

Puede agregar color a su terminal Linux utilizando configuraciones especiales de codificación ANSI, ya sea dinámicamente en un comando de terminal o en archivos de configuración, o puede usar temas ya preparados en su emulador de terminal. De cualquier manera, el nostálgico texto verde o ámbar en una pantalla negra es totalmente opcional. Este artículo demuestra cómo puede hacer que Linux sea tan colorido (o tan monocromático) como desee.

Capacidades del terminal

Los sistemas modernos generalmente tienen por defecto al menos xterm-256color, pero si intenta agregar color a su terminal sin éxito, debe verificar su configuración TERM.

Históricamente, las terminales Unix eran literalmente eso:puntos físicos en el extremo literal (terminación) de un sistema informático compartido donde los usuarios podían escribir comandos. Eran únicos de las máquinas de teletipo (razón por la cual todavía tenemos dispositivos /dev/tty en Linux hoy en día) que a menudo se usaban para emitir comandos de forma remota. Las terminales tenían monitores CRT incorporados, por lo que los usuarios podían sentarse en una terminal en su oficina para interactuar directamente con el mainframe. Los monitores CRT eran caros, tanto de fabricar como de controlar; era más fácil que una computadora escupiera texto ASCII crudo que preocuparse por el anti-aliasing y otras sutilezas que los informáticos modernos dan por sentado. Sin embargo, los avances en la tecnología sucedieron rápidamente incluso entonces, y rápidamente se hizo evidente que a medida que se diseñaban nuevos terminales de visualización de video, necesitaban nuevas capacidades para estar disponibles de manera opcional.

Por ejemplo, el nuevo y elegante VT100 lanzado en 1978 admitía el color ANSI, por lo que si un usuario identificaba el tipo de terminal como vt100, entonces una computadora podría generar una salida en color, mientras que un dispositivo serial básico podría no tener esa opción. El mismo principio se aplica hoy y está establecido por la variable de entorno TERM. Puede verificar su definición de TÉRMINO con echo :

$ echo $TERM
xterm-256color

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

El archivo /etc/termcap obsoleto (pero aún mantenido en algunos sistemas en aras de la compatibilidad con versiones anteriores) definía las capacidades de las terminales y las impresoras. La versión moderna de eso es terminfo, ubicada en /etc o /usr/share, según su distribución. Estos archivos enumeran las funciones disponibles en diferentes tipos de terminales, muchas de las cuales están definidas por hardware histórico:hay definiciones para vt100 a vt220, así como para emuladores de software modernos como xterm y Xfce. A la mayoría del software no le importa qué tipo de terminal está usando; en raras ocasiones, puede recibir una advertencia o un error sobre un tipo de terminal incorrecto al iniciar sesión en un servidor que busca funciones compatibles. Si su terminal está configurado en un perfil con muy pocas funciones, pero sabe que el emulador que usa es capaz de más, entonces puede cambiar su configuración definiendo la variable de entorno TERM. Puede hacer esto exportando la variable TERM en su archivo de configuración ~/.bashrc:

export TERM=xterm-256color

Guarde el archivo y vuelva a cargar su configuración:

$ source ~/.bashrc

Códigos de colores ANSI

Los terminales modernos han heredado secuencias de escape ANSI para funciones "meta". Estas son secuencias especiales de caracteres que un terminal interpreta como acciones en lugar de caracteres. Por ejemplo, esta secuencia borra la pantalla hasta el siguiente mensaje:

$ printf `\033[2J`

No borra tu historial; simplemente limpia la pantalla en su emulador de terminal, por lo que es una secuencia de escape ANSI segura y demostrativa.

ANSI también tiene secuencias para configurar el color de tu terminal. Por ejemplo, escribir este código cambia el texto siguiente a verde:

$ printf '\033[32m'

Siempre que vea el color de la misma manera que su computadora, puede usar el color para ayudarlo a recordar en qué sistema ha iniciado sesión. Por ejemplo, si usa SSH regularmente en su servidor, puede configurar el aviso del servidor en verde para ayudarlo a diferenciarlo de un vistazo del aviso local. Para un aviso verde, use el código ANSI para verde antes de su carácter de aviso y termínelo con el código que representa su color predeterminado normal:

export PS1=`printf "\033[32m$ \033[39m"`

Primer plano y fondo

No está limitado a configurar el color de su texto. Con los códigos ANSI, puede controlar el color de fondo de su texto, así como aplicar un estilo rudimentario.

Por ejemplo, con \033[4m , puede hacer que el texto se subraye o con \033[5m puede configurarlo para que parpadee. Eso puede parecer tonto al principio, porque probablemente no configurará su terminal para subrayar todo el texto y parpadear todo el día, pero puede ser útil para funciones seleccionadas. Por ejemplo, puede configurar un error urgente producido por un script de shell para que parpadee (como una alerta para su usuario) o puede subrayar una URL.

Para su referencia, aquí están los códigos de color de primer plano y de fondo. Los colores de primer plano están en el rango 30, mientras que los colores de fondo están en el rango 40:

Hay algunos colores adicionales disponibles para el fondo:

Color Primer plano Antecedentes
Negro \033[30m \033[40m
Rojo \033[31m \033[41m
Verde \033[32m \033[42m
Naranja \033[33m \033[43m
Azul \033[34m \033[44m
Magenta \033[35m \033[45m
Cian \033[36m \033[46m
Gris claro \033[37m \033[47m
Volver al valor predeterminado de la distribución \033[39m \033[49m

Permanencia

Establecer colores en su sesión de terminal es solo temporal y relativamente incondicional. A veces, el efecto dura unas pocas líneas; eso se debe a que este método de configuración de colores se basa en una instrucción printf para establecer un modo que dura solo hasta que otra cosa lo reemplaza.

La forma en que un emulador de terminal suele obtener instrucciones sobre qué colores usar es a partir de la configuración de la variable de entorno LS_COLORS, que a su vez se completa con la configuración de dircolors. Puede ver su configuración actual con una declaración de eco:

$ echo $LS_COLORS
rs=0:di=38;5;33:ln=38;5;51:mh=00:pi=40;
38;5;11:so=38;5;13:do=38;5;5:bd=48;5;
232;38;5;11:cd=48;5;232;38;5;3:or=48;
5;232;38;5;9:mi=01;05;37;41:su=48;5;
196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;
196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;
[...]

O puede usar dircolors directamente:

$ dircolors --print-database
[...]
# image formats
.jpg 01;35
.jpeg 01;35
.mjpg 01;35
.mjpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.tif 01;35
.tiff 01;35
[...]

Si eso parece críptico, es porque lo es. El primer dígito después de un tipo de archivo es el código de atributo y tiene seis opciones:

  • 00 ninguno
  • 01 negrita
  • 04 guión bajo
  • 05 parpadeo
  • 07 inversa
  • 08 oculto

El siguiente dígito es el código de color en forma simplificada. Puede obtener el código de color tomando el dígito final del código ANSII (32 para el primer plano verde, 42 para el fondo verde, 31 o 41 para el rojo, etc.).

Su distribución probablemente establece LS_COLORS globalmente, por lo que todos los usuarios de su sistema heredan los mismos colores. Si desea un conjunto personalizado de colores, puede usar dircolors para eso. Primero, genera una copia local de tu configuración de color:

$ dircolors --print-database > ~/.dircolors

Edite su lista local como desee. Cuando esté satisfecho con sus elecciones, guarde el archivo. Su configuración de color es solo una base de datos y ls no puede usarla directamente, pero puede usar dircolors para obtener el código de shell que puede usar para configurar LS_COLORS:

$ dircolors --bourne-shell ~/.dircolors 
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:
pi=40;33:so=01;35:do=01;35:bd=40;33;01:
cd=40;33;01:or=40;31;01:mi=00:su=37;41:
sg=30;43:ca=30;41:tw=30;42:ow=34;
[...]
export LS_COLORS

Copie y pegue esa salida en su archivo ~/.bashrc y vuelva a cargar. Alternativamente, puede volcar esa salida directamente en su archivo .bashrc y volver a cargar.

$ dircolors --bourne-shell ~/.dircolors >> ~/.bashrc
$ source ~/.bashrc

También puede hacer que Bash resuelva .dircolors al iniciarse en lugar de realizar la conversión manualmente. Siendo realistas, es probable que no vaya a cambiar de color con frecuencia, por lo que esto puede ser demasiado agresivo, pero es una opción si planea cambiar mucho su combinación de colores. En su archivo .bashrc, agregue esta regla:

[[ -e $HOME/.dircolors ]] && eval "`dircolors --sh $HOME/.dircolors`"

Si tiene un archivo .dircolors en su directorio de inicio, Bash lo evalúa al iniciarse y establece LS_COLORS en consecuencia.

Color

Los colores en su terminal son una manera fácil de tener una referencia visual rápida para información específica. Sin embargo, es posible que no desee apoyarse demasiado en ellos. Después de todo, los colores no son universales, por lo que si alguien más usa su sistema, es posible que no vea los colores de la misma manera que usted. Además, si usa una variedad de herramientas para interactuar con las computadoras, es posible que algunas terminales o conexiones remotas no proporcionen los colores que espera (o ningún color).

Dejando de lado esas advertencias, los colores pueden ser útiles y divertidos en algunos flujos de trabajo, así que crea una base de datos .dircolor y personalízala a tu gusto.


Linux
  1. Cómo tmux genera alegría en su terminal Linux

  2. Cómo traer buena fortuna a tu terminal Linux

  3. Cómo buscar en la web desde la terminal en Linux

  4. Cómo cambiar la identidad de un sistema Linux

  5. Cómo cambiar el shell predeterminado en Linux

Cómo cambiar su nombre de host en Linux

Cómo cambiar el color de salida de 'Echo' en Linux

Cómo cambiar el shell predeterminado en el sistema Linux

¿Cómo cambiar el esquema de partición en su servidor Linux?

Cómo cambiar la contraseña de root en Linux

Cómo cambiar la imagen, el fondo y el color de fuente de GRUB Splash en su Linux

    Color Antecedentes
    Gris oscuro \033[100m
    Rojo claro \033[101m
    Verde claro \033[102m
    Amarillo \033[103m
    Azul claro \033[104m
    Morado claro \033[105m
    Verde azulado \033[106m
    Blanco \033[107m