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

Usando alternativas más modernas junto con las viejas herramientas de línea de comandos, puede obtener más placer e incluso aumentar la productividad.







En nuestro trabajo diario en Linux / Unix, utilizamos muchas herramientas de línea de comandos como 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.



Con los años, estas herramientas se han modernizado y portado a diferentes sistemas, pero en general no han ido muy lejos de sus primeras versiones, su apariencia y usabilidad tampoco han cambiado mucho.



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



1.ncdu vs du



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



ncdu analiza el disco y luego muestra los resultados ordenados por los directorios o archivos más utilizados, 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


Las entradas se pueden navegar 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 usar esta herramienta para, por ejemplo, determinar qué archivos ocupan más espacio en disco. Puede navegar al directorio anterior presionando la tecla de flecha izquierda. Con ncdu puede eliminar archivos presionando la tecla d. Antes de la eliminación, solicita confirmación. 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 acceso 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 un visor de procesos interactivo, similar a la parte superior, pero proporciona una experiencia de usuario agradable fuera de la caja. 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í:





A diferencia de la parte superior:





Además, en la parte superior, htop muestra información general sobre el sistema, y ​​en la parte inferior, un panel para ejecutar comandos utilizando las teclas de función. Puede personalizarlo presionando F2 para abrir la pantalla de personalización. En la configuración, puede cambiar los colores, agregar o eliminar métricas, o cambiar las opciones de visualización para el panel de vista general.



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



3.tldr vs hombre



La herramienta de línea de comandos tldr muestra información de referencia de comandos simplificada, en su mayoría ejemplos. Fue desarrollado por la comunidad del proyecto tldr pages .



Vale la pena señalar que tldr no es un reemplazo para el hombre. Sigue siendo la herramienta canónica y más completa para mostrar páginas de manual. Sin embargo, en algunos casos, el hombre es redundante. Cuando no necesita información completa sobre ningún equipo, solo está tratando de recordar las principales opciones para su uso. Por ejemplo, la página del comando man curl contiene casi 3.000 líneas. La página tldr para curl tiene 40 líneas de largo. 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 tiempo; no leyó ": es decir, algunos textos fueron ignorados debido a su excesiva verbosidad. El nombre es apropiado para esta herramienta porque las páginas man, aunque útiles, a veces son demasiado largas.



Para Fedora, tldr fue escrito en Python. Puede instalarlo usando dnf manager. Por lo general, la herramienta requiere acceso a internet para funcionar. Pero el cliente Fedora Python le permite descargar y almacenar en caché estas páginas para acceder sin conexión.



4.jq vs sed / grep



jq es un procesador JSON para la línea de comando. Es similar a sed o grep, pero está específicamente diseñado para trabajar con datos JSON. Si usted es un desarrollador o administrador del sistema que usa JSON en las tareas cotidianas, esta herramienta es 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 los datos JSON, lo que le permite crear consultas complejas en una sola declaración.



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


Ejecute grep para buscar 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 contienen el nombre de la palabra. Puede agregar algunos parámetros más a grep para restringirlo, y con algunas manipulaciones de expresiones regulares encuentre los nombres de los contenedores.



Para obtener el mismo resultado usando jq, simplemente escriba:



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


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



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


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



Jq tiene muchas funciones, pero se necesita otro artículo para describirlas. Consulte la página del proyecto jq o tldr para obtener más información .



5. fd vs encontrar



fd es una alternativa ligera para encontrar. Fd no tiene la intención de reemplazarlo por completo: por defecto tiene la configuración más común que determina 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, e ignora las plantillas del archivo .gitignore. En general, acelera la búsqueda al ofrecer resultados más relevantes en el primer intento.



Por defecto, fd realiza búsquedas que no distinguen entre mayúsculas y minúsculas en el directorio actual con salida de color. La misma búsqueda usando el comando find requiere 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 esto generalmente no es necesario para las búsquedas.



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



$ sudo dnf install fd-find


No tienes que renunciar a algo



¿Está utilizando las nuevas herramientas de línea de comandos de Linux? ¿O sentarse exclusivamente en lo viejo? Pero lo más probable es que tengas combos, ¿verdad? Por favor comparta su experiencia en los comentarios.






Publicidad



¡Muchos de nuestros clientes ya han apreciado los beneficios de los servidores épicos !

Estos son servidores virtuales con procesadores AMD EPYC , frecuencia de núcleo de CPU de hasta 3.4 GHz. La configuración máxima le permitirá salir al máximo: 128 núcleos de CPU, 512 GB de RAM, 4000 GB de NVMe. ¡Date prisa para ordenar!






All Articles