La paleta de colores en el terminal de Linux

  Todos los sistemas operativos basados en Unix disponen de un intérprete de comandos u órdenes (conocido como terminal, consola o "shell") que hace de interfaz entre el usuario y el propio sistema operativo, por lo que es posible acceder al sistema operativo sin utilizar la interfaz gráfica y realizar todo tipo de tareas en modo texto.
  El formato predeterminado del terminal se compone de los siguientes elementos (de izquierda a derecha):
  •   Nombre del usuario conectado al terminal.
  •   @: Significa "en".
  •  Nombre de la máquina a la cual  está conectado el usuario.
  •   ~: Ruta en la cual se encuentra el usuario.
  •   $: Indicador para comenzar a escribir nuevas órdenes o comandos.

  Una de las órdenes más útiles en el terminal es el comando ls, que muestra un listado con los archivos y directorios de un determinado directorio que no estén ocultos (es decir, que no comiencen por "."). Los resultados se muestran ordenados alfabéticamente.
  Entre sus parámetros más comunes (que se pueden unir como un sólo parámetro), se encuentran:

  • -l: Muestra un listado en el formato largo, con información de permisos, número de enlaces asociados al archivo, usuario, grupo, tamaño y fecha de última modificación además del nombre.
  • -h: Con "-l" imprime el tamaño de los archivos de forma entendible para los humanos (ej. 1K 234M 2G).
  • -d: Muestra solamente el nombre del subdirectorio, sin entrar en él ni dar un listado del contenido.
  • -t: Muestra el listado ordenado por la fecha de última modificación.
  • -c: Muestra el listado ordenado por la fecha de última modificación del estado del archivo.
  • -r: Cuando el listado se hace por orden temporal, los archivos más recientes van al principio. Si se indica la "-r" se invierte el orden, mostrando los más recientes al final.
  • -L: En los enlaces simbólicos, muestra los datos del archivo referenciado en vez de los del enlace.
  • -1: Muestra el listado en una sola columna. Sin este parámetro, el listado se muestra en varias columnas, tantas como permita el ancho de la terminal (generalmente controlado con la variable de entorno "$COLUMNS").
  • -i: Muestra el número del i-nodo antes del nombre de archivo.
  • -m: Muestra los archivos en una línea y separados por comas.
  • -R: Realiza un listado recursivo. Lista primero los archivos del directorio en curso, luego los de los subdirectorios de éste, luego los de los subdirectorios contenidos en ellos (nietos) y así sucesivamente.
  • -s: Muestra delante del nombre del fichero el tamaño en kilobytes del mismo.
  • --color: Muestra cada tipo de archivo de un color distinto: un color para los directorios, otro para los archivos regulares, otro para los enlaces simbólicos, otro para los sockets, otro para las tuberías FIFO, etc. Este parámetro no se acepta en todas las versiones de ls y, por supuesto, requiere que la terminal sea capaz de mostrar distintos colores o intensidades.
  • - a: Muestra los archivos ocultos.
  Este comando, además, es más útil todavía si en el terminal pueden verse los distintos tipos de archivos con diferentes colores (lo que no siempre sucede).


ACTIVAR EL ABANICO DE COLORES DEL TERMINAL

  En el caso de que el terminal sea monocromático, o posea tan solo uno o dos colores básicos predeterminados, puede cambiarse a un esquema más completo mediante los siguientes métodos:

1. Editando el archivo ".bashrc"
    El primer modo de hacer que el terminal tenga un colorido más interesante es editando el archivo ".bashrc" (que se encuentra en el directorio "home") mediante el comando <editor de texto> <ruta del archivo (en este caso ".bashrc")> (anteponiendo sudo si no se está como administrador).
  Una vez abierto, se puede escribir una de estas dos opciones, siempre al final del archivo:
  1.   export PS1="\[$(tput setaf 1)\]\u@\h:\w $ \[$(tput sgr0)\]": En este caso, existen las opciones: tput bold (negrita), tput rev (colores invertidos), tput sgr0 (Restablecer todo), tput setaf <código color> (establecer color de fondo). Los códigos de los colores posibles son: 0 (negro), 1 (rojo), 2 (verde), 3 (amarillo), 4 (azul), 5 (magenta), 6 (celeste), 7 (blanco).
  2.  alias ls='ls --color  LS_COLORS='di=1:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.rpm=90' export LS_COLORS: Donde la primera línea crea un alias para que el comando ls utilice el parámetro "--colors" predeterminadamente. En la segunda, se representa el color que se desea dar a los diversos archivos de linux, que son representados por la siguiente denotación: di (directorio), fi (archivo), ln (enlace simbólico), pi (archivo FIFO), so (archivo socket), bd [bloque (buffer) de archivos especiales], cd [carácter (sin búfer) de archivos especiales], or [enlace simbólico que apunta a un archivo inexistente (huérfano)], mi [archivo no existente al que apunta un enlace simbólico (visible cuando se escribe ls -l)], ex (fichero ejecutable); por su parte, los colores poseen los siguientes códigos numéricos: 0 (color predeterminado), 1 (negrita), 4 (subrayado), 5 (texto intermitente), 7 (campo inverso), 31 (rojo), 32 (verde), 33 (naranja), 34 (azul), 35 (púrpura), 36 (magenta), 37 (gris), 40 (fondo negro), 41 (fondo rojo), 42 (fondo verde), 43 (fondo naranja), 44 (fondo azul), 45 (fondo morado), 46 (fondo celeste), 47 (fondo gris), 90 (gris oscuro), 91 (semáforo en rojo), 92 (luz verde), 93 (amarillo), 94 (luz azul), 95 (luz violeta), 96 (turquesa), 100 (fondo gris), 101 (fondo rojo), 102 (fondo verde claro), 103 (fondo amarillo), 104 (fondo azul claro), 105 (luz de fondo morado), 106 (fondo turquesa).
  Otra opción es escribir la línea "alias ls="ls -al --color"" bajo la línea "# User specific aliases and functions".
  En cualquiera de los tres casos, después debe utilizarse el comando source .bashrc (en algunas distribuciones basta simplemente con utilizar este comando porque igual ya tienen las líneas necesarias activadas en el archivo). 

2. Mediante LS_COLORS
  Se trata de una colección de colores que permite al usuario asignar colores a la salida del comando ls.
  Para emplearlo se debe abrir un terminal y ejecutar los comandos siguientes:
wget https://raw.github.com/trapd00r/LS_COLORS/master/LS_COLORS -O $HOME/.dircolors
echo 'eval $(dircolors -b $HOME/.dircolors)' >> $HOME/.bashrc

. $HOME/.bashrc


COMPROBANDO EL ESQUEMA DE COLORES

  Existen varios comandos para conocer los colores que soporta el terminal de Linux. El más utilizado es dircolors, que muestra una lista de archivos y códigos de colores y atributos de texto (si se emplea con el parámetro "--print-database", se mostrará dicha lista mejor estucturada, y con "-p | less" se mostrará en formato de página).
  Para interpretar estos datos se utilizan, generalmente, los siguientes códigos:
  •   Atributos: 00 (ninguno),  01 (negrita), 04 (subrayado), 05 (intermitente), 07 (inverso), 08 (oculto).
  •  Colores de texto: 30 (negro), 31 (rojo), 32 (verde), 33 (amarillo), 34 (azul), 35 (magenta), 36 (cian), 37 (blanco).
  •  Colores de fondo: 40 (negro), 41 (rojo), 42 (verde), 43 (amarillo), 44 (azul), 45 (magenta), 46 (celeste), 47 (blanco).


SIGNIFICADO DE LOS COLORES

  En el terminal, los colores se emplean para clasificar tipos de archivo según sus características. De este modo, puede verse la siguiente clasificación predeterminada (puede variar según la distribución y/o la personalización del terminal del usuario):
  Verde para archivos ejecutables (en el ejemplo, "Bienvenida.sh").
  Negro (o su color predeterminado equivalente) para archivo normal.
  Azul o morado para directorios.
  Celeste para enlaces simbólicos.
  Rojo para archivos comprimidos (.tar, .gz, .zip, .rpm).
  Magenta para archivos de imagen (.jpg, gif, bmp, png, tif).
  Los permisos y otras características del archivo pueden añadir, o cambiar, estos colores, por ejemplo, como se ve en la imagen de ejemplo del color verde, el directorio "Archivos" está subrayado en verde, lo que significa que posee los permisos "777".

  Espero que esta entrada haya sido interesante y/o útil al lector. De ser así, aguardo que este 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.