Toda la configuracion del prompt se guarda en la variable $PS1, si queréis ver como está
actualmente lo podréis hacer con 'echo $PS1' desde consola.
En primer lugar hay que destacar dos aspectos a la hora de visualizar el prompt: qué
vamos a visualizar y cómo lo haremos.
Dentro del prompt del sistema se puede mostrar gran cantidad de información: como el
usuario activo, el nombre de host, el directorio actual, la fecha y hora, la versión de
Bash y si el usuario actual es root o no. Todo ello está disponible en la siguiente
tabla, extraída y traducida del Bash-Prompt HOWTO.
| \a |
carácter de campana ASCII (07) |
| \d |
la fecha en el formato "DíaDeLaSemana Mes DíaDelMes" (p.e., "Tue May 26") |
| \e |
carácter de escape ASCII (033) |
| \h |
el nombre de host a partir del primer '.' |
| \H |
el nombre de host |
| \j |
el número de trabajos de la shell |
| \l |
el número de la shell activa |
| \n |
nueva línea |
| \r |
retorno de carro |
| \s |
el nombre de la shell |
| \t |
la hora en formato 24-horas HH:MM:SS |
| \T |
la hora en formato 12-horas HH:MM:SS |
| \@ |
la hora en formato 12-horas am/pm |
| \u |
el usuario activo |
| \v |
la versión de bash (p.e., 2.00) |
| \V |
la release de bash, versión + patchlevel (p.e., 2.00.0) |
| \w |
la ruta completa del directorio de trabajo actual |
| \W |
el directorio de trabajo actual |
| \! |
el número en el historial de este comando |
| \# |
el número de comando |
| \$ |
si el UID es 0, visualiza #, si no lo es, visualiza $ |
| \nnn |
el carácter correspondiente al número octal nnn |
| \\ |
contrabarrra |
| \[ |
comienza una secuencia de caracteres no imprimibles que puede usarse para ejecutar un comando en el prompt |
| \] |
finaliza una secuencia de caracteres no imprimibles |
De esta manera si ejecutamos en una consola:
[mxyzptlk@SKYNET mxyzptlk]$ PS1="[\u@\h \W\]$ "
[mxyzptlk@SKYNET mxyzptlk]$
obtendremos el prompt anterior.
Para ponerle colores solo hay que usar '\[033[bb;c;ccm\]', donde 'bb' será el color de
fondo, y 'c;cc' el color del texto. Hay que destacar que una vez puesto lo anterior se
mantiene durante todo el prompt así que hay que usar varias veces el '\[033'. Yo siempre
pongo al final de toda la línea '\[\033[0;0m\]', que restaurará los colores originales.
Los colores del texto son los siguientes:
| Negro |
0;30 |
Gris Oscuro |
1;30 |
| Azul |
0;34 |
Azul Claro |
1;34 |
| Verde |
0;32 |
Verde Claro |
1;32 |
| Cyan |
0;36 |
Cyan Claro |
1;36 |
| Rojo |
0;31 |
Rojo Claro |
1;31 |
| Morado |
0;35 |
Morado Claro |
1;35 |
| Marrón |
0;33 |
Amarillo |
1;33 |
| Gris Claro |
0;37 |
Blanco |
1;37 |
Ahí va un ejemplo, que es lo que actualmente tengo en mi ordenador:
PS1="\[\033[1;37m\][\[\033[0;32m\]\u\[\033[1;37m\]@\[\033[1;34m\]\h\[\033[41;1;33m\]\W\[\033[0;1;37m\]]\$ \[\033[0;0m\]"
Pero todo esto no sirve de nada si se quiere mantener la próxima vez que hagamos un
login. Para ello hay que poner la línea completa en ~/.bashrc o en ~/.bash_profile. La
diferencia de ponerlo en uno y otro archivo radica en que bashrc carga cada vez que se
hace login o se abre una teminal en X, como Konsole; bash_profile únicamente carga al
hacer un login en la máquina, si durante la sesión modificamos PS1 los cambios se guardarán
hasta que hagamos un logout.
Aunque parezca complicado os invito a que probéis combinaciones, un color que resalte
puede ayudar en multitud de ocasiones a aclararnos las cosas. |