Cómo personalizar el mensaje de Bash Terminal en Debian 10
El shell de bash Linux proporciona muchas opciones de personalización para el mensaje que puede usar no solo para incorporar varias funciones en el mensaje, sino también para diferenciarlas mediante diferentes colores.
En este artículo, usaremos varios ejemplos para personalizar y cambiar el color del mensaje de nuestra aplicación Terminal que le permitirá hacer lo mismo según sus necesidades. Contamos con los comandos y procedimientos descritos en este artículo en un sistema Debian 10 Buster.
Ver la configuración actual del mensaje Bash
Cuando abre su Terminal a través de la búsqueda del Lanzador de aplicaciones Debian, verá el siguiente mensaje:
username@hostname:directory$
Este formato predeterminado enumera el nombre de usuario, el nombre de host y luego el directorio actual del usuario. Bash recoge esta configuración del archivo bashrc que se configura individualmente para cada usuario en su directorio de inicio. Así es como puede abrir este archivo:
nano ~/.bashrc
Ubicación: /home/nombre de usuario/.bashrc
También puede utilizar cualquier otro editor de texto para abrir este archivo.
Así es como se ve este archivo de configuración. Le mostramos la parte relevante del archivo aquí.
La variable PS1 que ve en la imagen de arriba tiene toda la configuración requerida para el indicador de bash. Primero expliquemos qué indican los caracteres de esta variable. Puede ver esta variable claramente en la variable PS1 que aparece después de la declaración else.
- \u-Esto indica el nombre de usuario del usuario actual
- \h: Esto indica el nombre de host del usuario actual extraído del nombre de dominio completo.
- \w: Esto indica el directorio de trabajo actual. Su directorio de inicio se indica con un símbolo de tilde ~.
- \$] indica si eres un usuario normal ($) o un usuario root (#).
También puede ver la configuración de la variable PS1 haciendo eco de su valor de la siguiente manera:
echo $PS1
Personalizar el mensaje Bash
Después de ver dónde se almacena la información del mensaje y qué describe la variable PS1, veamos cómo se puede editar para personalizar nuestro mensaje de bash.
Antes de editar la variable PS1, es importante almacenar su contenido predeterminado en una nueva variable. Esto nos ayudará a restaurar el mensaje a su configuración original si algo sale mal. Ingrese el siguiente comando en su Terminal:
DEFAULT=$PS1
Ahora la variable "DEFAULT" tiene toda la información que necesitamos para recuperar nuestra configuración de aviso predeterminada.
Experimentemos ahora un poco con nuestra variable PS1. Ingrese el siguiente comando:
PS1="\u\$ "
Este nuevo valor de PS1 tiene el siguiente efecto en su mensaje:
Solo puede ver su nombre de usuario y la información de usuario raíz sin ningún color, ya que aún no se ha establecido ninguna información de color.
Ingresemos el siguiente comando para que nuestro mensaje también muestre nuestro directorio de trabajo
PS1="\u:\w\$ "
Este nuevo valor de PS1 tiene el siguiente efecto en su mensaje:
Como mi directorio de trabajo era el de inicio, solo podía ver el símbolo ~. En algún otro directorio, diga "Imágenes", mi mensaje mostrará la siguiente información:
Establecer el mensaje nuevamente al valor predeterminado
Dado que habíamos almacenado la configuración original de la variable PS1 en la variable DEFAULT, podemos restablecer el valor de PS1 al valor predeterminado alimentándolo con el valor de nuestra variable DEFAULT.
¿Qué más puedes personalizar?
Si desea que su mensaje contenga un texto personalizado específico, puede utilizar la siguiente sintaxis:
PS1="[custom text] \u@\h:\w\$ "
Ejemplo:
He configurado mi mensaje para incluir un mensaje personalizado de la siguiente manera:
Puede incorporar los siguientes caracteres básicos en su mensaje:
- Character
Propósito
- \d
La fecha en formato día mes.
- \e
El personaje de la campana.
- \a
El personaje de fuga.
- \h
El nombre de host del usuario actual hasta '.'
- \H
El nombre de host del usuario actual.
- \l
Nombre base del dispositivo terminal.
- \j
El número de trabajos que ejecuta el shell.
- \r
Retorno de carruaje.
- \n
Una nueva línea.
- \u
Nombre de usuario del usuario actual.
- \v
Versión bash.
- \!
Imprime el número del historial del comando que se está ejecutando.
Puede incluir la hora actual del sistema en su mensaje mediante el siguiente comando:
PS1=”\A\u: \w\$ “
Este nuevo valor de PS1 tiene el siguiente efecto en su mensaje:
También puede personalizar su mensaje para incluir la salida de un comando; esto le brinda opciones ilimitadas para incorporar en su mensaje.
Sintaxis:
PS1="\u@\h on `[command]` \w\$ "
Ejemplo:
En este ejemplo, configuraré el mensaje para que incluya el nombre del grupo principal al que pertenece el usuario actual.
PS1="\u@\h on `id -gn` \w\$ "
Colorear el mensaje de Bash
Después de personalizar el mensaje, se dará cuenta de que las cosas pueden verse un poco desordenadas. La sencilla razón es que no es demasiado fácil diferenciar una característica de otra si todas aparecen en el mismo color. Ahora aprendamos cómo colorear el mensaje para hacerlo más agradable a la vista.
Para agregar colores a una o más funciones, la variable PS1 incluye etiquetas de color. El texto resaltado en la siguiente imagen es una etiqueta de color.
Este es el formato de una etiqueta de color:
\[\033[COLOR]m\]
Por ejemplo, el nombre de usuario y el nombre de host predeterminados que vemos en nuestro indicador de terminal predeterminado son verdes debido a la siguiente etiqueta de color:
\[\033[01;32m\]\u@\h
Puede cambiar este valor de color en una función de solicitud de bash para darle un nuevo color o agregar una nueva etiqueta de color a una función que no tiene ninguna.
A continuación se muestran algunos colores comunes y sus valores:
- Color
Valor
- Green
32
- Red
31
- Black
30
- Blue
34
- Cyan
36
- Purple
35
- Yellow
33
- White
37
Ejemplo:
El siguiente comando hará que el mensaje se vuelva rojo ya que especificamos 31 (color rojo) en la etiqueta de color:
PS1="\[\033[31m\]\u@\h:\w$ "
Usar estilos de texto en el símbolo del sistema Bash
Puede agregar estilos al texto del mensaje asignando un valor de atributo a una etiqueta de color. Este es el formato de una etiqueta de color con un atributo:
\[\033[ATRIBUTO; COLORm\]
Puede utilizar los siguientes valores de atributos para el texto del mensaje:
- Attribute Value
Propósito
- 0
Texto normal (este es el valor predeterminado incluso si no se establece ningún atributo)
- 1
En la Terminal Debian, este valor especifica texto en negrita
- 2
texto oscuro
- 4
Subrayado de texto
- 5
Para texto parpadeante
- 7
Invierte el texto y los colores de fondo
- 8
Para texto oculto
Ejemplo:
Puede utilizar el siguiente comando para subrayar su símbolo de bash:
$PS1="\[\033[4;31m\]\u@\h:\w$"
El valor 4 indica que queremos “subrayar” el texto.
Realizar cambios permanentes en el mensaje
Los comandos que ha ejecutado hasta ahora solo cambiarán el mensaje de la sesión de bash actual. Después de haber experimentado con la personalización del texto y la coloración de su mensaje, y haber llegado a un final que desea establecer de forma permanente para todas sus sesiones de bash, debe editar su archivo bashrc.
Abra el archivo .bashrc y copie el valor de PS1 que finalizó en la línea PS1 debajo de if; luego línea. En la siguiente imagen, acabo de cambiar el color de mi indicador de bash a rojo:
Guarde el archivo presionando Ctrl+X y luego presionando Y. Los cambios en su indicador de bash ahora serán permanentes. Salga de la Terminal y vuelva a abrirla para ver que su indicador de bash seguirá siendo el mismo que configuró.
Después de practicar con este tutorial, podrá sobresalir en la personalización de su indicador de bash. Luego puede configurar colores para diferenciar las diferentes funciones que ha incorporado en el mensaje. De esta manera podrá ver y utilizar esa información útil cada vez que utilice el indicador de bash.