
704 - Tu terminal puede hacer mucho más… si sabes cómo
tres herramientas espectaculares para ser mas eficiente en la #terminal #linux y poder navegar en #logs o en archivos #json de forma eficaz
Andaba buscando un título para este episodio, y cuando me he topado con este, me he dado cuenta de la verdad que encierra. Existen cientos o miles de herramientas para trabajar en la terminal de Linux, y sin embargo, en general se conocen unas pocas herramientas a penas. Me viene a la mente aquello de cuando todo lo que tienes es un martillo, todo te parece un clavo. Y es que en general, estamos acostumbrados a utilizar cat
, less
, grep
, etc…, y sin embargo, existen herramientas mejores, mas eficientes y mas adecuadas para ciertos casos. Si siempre usas cat
y less
para ver logs o jq
para ver archivos JSON, es como si estuvieras usando un martillo para apretar tornillos. Funciona… pero no es lo mejor. Hoy te traigo tres herramientas que son como tener el destornillador, la llave inglesa y la linterna que te faltaban.

Tu terminal puede hacer mucho más… si sabes cómo
Tailspin
¿Qué es tailspin y cómo funciona?
tailspin
es una herramienta que se dedica a leer archivos de registro los típicos logs del sistema o de tus aplicaciones línea a línea. A medida que los va leyendo, aplica una serie de expresiones regulares para detectar patrones. ¿Qué patrones? Pues los típicos que te encuentras en los logs, fechas, números, niveles de severidad como error, warning, info, y muchas otras cosas.
Lo interesante de tailspin
es que no da nada por sentado. No asume en qué formato están esos datos ni en qué posición aparecen en cada línea. Por eso, no necesitas configurar absolutamente nada. Simplemente lo ejecutas y ya empieza a resaltar lo importante, sin importar de qué archivo de log se trate. Funciona igual de bien con los logs del sistema, que con los de tu servidor web o los de tus contenedores Docker.
Características
Algunas de las características más destacadas de tailspin
son las siguientes,
- Puedes ver cualquier archivo de log, de cualquier formato. Ya sea el log del sistema, de Docker, de tu aplicación en Rust o del servidor web, tailspin se lo traga sin problemas.
- No necesitas hacer ninguna configuración ni preparar nada. Lo instalas, lo ejecutas, y punto.
- Resalta automáticamente lo que importa: fechas, números, direcciones IP, UUIDs, URLs… todo eso que normalmente buscarías a ojo, tailspin te lo pinta.
- Además, si quieres personalizar los colores o los tipos de resaltado, puedes hacerlo sin complicaciones.
- Se integra fácilmente con otros comandos. Lo puedes usar en un pipe, con grep, awk, o en tus propios scripts.
- Y lo mejor: por dentro, usa less, así que si ya estás acostumbrado a trabajar con este visor, te sentirás como en casa.
- Es una herramienta multi plataforma, así que la puedes usar en Linux, macOS y Windows.
Instalación
Dependiendo de tu distribución, puedes instalar tailspin
de diferentes maneras. Te indico a continuación cómo hacerlo en algunas de las más habituales,
# Homebrew
brew install tailspin
# Cargo
cargo install tailspin
# Archlinux
pacman -S tailspin
# Nix
nix-shell -p tailspin
# NetBSD
pkgin install tailspin
# FreeBSD
pkg install tailspin
# Windows
scoop install tailspin
Aunque indicarte que siempre puedes instalarlo desde el código fuente utilizando el comando,
cargo install --path .
Uso
Por defecto, cuando abres un archivo con tailspin, este se muestra usando el visor less. Pero si lo usas en un pipe, es decir, si le pasas la salida de otro comando, tailspin simplemente imprime el resultado resaltado directamente en la terminal.
tspin /var/log/pacman.log
Es como si ejecutaras tspin archivo --print
, pero sin complicarte la vida.
Por ejemplo, puedes hacer cosas como:
journalctl -f | tspin
cat /var/log/syslog | tspin
docker logs container_name | tspin
Y tailspin se encargará de resaltar toda la salida para que veas lo importante de un vistazo.
Ahora bien, si quieres ejecutar un comando y ver su salida dentro de less —con posibilidad de moverte, buscar, y todo eso— puedes usar la opción --exec
:
tspin --exec 'docker logs -f container_name'
tspin --exec 'journalctl -f'
Esto lanza el comando en segundo plano y lo pasa a tailspin, que a su vez lo muestra usando less. Así tienes lo mejor de los dos mundos: navegación cómoda y resaltado automático.
Configuración
No es necesario que realices ningún tipo de configuración para su uso general. Sin embargo, si quieres personalizar los resultados o añadir nuevas palabras clave, lo puedes hacer tanto desde la línea de comandos como desde un archivo de configuración.
Para esto tienes que crear el archivo ~/.config/tailspin/theme.toml
, allí personalizar tanto la apariencia por defecto como añadir nuevas palabras claves como por ejemplo,
[[keywords]]
words = ['pacman']
style = { fg = "green" }
[[keywords]]
words = ['null', 'true', 'false']
style = { fg = "red", italic = true }
O también expresiones regulares, como la que te muestro a continuación,
[[regexes]]
regex = ' \[[^\]]*\] '
style = { fg = "red" }
jless
¿Qué es jless
y cómo funciona?
jless es una herramienta de línea de comandos pensada específicamente para ver archivos JSON. Es decir, es el sustituto perfecto para ese batiburrillo de comandos que solemos usar: cat
, jq
, less
, e incluso algún editor de texto. Con jless, todo eso lo tienes en una sola herramienta, sencilla y rápida.
Y como no podía ser de otra forma, está escrita en Rust. Se instala como un binario independiente, sin dependencias raras ni configuraciones complicadas.
Características
Algunas de las características de jless son las siguientes,
- Muestra los archivos JSON con una sintaxis limpia y resaltada. Por ejemplo, quita las comillas de las claves, no muestra comas al final, ni los corchetes de cierre innecesarios. Todo pensado para que te centres en lo importante.
- Puedes expandir y contraer objetos y arrays. Esto te permite tener una vista general de la estructura, pero también profundizar cuando lo necesitas.
- Navegación al estilo vim. Si estás acostumbrado a moverte con
j
,k
,/
,gg
y compañía, aquí te vas a sentir como en casa. - Búsqueda avanzada con expresiones regulares, para que encuentres justo el dato que estás buscando en medio de un JSON enorme.
- Actualmente funciona en Linux y macOS. El soporte para Windows está en camino.
Instalación
jless
se puede instalar de varias maneras, dependiendo de tu sistema operativo. Aquí tienes algunas opciones,
# Homebrew
brew install jless
# Cargo
cargo install jless
# Archlinux
pacman -S jless
# NetBSD
pkgin install jless
# FreeBSD
pkg install jless
Uso
Puedes usar jless directamente sobre archivos JSON, o pasándole datos desde la entrada estándar. Por ejemplo:
curl https://api.github.com/repos/PaulJuliusMartinez/jless/commits -o commits.json
jless commits.json
O si lo prefieres:
cat commits.json | jless
jless también soporta JSON delimitado por líneas (newline-delimited JSON), así que puedes pasarle la salida de jq
o incluso logs muy densos sin problema.
Pero eso no es todo, también puede trabajar con archivos YAML. Lo detecta automáticamente si el archivo tiene extensión .yaml
o .yml
, o puedes indicárselo explícitamente con --yaml
. Y si sueles ver archivos YAML a menudo, puedes crearte este alias,
alias yless="jless --yaml"
jless no solo es una herramienta potente para visualizar JSON, también es extremadamente eficiente a la hora de moverse por los datos gracias a su sistema de atajos inspirados en vim. Para empezar, puedes salir con q
, Ctrl-C
o :quit
(tranquilo, no es tan difícil como salir de vim). Si te pierdes, siempre puedes consultar la ayuda con :help
o la tecla F1. A partir de ahí, el resto es pura navegación fluida.
Puedes moverte línea a línea con j
y k
, o usar las flechas de toda la vida. Si estás viendo un objeto o un array, puedes colapsarlo con h
y expandirlo con l
, o incluso contraer o expandir todo de golpe con c
, C
, e
o E
. También puedes saltar entre hermanos del nodo actual, avanzar por profundidad con w
y b
, o ir directamente al principio (gg
) o al final (G
) del archivo. En definitiva, moverse por un JSON grande con jless es una experiencia mucho más cómoda que con cualquier combinación de jq
y less
.
Y si necesitas copiar o imprimir datos, jless también te lo pone fácil. Puedes copiar el valor actual (yy
), la clave (yk
), o incluso la ruta completa desde la raíz (yp
, yb
, yq
). Además, puedes imprimir valores largos para verlos completos con pp
, o mostrar solo una línea bien formateada con pv
. Es ideal cuando estás trabajando con estructuras complejas y necesitas reutilizar esos datos en otros scripts o comandos, especialmente cuando los pegas en Python, jq
, o cualquier otro entorno donde la precisión importa.
Búsquedas
jless incorpora un sistema de búsqueda muy completo que permite encontrar cualquier dato dentro del JSON, ya sea hacia adelante (/patrón
) o hacia atrás (?patrón
), con soporte para expresiones regulares. Además, utiliza búsqueda smart case: si no usas mayúsculas, ignora el caso; pero si hay una sola, se vuelve sensible al mismo. Puedes moverte entre coincidencias con n
y N
, o buscar claves de objetos directamente con *
y #
. Las expresiones regulares funcionan como cabría esperar, con una particularidad: los corchetes ([]
) y llaves ({}
) no actúan como clases de caracteres o contadores, sino que se interpretan literalmente, a menos que los escapes con \
. Así, buscar cosas como [1, 2, 3]
o {}
funciona tal cual lo escribes, sin necesidad de complicaciones.
Los modos de jless
jless funciona en dos modos distintos de visualización: modo datos y modo línea. Por defecto, arranca en modo datos, que ofrece una vista más limpia y compacta del JSON: sin comas finales, sin llaves o corchetes de cierre, y sin comillas en las claves que sean identificadores válidos en JavaScript. Incluso muestra una vista previa de objetos y arrays en una sola línea, con los índices delante de cada elemento de array. Pero si necesitas ver el JSON de forma más tradicional, basta con pulsar m
para cambiar al modo línea, donde se muestra el JSON bien formateado, tal como lo devolvería jq
. Y si estás en modo línea, puedes usar %
para saltar entre las llaves o corchetes de apertura y cierre, algo muy útil para navegar estructuras complejas.
dysk
¿Qué es dysk
y cómo funciona?
dysk es una utilidad para Linux que te muestra tus sistemas de archivos de una forma visual y muy clara. En lugar de limitarse a columnas aburridas como hace df
o lsblk
, aquí todo se presenta de manera más gráfica, lo que facilita ver rápidamente cómo están organizados tus discos y particiones.
Una de las cosas más útiles es la columna disk, que te dice de un vistazo qué tipo de dispositivo estás viendo: si es un USB (remov), un disco mecánico (HDD), un SSD, memoria en RAM (zram), volúmenes gestionados con LVM, o incluso discos cifrados. Así, si tienes varios discos o dispositivos conectados, te resulta muy fácil saber cuál es cuál.
Por defecto, dysk solo muestra los dispositivos “normales”, los que más te interesan, pero si quieres ver absolutamente todo (como dispositivos de loop, zram, etc.), puedes usar la opción -a
. Además, las unidades se muestran siguiendo el estándar SI (1M = 1.000.000 bytes), aunque si lo prefieres puedes cambiarlo a binario con --units binary
, para que 1M sea igual a 1.048.576 bytes, como los de toda la vida.
dysk es como la versión vitaminada y visual de herramientas clásicas como lsblk
y df
. Si bien estas dos utilidades llevan años acompañándonos en Linux, lo cierto es que su salida no siempre es fácil de interpretar a primera vista, especialmente si tienes varios discos o sistemas de archivos montados.
Por ejemplo, lsblk
te muestra la jerarquía de dispositivos y particiones, pero no siempre te dice claramente qué tipo de disco es cada uno (¿es un SSD o un HDD?), y desde luego no te indica si estás viendo un volumen cifrado, LVM o zram. df
, por su parte, te da información del uso del espacio, pero su formato es plano, textual, y muchas veces se pierde entre columnas poco intuitivas.
Ahí es donde brilla dysk, te da una vista compacta, clara y visual, donde puedes identificar de inmediato el tipo de dispositivo, su uso, el punto de montaje, y el espacio disponible. Además, si quieres ir más allá y ver también dispositivos virtuales o de sistema, puedes hacerlo con -a
. En definitiva, dysk no sustituye a lsblk
ni a df
, pero los complementa de forma perfecta, haciéndote la vida mucho más fácil cuando estás gestionando almacenamiento en tu equipo.
Características
La gran ventaja de dysk
es que no se limita a mostrar columnas de texto, sino que organiza la información de forma que puedas identificar fácilmente cada dispositivo y su tipo: si es un USB (remov), un disco duro tradicional (HDD), un SSD, un volumen en RAM (RAM/zram), un volumen lógico (LVM) o incluso un dispositivo cifrado (crypt). Todo esto, en una presentación ordenada y muy legible directamente desde la terminal.
Además, por defecto dysk se enfoca en mostrar solo los dispositivos que realmente te interesan en el día a día, ocultando el ruido del sistema. Pero si necesitas verlo todo, puedes usar la opción -a
. También permite cambiar las unidades entre el sistema decimal (1M = 1.000.000 bytes) y el binario (1M = 1.048.576 bytes) con --units binary
, lo que resulta útil si estás acostumbrado al formato tradicional. En resumen, es una herramienta ligera, intuitiva y muy práctica para conocer de un vistazo cómo está distribuido el almacenamiento en tu sistema.
Instalación
dysk
se puede instalar de varias maneras, dependiendo de tu distribución. Aquí tienes algunas opciones,
# Homebrew
brew install dysk
# Cargo
cargo install --locked dysk
# Archlinux
pacman -S dysk
Uso
El uso de dysk
es muy sencillo. Simplemente ejecutas el comando sin ningún argumento y te muestra un resumen de todos los dispositivos de almacenamiento conectados a tu sistema. Por ejemplo,
┌──────────────┬────┬────┬────┬─────────┬────┬────┬───────────┐
│ filesystem │type│disk│used│ use │free│size│mount point│
├──────────────┼────┼────┼────┼─────────┼────┼────┼───────────┤
│/dev/sda1 │ext4│SSD │1.3T│64% ███▎ │708G│2.0T│/data │
│/dev/nvme0n1p3│ext4│SSD │ 67G│15% ▊ │375G│441G│/home │
│/dev/nvme0n1p2│ext4│SSD │ 37G│77% ███▉ │ 11G│ 48G│/ │
│/dev/nvme0n1p1│vfat│SSD │217M│20% █ │854M│1.1G│/boot │
└──────────────┴────┴────┴────┴─────────┴────┴────┴───────────┘
Además de las columnas tradicionales, dysk incluye una columna muy útil llamada disk
, que te permite identificar fácilmente qué tipo de dispositivo estás viendo, o cómo se mapea ese sistema de archivos con el hardware real. Así, por ejemplo:
remov
: un dispositivo extraíble, como una memoria USBHDD
: un disco duro mecánico de toda la vidaSSD
: una unidad de estado sólidoRAM
: un dispositivo en memoria, como los creados con zramLVM
: un volumen lógico gestionado con LVMcrypt
: un dispositivo cifrado
Por defecto, dysk solo muestra los dispositivos «normales», es decir, aquellos que realmente sueles usar y te interesan. Pero si quieres ver todos, incluidos los más internos o del sistema, puedes hacerlo con la opción -a
. Y como detalle adicional, puedes elegir si quieres ver las unidades usando el sistema decimal (donde 1M son un millón de bytes) o el sistema binario (donde 1M son 1.048.576 bytes) con la opción --units binary
.
Conclusión
Se trata de tres herramientas sencillas pero potentes. Las dos primeras creo que están mas enfocadas a desarrolladores o administradores de sistemas, mientras que la última es de uso mas general. Pero, con todo y con eso, tener una herramienta para navegar entre logs, como es tailspin
es una ayuda siempre para cualquier usuario, con independencia de su dedicación. Y por otro lado, jsless
, siempre te puede ayudar con los archivos de configuración que vengan en ese formato.
Más información,