El shell esta lleno comandos muy poco usados, uno de estos es , que permite cambiar las características o capacidades disponibles para la terminal, disponibles a través de la base de datos llamada terminfo. Entre las características (hay bastantes) que podemos modificar de una terminal están el color de fondo y de frente (background y foreground) del texto a través de las siguientes opciones:
- setaf [0-7] cambia el color de frente
- setab [0-7] cambia el color de fondo
- bold modo negritas
- dim modo de poco brillo
- sgr0 apaga las características o atributos que se hayan indicado previamente
En cuanto a los códigos de color son los siguientes
- 0 negro
- 1 rojo
- 2 verde
- 3 cafe
- 4 azul
- 5 morado
- 6 cyan
- 7 gris
Puedes probar en una terminal escribiendo lo siguiente: y el texto se cambiará a rojo y puedes añadir por ejemplo un fondo verde
y te dará un fondo verde para el text. Asi que digamos, en base al prompt anterior, que se desea la hora en rojo y negritas, esto lo haría:(20:05:52)[sergon-~]$> PS1='\[$(tput setaf 1)(\t)$(tput sgr0)\][\u-\W]\$> ' [sergon-~]$>
por partes:
No es tan complicado una vez que entendimos lo que sucede. Y es posible agregar más características en un sola invocación de $(), .
Ahora bien, una vez cambiado tu prompt, este no permanecerá así, si cierras la sesión o la terminal y vuelves a ingresar, notarás que sigues con tu mismo y aburrido prompt de siempre, el cambio a la variable PS1 hay que agregarlo a tu archivo de inicialización de tu sesión, generalmente '.bashrc' o '.bash_profile', incluso podrías poner los colores en variables, para facilitar el uso de la definición de PS1:
# se añade lo siguiente a .bashrc # colores del texto rojo=$(tput setaf 1) verde=$(tput setaf 2) # colores de fondo azulF=$(tput setab 4) grisF=$(tput setab 7) # sin color sc=$(tput sgr0) PS1='\[$rojo(\t)$sc\][\u-\W]\$> '
Pues ahí lo tienes, ahora cambia tu prompt a algo que te agrade más a ti y te sea más útil.