Añadir color al shell (Bash)



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.

PD: El artículo original fue escrito por Kharec, contribuidor de CommentCaMarche
Publicado por Carlos-vialfa - última actualización el 26 de junio de 2009, 21:54 por Carlos-vialfa
Este documento intitulado « Añadir color al shell (Bash) » de Kioskea.net (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.
Sugerencias
  •  Añadir color al shell (Bash)
  •  (bash)Añadir una linea en blanco despues de > (Resuelto) » Hola, como haría para insertar unha línea en blanco después del signo > No consigo que funcione con la instrución sed '/.\{80\}/!{/\>$/G;}' fichero aunque si con otros signos como ? : sed '/.\{80\}/!{/\?$/G;}' fichero Configuración: Linux / Firefox 6.0.2
  •  Todos los colores » Artículos : Codificación de colores En HTML, los colores se definen mediante tres números hexadecimales que representan los tonos rojo, azul y verde, usando la codificación RGB) del color elegido. Esta es la sintaxis para codificar un color en HTML:...
  •  Luz y color » Artículos : ¿Qué es la luz? La luz es una forma de energía que tiene dos aspectos: un aspecto de onda electromagnética un aspecto corpuscular (fotones) La luz emitida por el sol viaja a una velocidad de aproximadamente 300.000 km/s con una frecuencia de...
  •  Archivo dll común del shell de windows » Descargar : DLL Archive es una aplicación muy fácil de usar. Utilizándolo seremos capaces de eliminar los archivos de extensión .dll que ya no necesitamos en el ordenador. Sólo basta con correr la aplicación, luego se nos presentará una lista completa de todos...
  •  Shell linux » Artículos : Introducción a la shell El intérprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razón, se le da el nombre inglés "shell", que significa "caparazón". Por lo tanto, la shell actúa como un intermediario entre el...
Bash – Los parámetros
[Bash] La variable de entorno PATH