Personalizando el prompt de bash

Por leprosys en 2/03/2009 ,


Cuando se trabaja con frecuencia en la terminal es bueno tenerla con una apariencia que nos agrade o con un aspecto que nos sea de mayor utilidad.

Antes de empezar es prudente explicar algunas cosas, como ¿que es el prompt? fuera de lo que podemos encontrar en Internet, el prompt es lo primero que vemos en una terminal y por lo general contiene el nombre de usuario, el host y el carácter que dice el tipo de usuario es. Ejemplo: usuario@host:~$

Existen 4 variables en la shell las cuales son: S1, PS2, PS3 y PS4, la que nos interesa es PS1 porque es la principal, para saber cual es la configuración actual de cada variable lo hacemos con el comando "echo $PS1".

Ahora entramos a la modificación y creación de nuestro prompt personalizado.

Los archivo a modificar son .bashrc de tu usuario/s y la de root los dos se encuentran en sus respectivas rutas ~/ así que lo primero que haremos es ir la home del usuario:
$ cd ~/

Y ahora modificar el archivo:
$ vim .bashrc

En Debian hay que des-comentar la siguiente opción:
force_color_prompt=yes

Y ahora comentamos la entrada original de PS1 si así lo deseamos para modificarla con una personaliza, la linea empieza así # PS1='

¿Y podemos personalizarlo como?

Pues con la siguiente tabla pueden crearse su prompt personalizado y con colores, esta a su imaginación:

\a un carácter ASCII de ring
\d la fecha actual en formato "dia_sem mes día"
\e un carácter ASCII de escape
\h el nombre del equipo hasta el primer .
\H el nombre del equipo
\n nueva línea
\r retorno de carro, enter
\s el nombre del shell
\t el tiempo actual en formato de 24 horas HH:MM:SS
\T el tiempo actual en formato de 12 horas HH:MM:SS
\@ el tiempo actual en formato de 12 horas con am/pm
\u el usuario actual
\v la versión de bash
\V el número de release de batch, versión + parche
\w el directorio de trabajo actual, path
\W el nombre del directorio actual
\! el número en el historial del comando
\# el número de comando de este comando
\$ si el usuario es root (UID=0) se indica un '#', un usuario normal '
\\ diagonal
\[ inicio de una secuencia de caracteres no imprimibles
\] fin de la secuencia de caracteres no imprimibles

Colores:
0;30 Negro
1;30 Gris oscuro
0;31 Rojo
1;31 Rojo claro
0;32 Verde
1;32 Verde claro
0;33 Marrón
1;33 Amarillo
0;34 Azul
1;34 Azul claro
0;35 Morado
1;35 Morado claro
0;36 Cyan
1;36 Cyan claro
0;37 Gris claro
1;37 Blanco

¿Y ahora que lo cree que?
Con el comando export probamos si lo que hemos echo funciona y sin correr riesgo de arruinar algo:
$ export PS1='aquí va tu código'
Modificara el prompt actual.

Ahora ya seguro modificamos el archivo .bashrc (mencionado antes) y sustituimos lo que tenga PS1 por el personalizado.

Mi prompt que es la imagen de arriba tiene la siguiente linea de configuración:
# PS1='\[\e[01;32m\]\u\[\e[01;34m\]@\[\e[01;31m\]\h \[\e[00;34m\][ \[\e[01;34m\]\w \[\e[00;34m\]]\[\e[01;32m\]-> \[\e[00m'

Abre una nueva terminal para ver que funciona. Enjoy!!!

Para mayor información:

Back Top