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:
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 |
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 |