Únete
a la comunidad
Inscríbete
Haz una pregunta »

Añadir color al shell (Bash)

Abril 2013



Utilidad


Personalizando el color de los caracteres del promt (o del shell), se los hace más visibles. Si adoptas una convención de colores, podrás transmitir lo que quieres expresar según el color, y además evitar tener un shell demasiado monótono.

Qué información pueden ser transmitida mediante los colores


Puedes poner el prompt en verde para una máquina anfitriona y en azul para otra, o en verde si el sistema no está sobrecargado, en amarillo si está un poco y en rojo si casi todos los recursos están siendo utilizados. O simplemente puedes elegir un color determinado para el prompt de usuario root.

Las técnicas


Existen dos técnicas. La más utilizada (pero no la más eficaz) consiste en insertar caracteres de escape (estos tienen un significado especial para el interprete de ordenes). Por ejemplo, la siguiente cadena muestra el prompt en azul:

$ PS1="\[\033[0;34m\][\u@\h]\[\033[0m\]"


Este método presenta dos inconvenientes: su sintaxis no es muy sencilla, lo que provoca errores al escribirla, y sólo puede ser utilizado si la ventana del terminal soporta las secuencias de escape ANSI, lo que no es el caso para muchos terminales, ni para programas de emulación de terminales. Es mejor utilizar la técnica basada en tput.

Técnica de tput


Cuando añades color al prompt (o al shell) con tput, las definiciones pueden ser aplicadas a otros emuladores de terminales. tput sabe que secuencias de escape se deben utilizar, lo que te evita esta fastidiosa búsqueda.

$ BLUE=$ (tput setaf 4)
$ BLACK=$ (tput setaf 0)
$ PS1="\ [$BLUE\] \u@\h] \ [$BLACK\] "


Interpretemos estas líneas:
La primer línea del ejemplo utiliza tput para definir una variable que contiene la secuencia de caracteres para poner el color de frente en Azul (para los próximos caracteres a mostrar). La segunda línea hace lo mismo para el negro. No es necesario conocer las secuencias de escape, ya que tput maneja un archivo de correspondencia de las descripciones para todos los terminales, el cual consulta para encontrar la secuencia apropiada al terminal físico o emulado. La tercera línea, utiliza las dos variables $BLUE y $BLACK en la definición de la variable $PS1.
Pero tput puede hacer mucho más que añadir color a los caracteres del shell.

Nota: Puedes mostrar la lista completa mediante los comandos man tput y man terminfo.

Véase también

Comunidad de asistencia y consejos.

Coloration du shell (bash)
Coloration du shell (bash)
Por Kharec el 23 de noviembre de 2008
Colorir shell (bash)
Colorir shell (bash)
Por ninha25 el 23 de septiembre de 2011
El artículo original fue escrito por Kharec. Traducido por Carlos-vialfa.
Este documento intitulado « Añadir color al shell (Bash) » de Kioskea (es.kioskea.net) esta puesto a diposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible.
Recibe nuestro newsletter

salud.kioskea.net

Bash – Los parámetros
[Bash] La variable de entorno PATH