Viernes, febrero 18, 2011 9:05
Publicado en la categoría Linux, Tutoriales
Download PDF

El prompt es el carácter o caracteres de la cabecera de cada linea del terminal e indica que está listo para recibir órdenes. El prompt suele mostrar una cierta información, en la shell bash que es la que usamos la mayoría de los usuarios linux; nos muestra el nombre de usuario, el nombre del equipo, el directorio actual en el que nos encontramos y si el usuario tiene privilegios de root o no.

Toda esa información que debe mostrar el prompt se almacena en la variable de entorno $PS1. Para verla basta con teclear en el terminal ‘echo $PS1′ y saldrá algo como esto:

[usuario@equipo ~]$ echo $PS1
[\u@\h \W]\$

Como se puede apreciar no muestra ni el nombre de usuario ni el host, ni nada directamente, esto es porque lo hace mediante secuencias de escape (\u, \h, \t, etc.), de esta manera se forma el prompt. Estas son las secuencias de escape que podemos utilizar:

  • \a un caracter ASCII de ring(sonido)
  • \d la fecha actual en formato “dia_sem mes día”, “dom nov 18″
  • \e un caracter ASCII de escape
  • \h el nombre del equipo hasta el primer “.”, ejemplo linuxtotal de linuxtotal.com.mx
  • \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 formaro de 12 horas con am/pm
  • \u el usuario actual
  • \v la version 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

Mirando nuestro prompt vemos que nos muestra el usuario (\u) el host (\h) el directorio actual (\W) y si el usuario es root (\$). Para modificarlo a nuestro gusto solo debemos añadir las secuencias de escape en donde queramos. Por ejemplo, quiero que me muestre al final entre paréntesis la hora actual en 24h, tendríamos que añadir al final de la variable PS1 la secuencia de escape \t de la siguiente manera:

[usuario@equipo ~]$ PS1='[\u@\h \W]\$(\t) '
[usuario@equipo ~]$(16:15:20)

Es importante utilizar las comillas simples (‘) al principio y al final para indicar que todo lo que hay entre ellas es lo que queremos guardar en PS1. No se debe usar las comillas dobles porque entonces interpreta de diferente manera algunas secuencias de escape como \$, que en vez de mostrar si el usuario es root o no, interpreta que queremos poner el carácter $.

¿Qué pasa si ahora cerramos el terminal o abrimos otro? Si ahora cerramos el terminal, cuando volvamos a abrirlo no aparecerá el prompt modificado, aparecerá el prompt que teníamos antes. Para que no pase esto debemos guardarlo pero… ¿dónde? pues eso depende, si quieres que el prompt quede modificado para todos los usuarios hay que guardarlo en el archivo /etc/bashrc y si quieres que sólo afecte a tu usuario se debe guardar en el archivo .bashrc que esta en la carpeta personal de tu usuario”/home/usuario”.

Para todos los usuarios basta con escribir la siguiente instrucción:

[usuario@equipo ~]$ export PS1='[\u@\h \W]\$(\t) '
[usuario@equipo ~]$(16:15:20)

Y para tu usuario personal lo siguiente:

[usuario@equipo ~]$ echo PS1='[\u@\h \W]\$(\t) ' >> ~/.bashrc
[usuario@equipo ~]$(16:15:20)

Ahora ya podemos disfrutar de nuestro prompt personalizado.

Deja un comentario