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.
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 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
Por defecto, htop tiene este aspecto:
A diferencia de arriba:
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.
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
5. fd frente a encontrar
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
Fuente: habr.com