Personalizar el terminal de Linux

  A pesar de que las terminales básicas de las distintas distrribuciones de Linux poseen opciones para su personalización, hay veces que no son suficientes para el usuario, por lo que este debe optar por recurrir a programas externos o la instalación de otros programas de terminal más personalizables o, por lo menos, con las opciones de personalización deseadas por el usuario.
  Por Internet existen numerosos tutoriales, tanto en vídeo como en bitácoras escritas, para lograr este objetivo. La presente entrada muestra un modo de configuración sencillo que atiende bastante bien a los gustos de personalización de numerosos usuarios de Linux.
  Naturalmente, como se ha sugerido más arriba, el método de configuración explicado aquí no es el único que existe, y un usuario de Linux deberá escoger el mejor procedimiento a seguir para lograr este objetivo.
  Este sistema requiere de la instalación de un solo programa: FIGlet (aunque para complementarlo también se puede instalar TOIlet).

INSTALACION DE FIGLET

  Esta herramienta de terminal permite al usuario crear una pancarta ("banner", en inglés) de texto ASCII con letras grandes formadas por caracteres de ese tipo de letra más pequeños.
  Para instalar este programa, primeramente hay que actualizar la lista de paquetes y el propio sistema [comandos apt update y apt upgrade respectivamente en una distribución de tipo debian, o los correspondientes según la distribución diferente de Linux que se trate (anteponiendo sudo si no se es administrador)]. Después, se emplea el comando del gestor de paquetes para instalarlo [por ejemplo apt install figlet (anteponiendo sudo si no se es administrador), en distribuciones de tipo debian].


USO DE FIGLET

  El modo básico de emplear este paquete es escribiendo el comando figlet <parámetro>  <valor del parámetro> <texto a modificar> en el terminal, pero también se puede emplear en un guión de bash, o, si se quiere hacer permanente, agregando el comando completo al final del archivo de configuración de Bash (".bashrc", ".bash_profile", etc.) situado en la ruta "home/<carpeta del usuario>".  Sus parámetros más relevantes son:
  •   -c: Centra el texto de salida.
  •   -d: Cambia el directorio de las tipografías.
  •   -f <nombre de fuente>: Selecciona una tipografía (el directorio predeterminado es "figlet", situado en la ruta "/usr/share/"; las fuentes se guardan en archivos ".flf" y ".tlf").
  •   -k: Crea cada letra de forma separada en lugar de fundirse con las adyacentes.
  •   -l: Alinea el texto a la izquierda.
  •   -p < <archivo de texto plano>: Muestra el texto que aparece en el archivo de texto plano determinado.
  •   -r: Alinea el texto a la derecha.
  •   -t: Permite al usuario emplear todo el ancho de la terminal.
  •   -w <nº>: Especifica un tamaño de ancho de salida definido por el número.
Ejemplo de uso de FIGlet en terminal de Ubuntu.

CAMBIAR LOS COLORES DE LA SALIDA

  Normalmente, las terminales de Linux dan opciones para cambiar el resaltado de sus salidas, o incluso algunos de sus colores, pero, como se ha dicho más arriba, estas opciones de configuración suelen ser bastante limitadas.
  Sin embargo, pueden cambiarse los colores de salida y de otros elementos del terminal mediante las secuencias de escape ("escape sequences", en inglés), que son secuencias de carácteres especiales que el ordenador interpreta literalmente y pueden modificar la presentación del texto.
  La sintaxis necesaria para cambiar el color de un texto concreto mediante este tipo de secuencias es:
echo -e "\e[<nº>m<texto a modificar>\e[0m"

  Este comando se interpreta del siguiente modo:
  •   echo: Comando que muestra la salida.
  •   -e: Parámetro del comando anterior que le indica que emplee la secuencia de escape.
  •   \e...m: Inicio y final de la secuencia de escape.
  •   [: Define el inicio del cambio de parámetros.
  •   <nº>: Determina el color del texto (pueden ponerse varios separados por ";" para determinar diferentes características del texto, como el color de fondo, un texto en negrita, etc.; el orden habitual es "<nº de característica>;<nº de color de fondo>;<nº de color de texto>"). El "0" sirve para el formato predeterminado del terminal.
  •   <texto a modificar>: El texto que se manipulará.
  •   \e[0m: Define el final del cambio de parámetros, devolviendo el texto del terminal a su formato predeterminado.
  Para cambiar el color del texto del terminal se deben usar los números del 30 al 37 y del 90 al 97, tal y como muestra la siguiente imagen de ejemplo (encontrada en Robologs):

  Para modificar el color de fondo, se emplearán los números del 40 al 47 y del 100 al 107 (imagen de Robologs):

  Los códigos numéricos de las otras características propias de los textos son:
  • 1: Texto en negrita.
  • 2: Texto atenuado.
  • 3: Texto en cursiva.
  • 4: Texto subrayado.
  • 7: Texto invertido.
  • 8: Texto oculto.

  Naturalmente, también es posible emplear las secuencias de escape programando un guión bash o en la configuración del archivo de configuración de Bash.



PERSONALIZANDO EL PROMPT

  El prompt es el carácter, o conjunto de caracteres, que se muestra en una línea de comandos para indicar que está a la espera de órdenes. En los sistemas operativos Linux, la estructura de un prompt es:
<nombre de usuario>@<nombre de equipo>:<directorio actual><$ (usuario sin privilegios)/ # (usuario administrador)>. 
Ejemplo de prompt de usuario normal.
Ejemplo de prompt de usuario administrador.




 
  En primer lugar, se puede aplicar el color definido por defecto editando el archivo de configuración de Bash y descomentando la línea force_color_prompt=yes.
  Pero para realizar una personalización más completa, lo que se debe hacer es editar dicho archivo y modificar los parámetros de la variable "PS1". Para esto, se debe ir a la siguiente sentencia:
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[033[01;32m\]\u@\h\[033[00m\]:\[033[01;34m\]\w\[033\$ '
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. En el primer caso, la variable PS1 tiene los siguientes elementos predeterminados (de izquierda a derecha):
  •   \u@: El nombre de usuario logueado seguido del símbolo "@".
  •   \h: El nombre del equipo.
  •   \w: El directorio de trabajo actual.
  Se pueden añadir elementos a mayores para que se muestreen esta línea mediante los siguientes parámetros:
  •   \d: Fecha  actual en formato "nombre del día nombre del mes número del día".
  •   \j:  Número de tareas ejecutadas por la terminal.
  •   \v: Versión de Bash.
  Por su parte, el color se define en código ANSI delante de cada uno de los parámetros vistos anteriormente. Normalmente, en el archivo de configuración del Bash, debe eliminarse el fragmento de línea "${debian_chroot:+($debian_chroot)}" de la primera línea de "PS1" de la sentencia antes mostrada, y añadir como código el comando que cambia el color de un texto visto más arriba con la siguiente sintaxis :
 \e[<código de color>m<elemento del prompt a cambiar>\e[0m

  Los códigos de color a emplear son los mismos que en el apartado anterior, y se pueden utilizar del mismo modo que en el caso del texto normal, es decir es posible combinar códigos de color de texto con los de color de fondo, y con los de otras características del texto con el mismo sistema con el que se combinaban para un texto normal para cada elemento del prompt (aunque en algunos sistemas operativos Linux igual se dan problemas menores en la terminal).
  Se debe separar convenientemente cada elemento para evitar errores de sintaxis, pero no existe problema en dejar unidos el símbolo ":" de después del nombre del equipo, ni el símbolo "$" o "#" (según corresponda), a "\e[0m".
  Para ver los cambios, suele ser necesario reiniciar el sistema:
Ejemplo de modificación de prompt.

  Pueden hacerse pruebas temporales (duran hasta que se termina la sesión) mediante el comando export PS1="\e<código de color>m\]<elemento del prompt a cambiar>" (cerrando siempre con "\e[0m\]" para volver al color predeterminado).


   Por último indicar que, si se quieren hacer estas modificaciones en el usuario "root", de manera permanente, su fichero de configuración de Bash se encuentra dentro de su propia carpeta ("root") que está ubicada en el directorio raíz del sistema (hay que tener permisos de administrador para acceder a esta carpeta).


  Espero que la presente entrada haya resultado interesante al lector. En caso afirmativo, aguardo que el lector la comparta y/o la comente, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.