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 de las distribuciones de Linux modernas (si no todas). Sin embargo, es posible que haya notado que el color del texto en el terminal y el contenido del mensaje pueden ser diferentes de una distro a otra.

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

La variable de entorno de 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 indicador principal que se muestra cuando el shell está listo para leer un comando.

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

Para ilustrar, muestre 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: the username of the current user.
  2. \h: the hostname up to the first dot (.) in the Fully-Qualified Domain Name.
  3. \W: the basename of the current working directory, with $HOME abbreviated with a tilde (~).
  4. \$: If the current user is root, display #, $ otherwise.

Por ejemplo, podríamos 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 en nuestro entorno actual ejecutando este comando:

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

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

Ahora vamos a dar un paso más y cambiar el color del usuario y nombre de host en el símbolo del sistema, tanto el texto como el fondo que lo rodea.

En realidad, podemos personalizar 3 aspectos del prompt:

Usaremos el carácter especial \ e al principio y 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 un valor, se asume el valor predeterminado) .

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

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

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

Tan bueno como se ve, esta personalización solo durará para 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 según su distribución:

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

Siéntase libre de jugar con los colores para encontrar lo que mejor se adapte a usted.

En este artículo, hemos explicado cómo personalizar el color y el contenido de su mensaje 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!