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

Al utilizar alternativas más modernas junto con herramientas de línea de comandos más antiguas, puede divertirse más e incluso mejorar su productividad.

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

En nuestro 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 existen desde hace mucho tiempo. Por ejemplo, top apareció en 1984 y el primer lanzamiento de du se remonta a 1971.

Con el paso de los años, estas herramientas se han ido modernizando y portando a diferentes sistemas, pero en general no se han alejado mucho de sus primeras versiones, su apariencia y usabilidad tampoco han cambiado mucho.

Estas son excelentes herramientas que muchos administradores de sistemas necesitan. Sin embargo, la comunidad ha desarrollado herramientas alternativas que ofrecen beneficios adicionales. Algunos de ellos simplemente tienen una interfaz hermosa y moderna, mientras que otros mejoran enormemente la usabilidad. En esta traducción, hablaremos de cinco alternativas a las herramientas de línea de comandos estándar de Linux.

1. ncdu vs du

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

ncdu analiza el disco y luego muestra los resultados ordenados por los directorios o archivos utilizados con más frecuencia, por ejemplo:

ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /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
 Total disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

Puede navegar por las entradas utilizando las teclas de flecha. Si presiona 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 el disco. Puede ir al directorio anterior presionando la tecla de flecha izquierda. Con ncdu puedes eliminar archivos presionando la tecla d. Pide confirmación antes de eliminar. Si desea deshabilitar la función de eliminación para evitar la pérdida accidental de archivos valiosos, use la opción -r para habilitar el modo de acceso de solo lectura: ncdu -r.

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

$ sudo dnf install ncdu

2. arriba vs arriba

Arriba es un visor de procesos interactivo similar a top, pero listo para usar proporciona una experiencia de usuario agradable. Por defecto, htop muestra la misma información que top, pero de una forma más visual y colorida.

Por defecto, htop tiene este aspecto:

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

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

Aunque puedes lograr una usabilidad similar modificando la configuración de las últimas versiones de top, htop proporciona configuraciones predeterminadas convenientes, lo que lo hace más práctico y fácil de usar.

3. tldr contra hombre

La herramienta de línea de comandos tldr muestra información de ayuda simplificada sobre los comandos, en su mayoría ejemplos. Fue desarrollado por la comunidad. proyecto de páginas tldr.

Vale la pena señalar que tldr no reemplaza a man. Sigue siendo la herramienta de salida de páginas de manual canónica y más completa. Sin embargo, en algunos casos el hombre sobra. Cuando no necesita información completa sobre un comando, simplemente intenta recordar sus usos básicos. Por ejemplo, la página de manual del comando curl contiene casi 3000 líneas. La página tldr para curl tiene 40 líneas. Su fragmento se ve así:


$ tldr curl

# curl
  Transfers data from or to a server.
  Supports most protocols, including HTTP, FTP, and POP3.
  More information: <https://curl.haxx.se>.

- Download the contents of an URL to a file:

  curl http://example.com -o filename

- Download a file, saving the output under the filename indicated by the URL:

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

- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:

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

- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form                                                                                            
- Send a request with an extra header, using a custom HTTP method:

  curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
- Send data in JSON format, specifying the appropriate content-type header:

  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 apropiado para esta herramienta porque las páginas de manual, aunque útiles, a veces pueden ser demasiado largas.

Para Fedora, tldr fue escrito en Python. Puedes instalarlo usando el administrador dnf. Normalmente, la herramienta requiere acceso a Internet para funcionar. Pero el cliente Python de Fedora permite descargar estas páginas y almacenarlas en caché para accederlas sin conexión.

4.jq frente a sed/grep

jq es un procesador JSON para la línea de comando. Es similar a sed o grep, pero está diseñado específicamente para trabajar con datos JSON. Si es desarrollador o administrador de sistemas y utiliza JSON en las tareas cotidianas, esta es la herramienta para usted.

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

Por ejemplo, está intentando buscar nombres de 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"
  }
}

Ejecute grep para encontrar el nombre de la cadena:

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

grep devolvió todas las líneas que contenían la palabra nombre. Puede agregar algunas opciones más a grep para restringirlo y usar alguna manipulación de expresiones regulares para encontrar los nombres de los contenedores.

Para obtener el mismo resultado usando jq, simplemente escribe:

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

Este comando le dará los nombres de ambos contenedores. Si busca solo el nombre del segundo contenedor, agregue el índice del elemento de la matriz a la expresión:

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

Dado que jq conoce la estructura de datos, produce los mismos resultados incluso si el formato del archivo cambia ligeramente. Es posible que grep y sed no funcionen correctamente en este caso.

jq tiene muchas funciones, pero se necesita otro artículo para describirlas. Para obtener más información, póngase en contacto página del proyecto jq o a tldr.

5. fd frente a encontrar

fd es una alternativa simplificada a la utilidad de búsqueda. Fd no pretende reemplazarlo por completo: tiene las configuraciones más comunes instaladas de forma predeterminada, lo que define el enfoque general para trabajar con archivos.

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

De forma predeterminada, fd realiza una búsqueda que no distingue entre mayúsculas y minúsculas en el directorio actual, con salida en color. La misma búsqueda usando el comando buscar requiere ingresar parámetros adicionales en la línea de comando. Por ejemplo, para buscar todos los archivos .md (o .MD) en el directorio actual, escribiría un comando de búsqueda como este:

$ find . -iname "*.md"

Para fd se ve así:

$ fd .md

Pero en algunos casos, fd también requiere opciones adicionales: por ejemplo, si desea incluir archivos y directorios ocultos, debe usar la opción -H, aunque generalmente esto no es necesario al realizar una búsqueda.

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

$ sudo dnf install fd-find

No tienes que renunciar a nada.

¿Estás utilizando las nuevas herramientas de línea de comandos de Linux? ¿O te sientas exclusivamente sobre los viejos? Pero lo más probable es que tengas un combo, ¿verdad? Por favor comparte tu experiencia en los comentarios.

Sobre los derechos de publicidad

Muchos de nuestros clientes ya han apreciado los beneficios. servidores épicos!
Lo servidores virtuales con procesadores AMD EPYC, Frecuencia del núcleo de la CPU de hasta 3.4 GHz. La configuración máxima te permitirá divertirte: 128 núcleos de CPU, 512 GB de RAM, 4000 GB de NVMe. ¡Date prisa para hacer el pedido!

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

Fuente: habr.com

Añadir un comentario