648 - Cuatro herramientas que te harán la vida más fácil en Linux

648 - Cuatro herramientas que te harán la vida más fácil en Linux

Cuatro herramientas en #linux que te harán la vida más fácil y que mejoraran tu productividad y tu relación con la #terminal

1:25
-3:15

Hoy de nuevo, te traigo algunas herramientas, que con toda seguridad te harán la vida más fácil en Linux. Y es que, como ya te he comentado en algún que otro episodio del podcast, la llegada de Rust el mundo Linux, nos ha traído un soplo de viento fresco. Algunas de las, como yo digo vetustas herramientas GNU, están siendo reescritas, en Rust, y eso nos está trayendo algunas herramientas realmente interesantes. En algunos casos, simplemente se trata de una mejora de rendimiento, en otros casos, simplemente se trata de una mejora de usabilidad. Pero, en todos los casos, se trata de herramientas que te harán la vida más fácil en Linux. Y es que, como ya te he comentado en alguna ocasión, en Linux, la potencia de la terminal, es algo que no tiene parangón. Y es que, en la terminal, puedes hacer prácticamente de todo. Y, si a eso le sumas, herramientas realmente potentes

Cuatro herramientas que te harán la vida más fácil en Linux

sd la alternativa a sed

La primera de las herramientas de la que te quiero hablar es sd. No se como no había caído antes en esta herramienta, por que se me había pasado por alto, en la incesante búsqueda de nuevas herramientas implementadas en Rust, o que diantres ha sucedido, pero lo cierto es que hasta hace unos días no he empezado a utilizar esta herramientas y es una verdadera lástima.
sd es una alternativa a sed, pero con una sintaxis mucho más sencilla. Y es que, si bien sed es una herramienta muy potente, su sintaxis es un tanto peculiar. sd simplifica la sintaxis de sed y la hace mucho más comprensible. Y es que, en sd no tienes que preocuparte por los delimitadores, ni por las expresiones regulares, ni por los comandos.
sd simplemente busca una cadena de texto y la sustituye por otra. Y es que, en la mayoría de los casos, es lo que necesitas. Y es que, en la mayoría de los casos, no necesitas más. Si, estoy muy acostumbrado a utilizar las expresiones regulares tal y como lo hago en Neovim, pero lo cierto, es que esta nueva propuesta lo hace todo mucho mas sencillo.
Los propios desarrolladores de esta herramienta, justifican la implementación de esta herramienta en base a cuatro aspectos fundalmentales,

  • sd utiliza la sintaxis de expresiones regulares que ya conoces de JavaScript y Python. Olvídate de lidiar con las peculiaridades de sed o awk: sé productivo de inmediato.
  • Búsqueda y reemplazo sin expresiones regulares. No más barras invertidas ni necesidad de recordar qué caracteres son especiales y deben escaparse. Pero por supuesto, si quieres realizar búsquedas y reemplazos con expresiones regulares lo puedes hacer.
  • Las expresiones de búsqueda y reemplazo están separadas, lo que las hace fáciles de leer y escribir. No más problemas con barras sin cerrar o escapadas.
  • Los valores predeterminados siguen el sentido común y están adaptados para un uso típico diario. No más necesidad de buscar en la documentación para recordar cómo hacer algo simple.

Algunos ejemplos comparativos

  • Sintaxis mas sencilla
    • sd: sd before after
    • sed: sed s/before/after/g
  • Reemplazar saltos de línea por comas
  • sd: sd '\n' ','
  • sed: sed ':a;N;$!ba;s/\n/,/g'
  • Extraer cosas de cadenas que contienen barras
    • sd: echo "sample with /path/" | sd '.*(/.*/)' '$1'
    • sed: echo "sample with /path/" | sed -E 's/.*(\\/.*\\/)/\1/g'
    • Con sed, puedes mejorar con un delimitador diferente, pero sigue siendo un lío:
      • echo "sample with /path/" | sed -E 's|.*(/.*/)|\1|g'
  • Modificación in situ de archivos
    • sd: sd before after file.txt
    • sed: sed -i -e 's/before/after/g' file.txt

Rendimiento

sd es mucho más rápido que sed. Dependiendo de la tarea que tenga que hacer puede estar entre 2 y 12 veces mas. Te remito a la página de GitHub para que puedas ver la diferencia espectacular entre ambas.

Instalación

Respecto a la instalación, sd está disponible en los repositorios de la mayoría de las distribuciones, por lo que su instalación es tan sencilla como ejecutar,

sudo apt install sd

O en el caso de ArchLinux, lo puedes hacer con,

sudo pacman -S sd

¿Algunos ejemplo de para que utilizar sd?

  • Reemplazar texto en un archivo
  • Sustituir texto con delimitadores complejos
  • Procesar la entrada estándar
  • Reemplazos con expresiones regulares

Lo que sd NO puede hacer (todavía)

A diferencia de sed, sd no tiene opciones para:

  • Eliminar líneas específicas: Ejemplo, sed ‘3d’ archivo.txt.
  • Imprimir líneas específicas: Ejemplo, sed -n ‘5p’ archivo.txt.
  • Insertar texto en líneas específicas: Ejemplo, sed ‘2i\Texto’ archivo.txt.
  • Trabajar con rangos de líneas: Ejemplo, sed -n ‘2,4p’ archivo.txt.

Resolviendo el llenado de una partición con dust

Otro de los problemas con los que me enfrento de forma frecuente es el llenado de una partición. Pero es que además de esto, necesitas determinar ¿Que llenó la partición?, y te puedo asegurar que en ocasiones se hace realmente complejo. Sin embargo, esto lo puedes resolver utilizando dust.

du (Disk Usage):

  • Una herramienta clásica y ampliamente disponible en cualquier sistema Linux.
  • Calcula el uso de espacio en disco de archivos y directorios.
  • Su salida es funcional pero minimalista, en formato de texto plano.

dust:

  • Una alternativa moderna a du, escrita en Rust.
  • Proporciona una salida más amigable y organizada, diseñada para facilitar la interpretación.
  • Requiere instalación adicional (no está preinstalado en la mayoría de los sistemas).

Principales diferencias

Característicadudust
DisponibilidadPreinstalado en casi todas las distribuciones.Necesita ser instalado manualmente.
VelocidadRápido, pero depende del sistema de archivos.Rápido y optimizado gracias a Rust.
InterfazMinimalista, salida en texto plano.Colorida y organizada en árbol.
Facilidad de usoOpciones y sintaxis básicas, pero menos intuitivas.Muy fácil de entender desde el primer uso.
CompatibilidadDisponible en todos los sistemas Unix-like.Requiere soporte para binarios de Rust.
VisualizaciónNo tiene soporte para colores ni gráficos.Usa colores y formato árbol para mejor claridad.
Tamaños en Human-ReadableNecesitas usar -h para resultados legibles.Mostrado por defecto.

Algunos ejemplos prácticos

Listar uso de disco de un directorio

Con du:

du -sh /ruta/directorio

Con dust:

dust /ruta/directorio
Ver el uso de disco de todos los subdirectorios

Con du:

du -sh /ruta/*

Con dust (se muestra en formato de árbol automáticamente):

dust /ruta

Ventajas de cada uno

Ventajas de du

  1. Está preinstalado y disponible en cualquier sistema Linux/Unix.
  2. Más personalizable para scripts y configuraciones avanzadas.
  3. Confiable y probado a lo largo del tiempo.

Ventajas de dust

  1. Visualmente atractivo, con colores y jerarquías fáciles de leer.
  2. Más intuitivo, ideal para principiantes.
  3. Soporte por defecto para mostrar tamaños legibles sin necesidad de opciones adicionales.

¿Cuándo utilizar cada uno?

  • Usa du si:
    • Necesitas una herramienta estándar disponible en cualquier sistema Linux.
    • Estás escribiendo scripts que requieren compatibilidad universal.
    • No te importa lidiar con una salida menos visual.
  • Usa dust si:
    • Prefieres una salida visual y fácil de interpretar.
    • Trabajas en sistemas modernos donde puedes instalarlo.
    • Quieres identificar rápidamente qué directorios ocupan más espacio en un árbol jerárquico.

Mejorando el clásico ps de la mano de procs

ps es la típica herramienta clásica y esencial en Linux para listar información sobre los procesos en ejecución. Es realmente muy flexible y ampliamente utilizada en scripts y administración del sistema. Además ofrece varias opciones para personalizar la salida, pero su sintaxis puede ser confusa.
Por otro lado procs es una alternativa moderna a ps, escrita en Rust. Ofrece una interfaz más amigable y colorida, diseñada para facilitar la lectura. Incluye funcionalidades modernas como búsqueda interactiva y columnas dinámicas.

¿Que diferencias puedes encontrar entre una y otra?

Característicapsprocs
DisponibilidadPreinstalado en cualquier sistema Linux/Unix.Requiere instalación manual (escrito en Rust).
InterfazTexto plano, sin colores ni jerarquías.Salida colorida y más legible.
UsabilidadComplejo para usuarios nuevos (sintaxis mixta).Más intuitivo, con búsquedas interactivas.
Opciones interactivasNo disponible (solo salida estática).Permite búsquedas y filtrado en tiempo real.
RendimientoMuy rápido y eficiente.También rápido gracias a Rust.
PersonalizaciónMuy flexible con opciones complejas.Personalización limitada pero suficiente.
Salida por defectoInformación básica sobre procesos.Incluye columnas más útiles por defecto.

¿Cuando utilizar uno u otro?

  • Usa ps si:
    • Necesitas una herramienta estándar para scripts y administración remota.
    • Trabajas en sistemas donde no puedes instalar software adicional.
    • Prefieres control total sobre la salida y opciones.
  • Usa procs si:
    • Quieres una experiencia más visual y fácil de interpretar.
    • Necesitas buscar o filtrar procesos rápidamente.
    • Trabajas en sistemas modernos donde puedes instalar herramientas de Rust.

Otra alternativa a top de la mano de btm

top y btm (Bottom) son herramientas para monitorear procesos en tiempo real en Linux, pero tienen diferencias clave en términos de diseño, funcionalidades y facilidad de uso.
top es la típica herramienta clásica y ampliamente utilizada en Linux para monitorear procesos, carga del sistema, memoria y CPU en tiempo real. Viene preinstalada en la mayoría de los sistemas. Y además se caracteriza por ser funcional, pero con una interfaz minimalista y menos intuitiva para usuarios nuevos.
Por otro lado btm es una alternativa moderna a top, escrita en Rust. Ofrece una interfaz más atractiva y organizada, con gráficos y colores. Diseñada para ser intuitiva, ideal para usuarios que buscan una experiencia visual mejorada.

Una comparativa

Característicatopbtm
DisponibilidadPreinstalada en todos los sistemas Linux/Unix.Requiere instalación manual (escrito en Rust).
InterfazTexto plano y minimalista.Colorida, con gráficos para CPU/memoria.
Facilidad de usoComplejo para principiantes.Muy intuitivo y fácil de navegar.
InteractividadSoporte básico (ordenar, buscar, matar procesos).Más opciones interactivas y visualización.
Visualización gráficaNo tiene gráficos.Incluye gráficos en tiempo real de CPU y memoria.
RendimientoMuy ligero y eficiente.Ligero y eficiente gracias a Rust.
ConfiguraciónLimitada, salida predeterminada básica.Personalizable con configuración avanzada.
Salidas específicasOpciones básicas para filtrar y ordenar.Soporte nativo para filtrar, buscar y ordenar.

¿Cuándo usar cada uno?

  • Usa top si:
    • Necesitas una herramienta estándar que funcione en cualquier sistema.
    • Estás ejecutando tareas simples de monitoreo.
    • Prefieres algo extremadamente ligero y sin dependencias adicionales.
  • Usa btm si:
    • Quieres una experiencia visual moderna y más completa.
    • Necesitas gráficos de rendimiento en tiempo real.
    • Trabajas en sistemas modernos donde puedes instalar herramientas adicionales.

Más información,

Deja una respuesta

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