• Lun - Vie : 08:00 - 18:00

Mi Blog

Cómo personalizar el prompt de Bash en GNU/Linux

Cómo personalizar el prompt de Bash en GNU/Linux

(Tiempo estimado: 5 - 10 minutos)

Personalizar el prompt de un equipo GUN/Linux es sumamente fácil y hace que el trabajo en la terminal sea mas vistoso y "cool". El prompt típico de GNU/Linux es tosco y sencillo, pero puede ser personalizado casi tanto como queramos.

Seguid leyendo y os enseñaré como personalizar el prompt de vuestro sistema de forma rápida y sencilla...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 HAZ CLICK AHORA 🔥

 

 

¿QUÉ ES EL PROMPT?

El prompt en la shell de linux es la información o el símbolo que se encuentra antes del cursor, es decir donde empezamos a escribir los comandos que ingresamos a la shell. En cada distribución de Linux este viene por default de una forma diferente, y dentro de la misma distribución los usuarios suelen personalizar el prompt de muchas maneras.

 

 

El Prompt de GNU/Linux puede ser personalizado casi sin límites

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con cualquier distribución de GNU/Linux

 

 

2.- EL PROMPT MÁS HABITUAL

La forma más habitual de un prompt en el shell Bash de GNU/Linux es el siguiente:

usuario@equipo:~$

  

 

Si queremos guardar de forma permanente los cambios del prompt, podemos hacerlo guardando la variable PS1 (hablaremos de ella mas adelante) en dos ficheros diferentes. Hay que tener en cuenta que cada uno de ellos se carga de forma diferente:

  • .bash_profile se ejecuta una sola vez, cuando inicias sesión.
  • .bashrc se ejecuta cada vez que inicias el intérprete bash.

 

 

3.- SECUENCIAS DE ESCAPE

Para personalizar el prompt, necesitaremos utilizar lo que se conocen como "secuencias de escape". Las secuencias de escape más comunes y habituales son las siguientes:

  • \u : Nombre del usuario actual.
  • \h : Nombre del host hasta el primer punto (.), por ejemplo, andromeda del host andromeda.rpf.com.
  • \H : Nombre del host completo.
  • \w : Path del directorio de trabajo actual.
  • \W : Nombre del directorio de trabajo actual.
  • \d : Fecha actual en formato (día_semana mes día, lun jul 27.
  • \t : Hora actual en formato 24 horas (HH:MM:SS).
  • \T : Hora actual en formato 12 horas (HH:MM:SS).
  • \@ : Hora actual en formato 12 horas (am/pm).
  • \n : Nueva línea.
  • \r : Retorno de carro (enter/intro).
  • \s : Nombre de la shell.
  • \v : Versión de bash.
  • \V : Numero de la release de bash.
  • \! : Número en el historial del comando ejecutado.
  • \# : Número de comando de este comando.
  • \$ : Si se trata de un usuario normal, aparece un $. Si se trata del usuario root, aparece un #.
  • \\ : Barra diagonal.
  • \[ : Inicio de una secuencia de caracteres no imprimibles.
  • \] : Fin de una secuencia de caracteres no imprimibles.
  • Texto o carácter: Escribimos el texto o carácter que deseamos que aparezca sin la barra (\

 

 

4.- PERSONALIZAR EL PROMPT

Para personalizar el prompt durante las pruebas, sin afectar al prompt que tenemos actualmente configurado, es tan sencillo como asignarle un valor a la variable PS1 del sistema y ver si realmente es lo que queremos. Si no nos gusta el resultado, no pasa nada ya que los cambios no se aplican en el sistema. Por ejemplo, el prompt del sistema de mi Hosting es el siguiente:

(uiserver):u12191219:~$

 

 

Para hacer una primera prueba ejecutaremos lo siguiente:

(uiserver):u12191219:~$ export PS1="prueba > "

 

 

Ahora el prompt tiene esta forma (que no es nada útil):

prueba > 

 

 

El cambio anterior solo afecta a la sesión actual y no se queda guardada en el sistema. Por tanto, vamos a buscar una configuración que nos guste utilizando las secuencias de escape vistas anteriormente. Ahora vamos a crear un prompt de la siguiente forma: usuario@host:~$ , para ello ejecutaremos lo siguiente: 

(uiserver):u12191219:~$ export PS1="\u@\h:\w\$ "

 

 

Ahora, el prompt que tenemos es el siguiente:

u12191219@infong1902:~$

 

 

Si queremos un prompt un poco mas visual y llamativo, podemos jugar con las secuencias de escape para crear algo como [usuario|host]:(/ruta)$:

[u78190914|infong1630]:(~/includes)$

 

 

El prompt anterior se ha creado con la variable PS1 tomando el siguiente valor:

export PS1="[\u|\h]:(\w)\$ "

 

  

Si queremos guardar los cambios de forma permanente para un usuario en concreto, añadiremos la línea completa export PS1="[\u|\h]:(\w)\$ " en el fichero ~/.bashrc del usuario al cual queremos cambiar el prompt. Cuidado si ya existen otras declaraciones de la variable PS1 en dicho fichero. Para cargar la configuración debemos ejecutar el comando source ~/.bashrc.

 

 

5.- CAMBIAR LOS COLORES DEL PROMPT

Para cambiar el color del prompt, debemos seguir una sintaxis concreta basada en el siguiente patrón:

'\e[x;ym $PS1 \e[m'

Donde:

  • \e[ : Inicio del perfil de color
  • x;y : Par de colores (x;y)
  • $PS1 : El prompt
  • \e[m : Fin del perfil de color

 

 

A continuación se detallan los códigos de color en la siguiente table:

Color Código
Negro 0;30
Azul 0;34
Verde 0;32
Cyan 0;36
Rojo 0;31
Púrpura 0;35
Marrón 0;33

Nota: Si reemplazamos el 0 por 1 para que el color sea mas "suave".

 

 

Por ejemplo, si queremos crear un prompt todo en color rojo, utilizaremos el siguiente valor para la variable PS1:

(uiserver):u12191219:~$ export PS1='\e[1;31m[\u@\h \w]\$\e[m'

[u78190914@infong1630 ~]$

 

 

Si queremos un prompt un poco más colorido (y complejo), podemos utilizar algo así , usuario @ host : ~ ]$  :

(uiserver):u12191219:~$ export PS1='\e[1;31m[\e[m\e[1;32m \u\e[m\e[1;33m @ \e[m\e[1;34m\h\e[m : \e[1;35m\w \e[m\e[1;31m]\e[m\$'

[ u78190914 @ infong1630 : ~ ]$

Aunque también es posible cambiar el fondo del prompt, su uso no es muy habitual y por eso no se ha sido incluido en este tutorial.

 

 

ENJOY!


⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 HAZ CLICK AHORA 🔥
  linux , shell , gnu
  Shells
Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

No tienes permisos para escribir comentarios. Debes autenticarte con Facebook, Linkedin, Twitter o Google.

VIP RPF

Apúntate Gratis

Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más.... ¡Muy Pronto!
  • Lun - Vie : 08:00 - 18:00