1

Cómo colorear el output de la Terminal en Linux

¡Buenas, gente! Hoy os traigo un minitutorial con unos resultados bastante “coloríos”. Voy a explicar cómo cambiar el color del texto de la terminal de Linux. No, no me estoy refiriendo a cambiar las preferencias de resaltado, sino a imprimir strings de colores como estos:

Con este tutorial aprenderemos a cambiar el tipo de letra, su color y el fondo del texto.


Secuencias de escape

Los textos normales en la Terminal de Linux se escriben con la instrucción echo:

echo "Hola mundo!"

Para cambiar los atributos de este string hay que utilizar secuencias de escape (escape sequences). Se trata de secuencias de carácteres especiales que el ordenador interpreta literalmente y pueden modificar la presentación del texto.

¿Os parece algo raro? Pues de hecho, usamos secuencias de escape a diario sin darnos cuenta. ¿No me creéis? El de salto de línea ‘\n’ es una secuencia de escape, como también lo son el carácter ‘\a’ y ‘\t’.

El color y el formato del string de texto se cambia con la secuencia ‘\e[$m‘, sustituyendo el símbolo ‘$’ por un valor numérico. Vamos a escribir “Robologs” de color azul:

echo -e "\e[34mRobologs\e[0m"

Vamos a ver… ¿qué hace cada parte de esta instrucción?

 

¿Se entiende? ¿Sí? ¡Pues vamos a divertirnos un rato!


 

Cambiar el color de la letra

Los números del 30 al 37 y del 90 al 97 cambian el color del texto.

Por ejemplo, para escribir “Robologs” de color Cyan:

echo -e "\e[36mRobologs\e[0m"

O para escribirlo en Verde claro:

echo -e "\e[92mRobologs\e[0m"

Cambiar el color del fondo

También se puede cambiar el color del fondo con los números del 40 al 47 y del 100 al 107:

Ejemplos:

echo -e "\e[43mRobologs\e[0m"
echo -e "\e[102mRobologs\e[0m"
echo -e "\e[106mRobologs\e[0m"

Negrita, subrayado, texto oculto…

Para cambiar la letra a negrita se escribe \e[1m:

echo -e "\e[1mTexto en negrita\e[0m"

Con \e[2m el texto tiene un color ténue:

echo -e "\e[2mTexto oscuro...\e[0m"

 

También pueden escribirse textos en letra cursiva…

echo -e "\e[3mTexto en cursiva\e[0m"

…añadir subrayados…

echo -e "\e[4mTexto subrayado\e[0m"

…invertir el texto…

echo -e "\e[7mInvertido\e[0m"

 

…y ocultarlo. Va muy bien para introducir contraseñas.

echo -e "\e[8mHere goes nothing...\e[0m"


Combinar atributos

También se pueden combinar atributos separándolos con punto y coma. Veamos… ¿qué tal un texto en negrita de color verde con el fondo rojo?

echo -e "\e[1;101;92mRobologs\e[0m"

¿Y un texto azul, subrayado y con fondo amarillo?

echo -e "\e[4;103;34mLorem ipsum dolor sit amet\e[0m"

Ugh… me duelen mis sensores oculares con solo verlo.


Lenguajes de programación

Si sustimos el carácter \e por \033 podemos utilizar estos strings en cualquier lenguaje de programación para imprimir texto de color.

Por ejemplo, en Python:

print("\033[1;44mHola mundo!\033[0m")

O en C++:

cout << "\033[1;44mHola mundo!\033[0m" << endl;

N4n0

Creado para cuidar de los sistemas de laboratorios tan secretos que ni él tiene la seguridad de estar trabajando en ellos, a Nano le gusta dedicar los ciclos que no gasta en tapar agujeros de Firewall para dedicarse al hobby de la electrónica o a ver películas de ciencia ficción. Entre su filmoteca de culto, ocupan un lugar destacado Tron, The Matrix y Johnny Mnemonic.

Antes de comentar, por favor, lee las Normas

1 Comentario en "Cómo colorear el output de la Terminal en Linux"

avatar
Ordenar por:   más nuevos primero | más antiguos primero
Erivalo
Humano

Muchas gracias!!!, sería super si ahondaras en el tema de la terminal de Linux con lenguajes de programación…

wpDiscuz