26 de marzo de 2015

Cambiar el Prompt de Ubuntu

Trabajando en la terminal muchas veces se nos hace necesario cambiar o volver a configurar el prompt de Linux-Ubuntu, ya sea porque se hace muy largo cuando navegamos a través de los directorios de trabajo o porque no cumple nuestras necesidades.

El prompt de la terminal o consola de linux, es ese texto que aparece como prefijo en nuestra línea de órdenes, por ejemplo: juan@notebookpro: ~/proyectos/proyectos_web$

Disponemos dos formas de cambiar el prompt de la terminal:

  • Cambio temporal.
  • Cambio permamente.

Cómo cambiar el prompt de la terminal

El prompt de la terminal o consola de Linux se maneja con la variable de entorno PS1, en general el prompt viene configurado en Ubuntu, para que muestre la siguiente estructura de información:

user_name@nombre_host:path_del_directorio_actual$

Los caracterés ‘@’, ‘:’ y ‘$’, funcionan como separadores. Es decir, para separar el nombre de usuario con el nombre del host se utiliza el separados ‘@’, pero esto es totalmente configurable como veremos a continuación.

Elementos de configuración de la variable PS1

La variable ‘PS1’ representa al prompt de la terminal, y usa los siguientes secuencias de caracterés, para configurar la información a presentar:

  • \u : representa al nombre de usuario con el cual estamos logeados en ese momento.
  • \h : representa al nombre de Host del equipo al cual estamos conectados.
  • \W: representa al directorio actual, cuando estamos en la raiz del nuestro directorio de usuario, por ejemplo: /home/juan/ este se representará como ~
  • \w: representa a la ruta completa del directorio actual.
  • \d: representa a la fecha actual en formato “jue mar 26”.
  • \t: representa a la hora actual en formato de 24 horas.
  • \@: representa a la hora actual en formato de 12 horas.
  • \n: representa a un salto de línea muy útil cuando deseamos que la visualización de los comando ingresados se vea algo más separada.

Esos son los de uso más frecuente, hay mucho más incluso hay otros caracterés que nos permiten cambiar el color del texto del prompt.

La secuencia de caracterés ‘\u’, que representa al nombre de usuario, se usa el caracterés ‘' para escapara la letra ‘u’. Es decir, si sólo usaramas la letra ‘u’, en el prompt se desplegaría la letra ‘u’ y no el nombre de usuario.

¿Cómo cambiar el prompt temporalmente?

Si deseamos cambiar el prompt temporalmente, sólo debemos desde la línea de comando ejecutar la instrucción para asignar la variable PS1 a la configuración que nos interese, por ejemplo:

PS1="\u@\h:\W$ "

Nos mostrar el prompt con: el nombre de usuario junto al nombre del host separado por el caracter ‘@’ y seguido por el nombre del directorio actual separado en este caso con el caracter ‘:’ e incluyendo al final los caracteres ‘$ ‘.

¿Cómo cambiar el prompt permanentemente?

Para configurar el prompt de la línea de comandos de manera permanente, necesitamos acceder a las preferencias de usuario. Esto se encuentra en el archivo:

~/.bashrc

~/ representa al directorio del usuario, por ejemplo: ‘home/juan/’.

La variable viene establecida en el archivo ‘.bashrc’. Debe buscarla en el archivo y cambiarla según sus preferencias, por ejemplo establecer el patrón: PS1="\t|\u@\h:\W$ "

Una instrucción que podría usar desde la terminal será:

echo 'PS1="\t|\u@\h:\W$ "'  >> ~/.bashrc

Con eso se crear la asignación de la variable PS1 al final del archivo, sobre escribiendo cualquier asignación anterior.
Para ver si efecto, en este caso debe cerrar el terminal y volver a abrirlo.

Eso es todo, es muy simple cambiar el prompt a nuestro gusto en Linux-Ubuntu.

Otras referencias