679 - Tres herramientas espectaculares para Linux

679 - Tres herramientas espectaculares para Linux

tres herramientas espectaculares para #linux con las que complementar a #find, #ping y #tar pero de una forma más próxima al lenguaje natural humano

1:25
-3:15

Sin lugar a dudas una de las operaciones mas habituales que realizamos en la terminal, ya sea Linux o cualquier otro sistema operativo es buscar. Y, si bien existen herramientas especializadas como puede ser find o fd, esta última alternativa a la primera pero implementada en Rust, nunca está de mas tener mas opciones y posibilidades, sobre todo cuando se trata de darnos mas opciones a la hora de formatos de salida. En general, en el mundo del scripting, algo habitual es encadenar la salida de un comando con otro comando, y si una salida puede ser un json, abre todo un mundo de posibilidades. Así, en este episodio te traigo tres herramientas espectaculares para Linux que te permiten hacer operaciones habituales, como puede ser buscar o hacer un ping, pero abriendo un mundo de opciones y posibilidades.

Tres herramientas espectaculares para Linux

fselect

La primera de las herramientas es fselect que es una utilidad implementada en Rust que te permite realizar búsquedas como si estuvieras haciendo consultas SQL. No se trata de reemplazar a las tradicionales find o ls, sino dar otro tipo de información y solución.

Características

Algunas de las características de esta herramienta son las siguientes,

  • Gramática similar a SQL (no es SQL real, ¡pero muy relajada!) fácilmente comprensible por humanos
  • Consultas complejas
  • Funciones de agregación, estadísticas, fecha y otras
  • Búsqueda dentro de archivos
  • Soporte para .gitignore, .hgignore y .dockerignore (experimental)
  • Búsqueda por ancho y alto de imágenes, metadatos EXIF
  • Búsqueda por información de MP3
  • Búsqueda por atributos de archivo extendidos y capacidades de Linux
  • Búsqueda por hashes de archivos
  • Búsqueda por tipo MIME
  • Accesos directos a tipos de archivos comunes
  • Modo interactivo
  • Varios formatos de salida (CSV, JSON y otros)

Ejemplos

Para descubrir el real potencial de esta herramienta lo mejor es ver algunos ejemplos de su uso,

  • Buscar archivos por nombre
   fselect name,path from ~/ where name like 'documento%'

Este comando busca todos los archivos en el directorio home cuyo nombre comienza con «documento».

  • Buscar archivos por tipo MIME
   fselect name,path from ~/ where mime = 'image/jpeg'

Este comando busca todos los archivos de tipo JPEG en el directorio home.

  • Buscar archivos por tamaño
   fselect name,path from ~/ where size > 1MB

Este comando busca todos los archivos en el directorio home que son mayores a 1 MB.

  • Buscar archivos por fecha de modificación
   fselect name,path from ~/ where modified > '2023-01-01'

Este comando busca todos los archivos que fueron modificados después del 1 de enero de 2023.

  • Buscar archivos por atributos extendidos
   fselect name,path from ~/ where xattr['user.comment'] = 'importante'

Este comando busca archivos que tienen un atributo extendido específico con el valor «importante».

  • Buscar imágenes por dimensiones,
   fselect name,path from ~/ where width > 1920 and height > 1080

Este comando busca imágenes en el directorio home que tienen una resolución mayor a 1920×1080.

  • Buscar archivos por hash,
   fselect * from ~/ where hash = 'abc123...'

Este comando busca un archivo específico por su hash.

  • Buscar archivos y mostrar solo el nombre y la ruta,
   fselect name, path from ~/ where name like 'proyecto%'

Este comando busca archivos cuyo nombre comienza con «proyecto» y muestra solo el nombre y la ruta.

Pero además te permite darle formato al resultado. Por ejemplo, puedes sacar el resultado en formato csv o json,

fselect * from ~/ where mime = 'image/jpeg' into json

Instalación

fselect se encuentra en los repositorios de Arch Linux, por lo que puedes instalarlo con el siguiente comando,

paru -S fselect

nping

Nping es una herramienta de Ping desarrollada en Rust. Soporta Ping concurrente para múltiples direcciones, visualización de gráficos, actualizaciones de datos en tiempo real y otras características.

Características

Algunas de las características de esta herramienta son las siguientes,

  • Soporta Ping concurrente para múltiples direcciones
  • Soporta visualización de latencia
  • Visualización en tiempo real de la latencia máxima, mínima, promedio, tasa de pérdida de paquetes y otras métricas
  • Soporta IPv4 e IPv6
  • Soporta el ping concurrente de n direcciones IP bajo una sola dirección.

Ejemplos

Claro, aquí tienes algunos ejemplos de cómo usar nping, que es una herramienta de la suite Nmap para enviar paquetes de red y realizar pruebas de conectividad:

  • Ping básico a una dirección IP,
   nping 192.168.1.1
  • Ping a un nombre de dominio,
   nping example.com
  • Especificar el número de paquetes a enviar,
   nping --count 5 192.168.1.1
  • Usar un intervalo en segundos entre paquetes,
   nping --interval 3 192.168.1.1

Instalación

Para los usuarios de Arch Linux, indicar que se encuentra en los repositorios AUR, por lo que puedes instalarlo con el siguiente comando,

paru -S nping

ouch

La herramienta que estabas buscando para comprimir y descomprimir de forma sencilla, y además implementada en Rust. ouch es una herramienta de compresión y descompresión de archivos que soporta varios formatos de archivo, incluidos ZIP, TAR, GZIP, BZIP2 y XZ.

Características

  • Fácil de usar.
  • Rápido.
  • Excelente retroalimentación de mensajes de error.
  • No se requieren dependencias en tiempo de ejecución (para Linux x86_64).
  • Modo de accesibilidad (ver más).
  • Completaciones de shell y páginas de manual.

Uso básico

Esto es lo que mas me gusta de esta herramienta, y es que ouch tiene básicamente tres subcomandos,

  • ouch decompress para descomprimir archivos.
  • ouch compress para comprimir archivos.
  • ouch list para listar los archivos comprimidos.

Instalación

Para los usuarios de Arch Linux, indicar que se encuentra en los repositorios oficiales, por lo que puedes instalarlo con el siguiente comando,

sudo pacman -S ouch

Más información,

1 comentario en “Tres herramientas espectaculares para Linux

  1. CR
    cr0t0 hace 1 hora

    Ya estoy probando fselect con un simple «cargo binstall fselect», y que creo me voy a llevar mejor que con el clásico «find» que nunca profundice en su uso. Ayer estaba probando justo el shell «nushell», que usa objetos como PowerShell, con un particular output en tablas y una sintaxis SQL-like. No lo uso como shell ya que no me puedo despegar de Fish pero es muy interesante, una herramienta más. Saludos!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *