Cómo personalizar los colores y el contenido de Bash en el indicador de terminal de Linux


Hoy en día, Bash es el shell predeterminado en la mayoría (si no en todas) las distribuciones modernas de Linux. Sin embargo, es posible que haya notado que el color del texto en la terminal y el contenido del mensaje pueden ser diferentes de una distribución a otra.

En caso de que se haya estado preguntando cómo personalizar esto para una mejor accesibilidad o un mero capricho, siga leyendo; en este artículo le explicaremos cómo hacerlo.

La variable de entorno PS1 Bash

El símbolo del sistema y la apariencia del terminal se rigen por una variable de entorno llamada PS1 . De acuerdo con la página de manual de Bash, PS1 representa la cadena de solicitud principal que se muestra cuando el shell está listo para leer un comando.

El contenido permitido en PS1 consta de varios caracteres especiales de escape con barra invertida cuyo significado se enumera en la sección PROMPTING de la página de manual.

Para ilustrarlo, mostremos el contenido actual de PS1 en nuestro sistema (esto puede ser algo diferente en su caso):

$ echo $PS1

[\[email protected]\h \W]$

Ahora explicaremos cómo personalizar PS1 según nuestras necesidades.

De acuerdo con la sección PROMPTING en la página de manual, este es el significado de cada carácter especial:

  1. \u: el nombre de usuario del usuario actual.
  2. \h: el nombre de host hasta el primer punto (.) en el nombre de dominio completo.
  3. \W: el nombre base del directorio de trabajo actual, con $HOME abreviado con una tilde (~).
  4. \$: Si el usuario actual es root, muestre #, $de lo contrario.

Por ejemplo, es posible que queramos considerar agregar \! si queremos mostrar el número de historial del comando actual, o \H si queremos mostrar el FQDN en lugar de el nombre corto del servidor.

En el siguiente ejemplo, importaremos ambos a nuestro entorno actual ejecutando este comando:

PS1="[\[email protected]\H \W \!]$"

Cuando presione Entrar, verá que el contenido del mensaje cambia como se muestra a continuación. Compare el mensaje antes y después de ejecutar el comando anterior:

Ahora vayamos un paso más allá y cambiemos el color del usuario y el nombre de host en el símbolo del sistema, tanto el texto como el fondo que lo rodea.

De hecho, podemos personalizar 3 aspectos del mensaje:

Usaremos el carácter especial al principio y un m al final para indicar que lo que sigue es una secuencia de colores.

En esta secuencia, los tres valores (fondo, formato y primer plano) están separados por comas (si no se da ningún valor, se asume el predeterminado).

Además, dado que los rangos de valores son diferentes, no importa cuál (fondo, formato o primer plano) especifique primero.

Por ejemplo, el siguiente PS1 hará que el mensaje aparezca en texto subrayado en amarillo con fondo rojo:

PS1="\e[41;4;33m[\[email protected]\h \W]$ "

Por muy bueno que parezca, esta personalización solo durará la sesión de usuario actual. Si cierra su terminal o sale de la sesión, los cambios se perderán.

Para que estos cambios sean permanentes, deberá agregar la siguiente línea a ~/.bashrc o ~/.bash_profile dependiendo de su distribución:

PS1="\e[41;4;33m[\[email protected]\h \W]$ "

Siéntase libre de jugar con los colores para encontrar el que mejor se adapte a sus necesidades.

En este artículo, hemos explicado cómo personalizar el color y el contenido de su indicador de Bash. Si tiene preguntas o sugerencias sobre esta publicación, no dude en utilizar el formulario de comentarios a continuación para comunicarse con nosotros. ¡Esperamos con interés escuchar de usted!