5 alternativas modernas a las antiguas herramientas de línea de comandos de Linux

Utilizando alternativas más modernas junto con las antiguas herramientas de línea de comandos, se puede disfrutar más e incluso aumentar la productividad.

5 alternativas modernas a las antiguas herramientas de línea de comandos de Linux

En el trabajo diario en Linux/Unix, utilizamos muchas herramientas de línea de comandos, por ejemplo, du para monitorear el uso del disco y los recursos del sistema. Algunas de estas herramientas han existido durante mucho tiempo. Por ejemplo, top apareció en 1984, y la primera versión de du data de 1971.

A lo largo de los años, estas herramientas han sido modernizadas y portadas a diferentes sistemas, pero en general no se han alejado mucho de sus primeras versiones, su apariencia y usabilidad tampoco han cambiado drásticamente.

Son herramientas excelentes que son necesarias para muchos administradores de sistemas. Sin embargo, la comunidad ha desarrollado herramientas alternativas que ofrecen ventajas adicionales. Algunas simplemente tienen una interfaz moderna y atractiva, mientras que otras mejoran significativamente la facilidad de uso. En esta traducción hablaremos sobre cinco alternativas a las herramientas de línea de comandos estándar de Linux.

1. ncdu vs du

NCurses Disk Usage (ncdu) es similar a du, pero con una interfaz interactiva basada en la biblioteca curses. ncdu muestra la estructura de directorios que ocupan la mayor parte de tu espacio en disco.

ncdu analiza el disco y luego muestra los resultados, ordenados por los directorios o archivos que más se utilizan, por ejemplo:

ncdu 1.14.2 ~ Usa las teclas de flecha para navegar, presiona ? para ayuda
--- /home/rgerardi ------------------------------------------------------------
   96.7 GiB [##########] /libvirt
   33.9 GiB [###       ] /.crc
    7.0 GiB [          ] /Projects
.   4.7 GiB [          ] /Downloads
.   3.9 GiB [          ] /.local
    2.5 GiB [          ] /.minishift
    2.4 GiB [          ] /.vagrant.d
.   1.9 GiB [          ] /.config
.   1.8 GiB [          ] /.cache
    1.7 GiB [          ] /Videos
    1.1 GiB [          ] /go
  692.6 MiB [          ] /Documents
. 591.5 MiB [          ] /tmp
  139.2 MiB [          ] /.var
  104.4 MiB [          ] /.oh-my-zsh
   82.0 MiB [          ] /scripts
   55.8 MiB [          ] /.mozilla
   54.6 MiB [          ] /.kube
   41.8 MiB [          ] /.vim
   31.5 MiB [          ] /.ansible
   31.3 MiB [          ] /.gem
   26.5 MiB [          ] /.VIM_UNDO_FILES
   15.3 MiB [          ] /Personal
    2.6 MiB [          ]  .ansible_module_generated
    1.4 MiB [          ] /backgrounds
  944.0 KiB [          ] /Pictures
  644.0 KiB [          ]  .zsh_history
  536.0 KiB [          ] /.ansible_async
 Uso total del disco: 159.4 GiB  Tamaño aparente: 280.8 GiB  Elementos: 561540

Puedes moverte por las entradas usando las teclas de flecha. Si presionas Enter, ncdu mostrará el contenido del directorio seleccionado:

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

Puede utilizar esta herramienta para, por ejemplo, determinar qué archivos ocupan más espacio en disco. Puede volver al directorio anterior presionando la tecla de flecha hacia la izquierda. Con ncdu puede eliminar archivos presionando la tecla d. Antes de eliminar, solicita confirmación. Si desea desactivar la función de eliminación para evitar la pérdida accidental de archivos valiosos, utilice la opción -r para habilitar el modo de solo lectura: ncdu -r.

ncdu está disponible para muchas plataformas y distribuciones de Linux. Por ejemplo, puede usar dnf para instalarlo en Fedora directamente desde los repositorios oficiales:

$ sudo dnf install ncdu

2. htop vs top

Htop es una herramienta interactiva para ver procesos, similar a top, pero que ofrece una interacción más amigable desde el principio. Por defecto, htop muestra la misma información que top, pero de una manera más visual y colorida.

Por defecto, htop se ve así:

5 alternativas modernas a las antiguas herramientas de línea de comandos de Linux
A diferencia de top:

5 alternativas modernas a las antiguas herramientas de línea de comandos de Linux
Además, en la parte superior de htop se muestra información general del sistema, y en la parte inferior hay un panel para ejecutar comandos con las teclas de función. Puede configurarlo presionando F2 para abrir la pantalla de configuración. En la configuración, puede cambiar los colores, agregar o eliminar métricas o cambiar la forma en que se muestra el panel de resumen.

Aunque, al ajustar la configuración de las últimas versiones de top, también se puede lograr una usabilidad similar, htop ofrece configuraciones predeterminadas convenientes, lo que lo hace más práctico y fácil de usar.

3. tldr vs man

La herramienta de línea de comandos tldr muestra información de referencia simplificada sobre comandos, principalmente ejemplos. Fue desarrollada por la comunidad tldr pages project.

Cabe destacar que tldr no reemplaza a man. Sigue siendo la herramienta canónica y más completa para mostrar páginas de referencia. Sin embargo, en algunos casos, man es redundante. Cuando no necesita información exhaustiva sobre un comando, simplemente intenta recordar las opciones básicas de uso. Por ejemplo, la página man para el comando curl contiene casi 3000 líneas. La página tldr para curl tiene 40 líneas. Un fragmento se ve así:


$ tldr curl

# curl
  Transfiere datos desde o hacia un servidor.
  Soporta la mayoría de protocolos, incluidos HTTP, FTP y POP3.
  Más información: .

- Descarga el contenido de una URL a un archivo:

  curl http://example.com -o filename

- Descarga un archivo, guardando la salida bajo el nombre de archivo indicado en la URL:

  curl -O http://example.com/filename

- Descarga un archivo, siguiendo las redirecciones [L]ocation, y continuando automáticamente (reanudando) una transferencia de archivo anterior:

  curl -O -L -C - http://example.com/filename

- Envía datos codificados en formulario (solicitud POST de tipo `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form
- Envía una solicitud con un encabezado adicional, usando un método HTTP personalizado:

  curl -H 'X-My-Header: 123' -X PUT http://example.com
- Envía datos en formato JSON, especificando la cabecera de tipo de contenido adecuada:

  curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

... TRUNCATED OUTPUT

TLDR significa "demasiado largo; no leído": es decir, algún texto fue ignorado debido a su excesiva verbosidad. El nombre es adecuado para esta herramienta, ya que las páginas man, aunque útiles, a veces son demasiado largas.

Para Fedora, tldr fue escrito en Python. Puedes instalarlo usando el gestor dnf. Normalmente, se requiere acceso a Internet para utilizar la herramienta. Sin embargo, el cliente de Python en Fedora permite descargar y almacenar en caché estas páginas para acceso sin conexión.

4. jq vs sed/grep

jq es un procesador JSON para la línea de comandos. Es similar a sed o grep, pero diseñado específicamente para trabajar con datos en formato JSON. Si eres un desarrollador o administrador de sistemas que usa JSON en tareas diarias, esta herramienta es para ti.

La principal ventaja de jq sobre las herramientas de procesamiento de texto estándar, como grep y sed, es que entiende la estructura de los datos JSON, lo que permite crear consultas complejas en una sola expresión.

Por ejemplo, intentas encontrar los nombres de los contenedores en este archivo JSON:

{
  "apiVersion": "v1",
  "kind": "Pod",
  "metadata": {
    "labels": {
      "app": "myapp"
    },
    "name": "myapp",
    "namespace": "project1"
  },
  "spec": {
    "containers": [
      {
        "command": [
          "sleep",
          "3000"
        ],
        "image": "busybox",
        "imagePullPolicy": "IfNotPresent",
        "name": "busybox"
      },
      {
        "name": "nginx",
        "image": "nginx",
        "resources": {},
        "imagePullPolicy": "IfNotPresent"
      }
    ],
    "restartPolicy": "Never"
  }
}

Ejecuta grep para buscar la línea name:

$ grep name k8s-pod.json
        "name": "myapp",
        "namespace": "project1"
                "name": "busybox"
                "name": "nginx",

grep devolvió todas las líneas que contienen la palabra name. Puede agregar algunos parámetros adicionales a grep para limitarlo, y mediante algunas manipulaciones con expresiones regulares, encontrar los nombres de los contenedores.

Para obtener el mismo resultado con jq, basta con escribir:

$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"

Este comando te dará los nombres de ambos contenedores. Si buscas solo el nombre del segundo contenedor, agrega el índice del elemento del array a la expresión:

$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"

Dado que jq conoce la estructura de los datos, proporciona los mismos resultados incluso si el formato del archivo cambia ligeramente. En este caso, grep y sed pueden no funcionar correctamente.

jq tiene muchas funciones, pero para describirlas se necesitaría otro artículo. Para más información, consulta la página del proyecto jq o tldr.

5. fd vs find

fd es una alternativa simplificada a la utilidad find. Fd no está diseñado para reemplazarla por completo: tiene configuraciones predeterminadas que definen un enfoque general para trabajar con archivos.

Por ejemplo, al buscar archivos en un directorio de un repositorio Git, fd excluye automáticamente archivos y subdirectorios ocultos, incluyendo el directorio .git, y también ignora patrones del archivo .gitignore. En general, acelera las búsquedas, ofreciendo resultados más relevantes desde el primer intento.

Por defecto, fd realiza la búsqueda sin considerar mayúsculas en el directorio actual con salida en color. La misma búsqueda utilizando el comando find requiere la entrada de parámetros adicionales en la línea de comandos. Por ejemplo, para encontrar todos los archivos .md (o .MD) en el directorio actual, se necesita escribir el siguiente comando de find:

$ find . -iname "*.md"

Para fd, se ve así:

$ fd .md

Pero en algunos casos, también se requieren parámetros adicionales para fd: por ejemplo, si quieres incluir archivos y directorios ocultos, debes usar la opción -H, aunque generalmente no se requiere al buscar.

fd está disponible para muchas distribuciones de Linux. En Fedora, se puede instalar así:

$ sudo dnf install fd-find

No es necesario renunciar a nada

¿Estás utilizando nuevas herramientas de la línea de comandos de Linux? ¿O te quedas exclusivamente con las antiguas? Pero probablemente tengas una combinación, ¿verdad? Por favor, comparte tu experiencia en los comentarios.

Publicidad

Muchos de nuestros clientes ya han apreciado las ventajas de servidores épicos!
Es servidores virtuales con procesadores AMD EPYC, frecuencia del núcleo de la CPU de hasta 3.4 GHz. La configuración máxima permitirá liberar todo su potencial: 128 núcleos de CPU, 512 GB de RAM, 4000 GB de NVMe. ¡Apresúrate a hacer tu pedido!

5 alternativas modernas a las antiguas herramientas de línea de comandos de Linux

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster