Búsqueda de sitios web

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, habrás notado que el color del texto en el terminal y el contenido del mensaje pueden ser diferentes de una distribución a otra.

Lectura sugerida: Los cinco shells de código abierto más utilizados para Linux

En caso de que te hayas preguntado cómo personalizar esto para una mejor accesibilidad o simplemente por capricho, sigue leyendo; en este artículo te 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. Según la página de manual de Bash, PS1 representa la cadena de aviso 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 invertida cuyo significado aparece en la sección PROMPTING de la página de manual.

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

echo $PS1

[\u@\h \W]$

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

Personalizando el formato PS1

Según la sección INDICACIONES de 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, muestra #, $ en caso contrario.

Por ejemplo, podemos considerar agregar \! si queremos mostrar el número del 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="[\u@\H \W \!]$"

Cuando presione Enter 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 del 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 mensaje:

Text Format Foreground (text) color Background color
0: normal text 30: Black 40: Black
1: bold 31: Red 41: Red
4: Underlined text 32: Green 42: Green
33: Yellow 43: Yellow
34: Blue 44: Blue
35: Purple 45: Purple
36: Cyan 46: Cyan
37: White 47: White

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

Lectura sugerida: Aprenda las secuencias de comandos de Bash Shell en Linux

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 amarillo subrayado con fondo rojo:

PS1="\e[41;4;33m[\u@\h \W]$ "

Por muy buena que parezca, esta personalización solo durará la sesión del usuario actual. Si cierras tu terminal o sales 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[\u@\h \W]$ "

Siéntete libre de jugar con los colores para encontrar el que funcione mejor para ti.

Resumen

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