Cómo cambiar el color de su terminal de Linux

Puede añadir color a su terminal de Linux utilizando ajustes especiales de codificación ANSI, ya sea de forma dinámica en un comando de terminal o en archivos de configuración, o puede utilizar 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 quiera.

Capacidades de la terminal

Los sistemas modernos suelen tener por defecto al menos xterm-256color, pero si intenta añadir color a su terminal sin éxito, debería comprobar su configuración de TERM.

Históricamente, las terminales de Unix eran literalmente eso: puntos físicos en el punto final literal (terminación) de un sistema informático compartido donde los usuarios podían escribir comandos. Eran únicos de las máquinas de teletipo (por lo que todavía tenemos dispositivos /dev/tty en Linux hoy en día) que a menudo se utilizaban para emitir comandos de forma remota. Los terminales tenían monitores CRT incorporados, por lo que los usuarios podían sentarse en un 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 hacer que un ordenador escupiera texto ASCII crudo que preocuparse por el antialiasing y otras sutilezas que los informáticos modernos dan por sentado. Sin embargo, el desarrollo de la tecnología fue rápido incluso entonces, y rápidamente se hizo evidente que a medida que se diseñaban nuevos terminales de visualización de vídeo, necesitaban nuevas capacidades para estar disponibles de forma opcional.

Por ejemplo, el nuevo y elegante VT100 lanzado en 1978 soportaba el color ANSI, por lo que si un usuario identificaba el tipo de terminal como vt100, entonces un ordenador podía ofrecer una salida en color, mientras que un dispositivo de serie básico podría no tener esa opción. El mismo principio se aplica hoy en día, y se establece mediante la variable de entorno TERM. Puede comprobar su definición de TERM con echo:

$ echo $TERM
xterm-256color

El obsoleto archivo /etc/termcap (aunque todavía se mantiene en algunos sistemas en aras de la compatibilidad con versiones anteriores) definía las capacidades de los terminales y las impresoras. La versión moderna de éste es terminfo, ubicado en /etc o /usr/share, dependiendo de su distribución. Estos archivos enumeran las características disponibles en diferentes tipos de terminales, muchas de las cuales están definidas por el hardware histórico: hay definiciones para vt100 hasta vt220, así como para emuladores de software modernos como xterm y Xfce. A la mayoría del software no le importa el tipo de terminal que estés utilizando; en raras ocasiones, puede que recibas una advertencia o un error sobre un tipo de terminal incorrecto al iniciar sesión en un servidor que comprueba las características compatibles. Si tu terminal está configurado con un perfil con muy pocas características, pero sabes que el emulador que utilizas es capaz de más, entonces puedes cambiar tu 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 recargue su configuración:

$ source ~/.bashrc

Códigos de color ANSI

Los terminales modernos han heredado secuencias de escape ANSI para las características “meta”. Se trata de secuencias especiales de caracteres que un terminal interpreta como acciones en lugar de caracteres. Por ejemplo, esta secuencia borra la pantalla hasta el siguiente prompt:

$ printf `3 

Or you can use dircolors directly:

$ 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

If that looks cryptic, it’s because it is. The first digit after a file type is the attribute code, and it has six options:

  • 00 none
  • 01 bold
  • 04 underscore
  • 05 blink
  • 07 reverse
  • 08 concealed

The next digit is the color code in a simplified form. You can get the color code by taking the final digit of the ANSII code (32 for green foreground, 42 for green background; 31 or 41 for red, and so on).

Your distribution probably sets LS_COLORS globally, so all users on your system inherit the same colors. If you want a customized set of colors, you can use dircolors for that. First, generate a local copy of your color settings:

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

Edita tu lista local como desees. Cuando esté satisfecho con sus opciones, guarde el archivo. Su configuración de color es sólo una base de datos y no puede ser utilizado directamente por ls, pero usted puede utilizar dircolors para obtener shellcode que puede utilizar para establecer 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 recargar.

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

También puede hacer que Bash resuelva .dircolors al iniciar en lugar de hacer la conversión manualmente. Siendo realistas, probablemente no vas a cambiar los colores a menudo, así que esto puede ser demasiado agresivo, pero es una opción si planeas cambiar tu esquema de colores mucho. En su archivo .bashrc, añada esta regla:

] && 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 darse una referencia visual rápida para información específica. Sin embargo, es posible que no quiera apoyarse en ellos demasiado. Después de todo, los colores no son universales, por lo que si otra persona utiliza su sistema, puede que no vea los colores de la misma manera que usted. Además, si utiliza una variedad de herramientas para interactuar con los ordenadores, también podría encontrar que algunos terminales o conexiones remotas no proporcionan los colores que usted espera (o los colores en absoluto).

Aparte de estas advertencias, los colores pueden ser útiles y divertidos en algunos flujos de trabajo, así que cree una base de datos .dircolor y personalícela a su gusto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.