346 - Explosión de herramientas para la terminal
Algunas herramientas para la terminal que vienen a reemplazar a los clasicos aportando color y muchas mas caracteristicas
No puedo negarte que desde que estoy utilizando en profundidad Rust, me voy fijando mas en aquellas aplicaciones que están implementadas en este lenguaje de programación. Sin embargo, eso no quita, que en los últimos años se haya visto una verdadera explosión de herramientas para la terminal. Una explosión de nuevas herramientas. Algunas de estas herramientas vienen a reemplazar o sustituir a sus equivalentes. Otras simplemente vienen a ocupar un hueco que no nos habíamos dado cuenta de que existía, y se vienen a convertir en herramientas imprescindibles, por derecho propio.
En este caso, y en este nuevo episodio del podcast, te cuento alguna de las herramientas que estoy utilizando, y que como he comentado anteriormente, sustituyen o reemplazan a algunos clásicos, que he estado utilizando durante los últimos años.
Explosión de herramientas para la terminal
Todas las herramientas a las que hago referencia están implementas en Rust, y vienen a reemplazar a las clásicas.
Reemplazando ls
El primer caso es algo curioso, porque estoy utilizando exa
desde hace varios meses, sin embargo, recientemente he conocido otra alternativa lsd
, que todavía le da una segunda vuelta.
En ambos casos, tanto exa
, como lsd
buscan darle mas colorido a la terminal, lo que, ciertamente, siempre es de agradecer. Si quieres conocer algo mas de exa
, te recomiendo el episodio 207 del podcast exa el reemplazo de ls.
LSD (LSDeluxe)
Tal y como lo describe el propio desarrollador de la aplicación, el objetivo de lsd
, es reescribir el clásico GNU ls
, con nuevas características añadidas como son colores, iconos, vista de árbol, una mayor variedad de opciones de formateo, etc.
Una de las características de esta herramienta es las posibilidades de configuración que tiene. Una configuración espectacular. No solo te permite configurar detalles como puede ser los colores, sino que te permite elegir que es lo que quieres ver por defecto, el formato de fecha, el tipo de disposición que quieres, el formato para mostrar el tamaño de los archivos, la forma de ordenarlo, y mucho mas.
Para instalarlo, en el caso de Ubuntu y derivados, tienes que descargarte el paquete .deb
del repositorio de GitHub, mientas que para ArchLinux, Manjaro, etc, puedes instalarlo con pacman -S lsd
.
En cualquier caso, siempre lo puedes instalar desde el código fuente utilizando cargo
, mediante la siguiente instrucciónos
cargo install lsd
Decir, que no solo lo tienes disponible para estas distribuciones, sino que está disponible para otras muchas, así como para MacOS, Windows y Android (via Termux).
Reemplazando cat
cat
es la herramienta por defecto para mostrar el contenido de un archivo, o incluso para crear un archivo desde cero
de forma rápida. Sin embargo, al igual que sucede con otras herramientas clásicas, no aprovecha todo el potencial de los emuladores de terminal modernos.
Tal y como lo describe el desarrollador de la aplicación,
bat es un clone de cat con resaltado de sintaxis e integración con Git
Solo con estas dos características, a mi, sinceramente, me ha conquistado el corazón. Poder de un vistazo entender el contenido de un archivo, simplemente, por el resaltado de sintaxis, es un verdadero placer.
bat
tiene soporte de resaltado de sintaxis para un gran número de lenguajes de programación, así como para otros lenguajes de marcado como puede ser markdown.- Muestra los números de línea. Algo que seguro te vendrá fantástico cuando estés revisando código.
- Tiene integración con
git
, mostrándote en el mismo archivo los cambios que se han producido en el mismo respecto al~HEAD
. - Puedes ver los caracteres no imprimibles, como los retornos de carro, o los espacios.
- Soporta paginación automática, al igual que hace
less
. En mi caso, he desactivado esta función, porque prefiero el uso clásico al estilocat
. - Al igual que el clásico
cat
, por supuesto, también puedes concatenar diferentes archivos. - Se integra con otras herramientas como
fzf
,find
,ripgrep
,tail
…
Su instalación es muy sencilla, con independencia de la distribución o Sistema Operativo que utilices. Para el caso de Ubuntu,
sudo apt install bat
En el caso de Arch y derivados,
sudo pacman -S bat
El reemplazo de du
du
es una de esas herramientas que utilizo con mucha asiduidad. Se trata de una herramienta que te permite conocer lo que ocupa cada directorio de tu equipo, o de la parte de tu equipo que necesites conocer. De esta forma, de una manera, relativamente sencilla, puedes saber, si hay determinados directorios que se ocupan demasiado y no deberían.
En este caso, la herramienta que vienen a reemplazar a du
es dust
, y su desarrollador lo define perfectamente de la siguiente manera,
du + rust = dust. Como
du
pero mas intuitivo.
En este caso, la razón para implementar la aplicación también lo puedes leer del propio desarrollador,
Porque quiero una forma de ver donde está siendo usado mi disco
Se trata de una herramienta que te permite de un solo vistazo conocer el espacio ocupado por cada directorio. No solo en valor absoluto, sino también porcentualmente, y con unas vistosas barras.
De nuevo, y al igual que el resto de las herramientas está disponible, no solo para distintas distribuciones Linux, sino que también la tienes disponible para Windows y MacOS.
Reemplazando find
La última de las herramientas es fd
, que no es ni mas ni menos que el reemplazo del clásico find
. De nuevo me remito a las palabras del propio desarrollador de la aplicación para describirla,
fd
es un programa para encontrar entradas en tu sistema de archivos. Es una alternativa mas sencilla, rápida y amigable quefind
. Si bien no soporta toda la funcionalidad que proporcionafind
, si que aporta solución para la mayoría de los casos mas habituales (aunque esto es opinable).
Algunas de las características mas interesantes de este sustituto de find
, son las siguientes,
- Una sintaxis mas intuitiva. En lugar de
find -iname '*PATRON*
simplemente tienes que utilizarfd PATTERN
- Puedes utilizar tanto expresiones regulares, esto viene por defecto, como expresiones glob.
- Es muy rápido debido a la paralelización.
- Uso de colores por tipo de archivo.
- Soporta la ejecución de comandos en paralelo.
- Por defecto, no diferencia entre mayúsculas o minúsculas, excepto en el caso de que el patrón algún carácter en mayúsculas.
- Ignora por defecto tanto los archivos como los directorios ocultos. De la misma forma, ignora aquellos patrones que se encuentren en el archiv
.gitignore
.
Para la instalación,
En el caso de Ubuntu la puedes instalar directamente desde los repositorios oficiales a partir de la versión 19.04, ejecutando la siguiente instrucción,
sudo apt install fd-find
En el caso de ArchLinux,
sudo pacman -S fd
Conclusiones
Estas algunas pocas de todas las herramientas que han ido apareciendo en estos últimos años empujadas por Rust. Simplemente, las tienes que probar y añadir a tu caja de herramientas las que consideres mas útiles.
Más información,
Imagen de portada Luke Jernejcic
Excelente todas estas herramientas. Me faltaba agregar dust y wao, muchas gracias. Find si no tiro mucho, por que utilizo mas las busquedas globales con zsh y exa o grep, dependiendo el caso.
Muchísimas gracias por comentar José. Espero que las estés disfrutando.
lsd es genial y si usamos alias para usarlo como el clásico ls no hay ninguna curva de aprendizaje 👍