Como Personalizar el Aspecto del Prompt de Bash en Linux

Puede que alguna vez te hayas fijado que en algunas distribuciones GNU/Linux como OpenSuse, el prompt de la terminal se muestra en un color diferente respecto de los comandos. Esto es muy agradable a la vista y permite identificar muy bien donde empieza y acaba un comando.

En la mayoría de distros, sin embargo, el prompt siempre se muestra en el mismo color que el resto de texto. Aun así, en GNU/Linux casi todo se puede configurar, así que si te interesa saber como poder personalizar un poco más el aspecto del prompt, en estas líneas te cuento como.

Anuncios

Configura el Prompt de Bash a tu Gusto

En la mayoría de distribuciones, la shell que se usa como interprete de comandos es Bash, por lo que para configurar cualquier aspecto relativo al prompt hay que acceder a uno de los archivos de configuración de Bash y tocar algunos parámetros. Esto tendrá un efecto tanto sobre las terminales TTY (acceder con Ctrl+Alt+f1 a f7) como en la aplicación de escritorio, ya que en ambos casos estamos hablando de Bash.

Definir que se muestre el prompt en color

Cuando hablamos de personalizar el prompt lo primero que se nos puede ocurrir es hacer que se muestre el prompt de color.

  • Dirigirte a tu carpeta personal dentro de /home y pulsar Ctrl-H para que se muestren todos los archivos y carpetas ocultas.
  • Localizar el archivo de configuración de Bash, que en este caso es .bashrc.
Archivo de configuracion de Bash
  • Hacer clic derecho sobre el archivo y seleccionar abrirlo con Gedit, o con cualquier editor de texto, en caso de que uses otro.
  • En el archivo de configuración, localizar la línea de texto 46, dónde pone «force_color_prompt=yes» y quitar el comentario de delante de la línea (borrar el símbolo #).
Descomentar linea force color prompt
  • Al hacer esto se aplicara el color definido por defecto, que es un color verdoso.

Personalizar aún más el aspecto del prompt

Si más allá de eso, lo que quieres es poder personalizar un poco más el aspecto del prompt, aquí van algunos trucos fáciles con los que puedes ir jugando un poco.

El fichero de configuración de Bash almacena todos los parámetros de configuración del prompt en una variable denominada PS1. Eso significa que para modificar el aspecto de prompt, incluyendo el color, lo único que debemos hacer es personalizar los parámetros de PS1.

Para hacer modificaciones en el contenido de la variable PS1, deberás dirigirte en la sentencia if else que va de la linea 59 a la 64. Por defecto, la secuencia mostrada en Ubuntu debería ser algo parecido a esto:

if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

En esta sentencia, debajo del if se define la variable PS1 en caso de que se haya habilitado el color (descomentado la línea force_color_prompt=yes), mientras que debajo de else se define la misma variable pero en caso de que el color se haya deshabilitado.

Como ves, en caso de que el color este habilitado, la variable PS1 tiene un aspecto como un poco complejo de entender:

PS1='${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]\$ '

En este caso, la información más relevante que debes conocer, y que te permitirá a posteriori hacer tus modificaciones, es la siguiente.

  • \u@  –  El nombre de usuario logueado seguido del símbolo @.
  • \h  –  El nombre de host.
  • \w  –  El directorio de trabajo actual.

El color se define en código ANSI delante de cada uno de los parámetros que hemos visto. Por defecto, podemos ver que el nombre de usuario y el nombre de host se muestran en color verde [33[01;32m\], los dos puntos se muestran en blanco [33[00m\], y el directorio de trabajo en un color azulado [33[01;34m\]

A continuación tienes algunos parámetros adicionales que puedes utilizar para que se muestren en el prompt:

  • \d  –  Fecha  actual en formato <sabado septiembre 26>
  • \j  –  Número de tareas ejecutadas por la terminal
  • \v  –  Versión de Bash

Y para los colores, debajo tienes un pequeño listado de colores con su correspondiente código ANSI:

  • 01;37  –  Blanco
  • 00;37  –  Gris claro
  • 01;32  –  Verde claro
  • 01;34  –  Azul celeste
  • 01;31  –  Rojo
  • 00;30  –  Negro

Antes de hacer modificaciones a la variable PS1, es mejor inhabilitar la primera linea donde se define PS1 con un # al inicio de línea, por tal de que no sea leída por Bash, y definir nuestra propia variable personalizada en la siguiente línea, que es la que será leída por el programa.

Con esto ya tienes bastante juego para ir probando con diferentes combinaciones de parámetros y colores hasta dar con la combinación que te guste más. Un ejemplo sería el que ves debajo:

if [ "$color_prompt" = yes ]; then
 #PS1='${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]\$ '
 PS1='${debian_chroot:+($debian_chroot)}\[33[01;34m\]\u@\h[33[00m\]:\[33[01;32m\]\w\[33[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

Haciéndolo de este modo, si quieres volver al estado por defecto, será tan sencillo como borrar descomentar la línea donde se define inicialmente PS1, y comentar la que hemos añadido nosotros.

Si quieres profundizar más sobre esto, tienes muchos más detalles sobre los diferentes parámetros y posibilidades de configuración del prompt de Bash en esta guía de la web de Cyberciti.

Últimas Consideraciones

Lo bueno del proceso es que al aplicarse directamente a Bash, sirve tanto para la terminal de escritorio, como para las terminales TTY. El resultado puede llegar a ser francamente bueno.

Una consideración es que, teniendo en cuenta que has editado el fichero de configuración de Bash de tu cuenta de usuario, los cambios solo se aplicarán cuando estés logueado en la terminal desde tu usuario estándar. Cuando pases a root, el prompt se seguirá viendo como se veía por defecto.

Esto es una manera muy visual y rápida de distinguir entre el prompt de tu usuario normal y el prompt de root o superusuario.

Para acabar, si te ha gustado el artículo me será de gran ayuda si lo compartes en Facebook o Twitter, y si tienes alguna duda, o algo que quieras añadir al post, no dudes en comentar debajo. Hasta la próxima;)

Categorías LinuxEtiquetas

3 comentarios en “Como Personalizar el Aspecto del Prompt de Bash en Linux

  1. Edgar Castillo Guatemala 9 Jun 2023 — 16:56

    muy bien me funciono, pero cuando se reinicia mi servidor ubuntu 20.04, deja de verse de colores, hasta que vuelvo a darle el comando «source ~/.bashrc».

    Como hago que aunque se reinicie la maquina, siga viendose de colores sin necesidad de ejecutar el source

    Me gusta

  2. ¡Fantástico!
    Hacía años que no trasteaba con estas cosas, jeje (Desde los tiempos del PCM) :-)

    Me gusta

    1. Jejeje, me alegra saberlo Henry!
      Hasta otra;)

      Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.

search previous next tag category expand menu location phone mail time cart zoom edit close