Blog personal donde guardo mis notas sobre tecnología

Como colorear la salida de "ls" en zsh

Carlos M.

Esta es una publicación de la serie “Zsh

2022-07-11Zsh: Habilitar tecla Suprimir
2022-06-13Zsh: Buscar en el histórico con Up/Down
2021-05-24ZSH como shell predeterminada
2021-05-10Sugerir comandos a medida que escribes en Zsh
2021-04-26Zsh, resaltado de sintaxis estilo Fish
2021-04-12 Como colorear la salida de "ls" en zsh
2021-03-29Personaliza zsh con Powerlevel10k en Arch-Linux

Si has instalado zsh como tu nueva shell para la terminal, habrás notado que a simple vista es un poco “sosa”, y aunque en este artículo vimos como personalizar el prompt, visualmente no llama mucho la atención, por ejemplo si ejecutamos el comando ls -l nos devuelve esta salida:

Muy “sosa” ¿verdad?, por suerte eso se puede mejorar bastante con la utilización de alias y modificando el fichero ~/.zshrc añadiendo:

#Alias
alias ls='ls --color=auto'

Vuelve a ejecutar el comando ls -l

Esto es otra cosa, sin embargo, aun se puede mejorar más, si tienes un tema oscuro o simplemente no termina de gustarte esta combinación de colores podemos modificarlos, y para ello vamos a hacer uso del paquete zsh-dircolors-solarized, para instalarlo en Arch-Linux:

Una vez instalado, copiamos o enlazamos el tema que nos gusta (el paquete dispone de varios temas de colores: 256dark, ansi-dark, ansi-universal y ansi-light) al archivo .dircolors de nuestro $HOME y ejecutamos el comando eval

cp /usr/share/zsh/plugins/zsh-dircolors-solarized/dircolors-solarized/dircolors.256dark .dircolors
eval `dircolors ~/.dircolors`

Vemos como queda el nuevo aspecto

Si nos gusta y queremos que esos cambios se guarden de forma permanente, añadimos a nuestro ~/.zshrc:

eval `dircolors ~/.dircolors`

Zsh se puede mejorar enormemente instalando el framework Oh My Zsh y sus plugins, pero si prefieres no instalar dicho framework y aprender como personalizar tu shell zsh, te recomiendo que leas los artículos que escribí sobre ello:

Espero que te haya gustado, pasa un buen día. 🐧