5 alternativas modernas ás antigas ferramentas de liña de comandos de Linux

Usando alternativas máis modernas xunto con ferramentas de liña de comandos máis antigas, podes divertirte máis e incluso mellorar a túa produtividade.

5 alternativas modernas ás antigas ferramentas de liña de comandos de Linux

No noso traballo diario en Linux/Unix, usamos moitas ferramentas de liña de comandos, por exemplo, para supervisar o uso do disco e os recursos do sistema. Algunhas destas ferramentas existen dende hai moito tempo. Por exemplo, top apareceu en 1984, e o primeiro lanzamento de du remóntase a 1971.

Co paso dos anos, estas ferramentas foron modernizando e portando a diferentes sistemas, pero en xeral non se afastaron das súas primeiras versións, o seu aspecto e usabilidade tampouco cambiaron moito.

Estas son excelentes ferramentas que necesitan moitos administradores de sistemas. Non obstante, a comunidade desenvolveu ferramentas alternativas que ofrecen beneficios adicionais. Algúns deles simplemente teñen unha interface moderna e fermosa, mentres que outros melloran moito a usabilidade. Nesta tradución, falaremos de cinco alternativas ás ferramentas estándar de liña de comandos de Linux.

1. ncdu vs du

Uso do disco NCurses (ncdu) é semellante a du, pero cunha interface interactiva baseada na biblioteca curses. ncdu mostra a estrutura de directorios que ocupa a maior parte do espazo do teu disco.

ncdu analiza o disco e despois mostra os resultados ordenados polos directorios ou ficheiros máis utilizados, por exemplo:

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

Podes navegar polas entradas usando as teclas de frecha. Se preme Intro, ncdu mostrará o contido do directorio seleccionado:

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

Podes usar esta ferramenta para, por exemplo, determinar cales son os ficheiros que ocupan máis espazo no disco. Podes ir ao directorio anterior premendo a tecla de frecha esquerda. Con ncdu pode eliminar ficheiros premendo a tecla d. Solicita confirmación antes de eliminalo. Se queres desactivar a función de eliminación para evitar a perda accidental de ficheiros valiosos, utiliza a opción -r para activar o modo de acceso de só lectura: ncdu -r.

ncdu está dispoñible para moitas plataformas e distribucións Linux. Por exemplo, podes usar dnf para instalalo en Fedora directamente desde os repositorios oficiais:

$ sudo dnf install ncdu

2. htop vs top

htop é un visor de procesos interactivo semellante ao superior, pero ofrece unha experiencia de usuario agradable. Por defecto, htop mostra a mesma información que top, pero dun xeito máis visual e colorido.

Por defecto, htop ten este aspecto:

5 alternativas modernas ás antigas ferramentas de liña de comandos de Linux
A diferenza de arriba:

5 alternativas modernas ás antigas ferramentas de liña de comandos de Linux
Ademais, htop mostra información xeral sobre o sistema na parte superior e un panel para executar comandos mediante teclas de función na parte inferior. Podes configuralo premendo F2 para abrir a pantalla de configuración. En Configuración, pode cambiar as cores, engadir ou eliminar métricas ou cambiar as opcións de visualización do panel de visión xeral.

Aínda que podes conseguir unha usabilidade similar axustando a configuración das últimas versións de top, htop ofrece configuracións predeterminadas convenientes, o que o fai máis práctico e máis fácil de usar.

3. tldr vs home

A ferramenta de liña de comandos tldr mostra información de axuda simplificada sobre comandos, principalmente exemplos. Foi desenvolvido pola comunidade Proxecto de páxinas tldr.

Paga a pena notar que tldr non é un substituto do home. Aínda é a ferramenta de saída de páxinas de man canónica e máis completa. Porén, nalgúns casos o home é redundante. Cando non precisa información completa sobre un comando, só está a tentar lembrar os seus usos básicos. Por exemplo, a páxina de manual do comando curl contén case 3000 liñas. A páxina tldr para curl ten 40 liñas. O seu fragmento ten o seguinte aspecto:


$ 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 longo; non leu": é dicir, algún texto foi ignorado debido á súa excesiva verbosidade. O nome é apropiado para esta ferramenta porque as páxinas de manual, aínda que son útiles, ás veces poden ser demasiado longas.

Para Fedora, tldr escribiuse en Python. Podes instalalo usando o xestor dnf. Normalmente, a ferramenta require acceso a Internet para funcionar. Pero o cliente Python de Fedora permite que estas páxinas sexan descargadas e almacenadas na caché para acceder sen conexión.

4.jq vs sed/grep

jq é un procesador JSON para a liña de comandos. É semellante a sed ou grep, pero está deseñado especificamente para funcionar con datos JSON. Se es un programador ou administrador do sistema que usa JSON nas tarefas cotiás, esta é a ferramenta para ti.

A principal vantaxe de jq fronte ás ferramentas estándar de procesamento de texto como grep e sed é que comprende a estrutura de datos JSON, o que lle permite crear consultas complexas nunha única expresión.

Por exemplo, estás tentando buscar nomes de contedores neste ficheiro 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"
  }
}

Execute grep para atopar o nome da cadea:

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

grep devolveu todas as liñas que conteñen o nome da palabra. Podes engadir algunhas opcións máis a grep para restrinxilo e usar algunha manipulación de expresións regulares para atopar os nomes dos contedores.

Para obter o mesmo resultado usando jq, escriba:

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

Este comando darache os nomes de ambos os contedores. Se está a buscar só o nome do segundo contedor, engade o índice do elemento da matriz á expresión:

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

Xa que jq coñece a estrutura de datos, produce os mesmos resultados aínda que o formato do ficheiro cambie lixeiramente. grep e sed poden non funcionar correctamente neste caso.

jq ten moitas funcións, pero é necesario outro artigo para describilas. Para máis información póñase en contacto páxina do proxecto jq ou a tldr.

5. fd vs atopar

fd é unha alternativa simplificada á utilidade find. Fd non pretende substituílo por completo: ten os axustes máis comúns instalados por defecto, que definen o enfoque xeral para traballar con ficheiros.

Por exemplo, ao buscar ficheiros nun directorio do repositorio de Git, fd exclúe automaticamente os ficheiros e subdirectorios ocultos, incluído o directorio .git, e tamén ignora os comodíns do ficheiro .gitignore. En xeral, acelera as buscas ao devolver resultados máis relevantes no primeiro intento.

De xeito predeterminado, fd realiza unha busca sen distinción entre maiúsculas e minúsculas no directorio actual, con saída en cor. A mesma busca usando o comando find require introducir parámetros adicionais na liña de comandos. Por exemplo, para atopar todos os ficheiros .md (ou .MD) no directorio actual, escribiría un comando find coma este:

$ find . -iname "*.md"

Para fd parece isto:

$ fd .md

Pero nalgúns casos, fd tamén require opcións adicionais: por exemplo, se queres incluír ficheiros e directorios ocultos, debes utilizar a opción -H, aínda que normalmente non é necesaria cando se busca.

fd está dispoñible para moitas distribucións de Linux. En Fedora pódese instalar así:

$ sudo dnf install fd-find

Non tes que renunciar a nada

Estás a usar as novas ferramentas de liña de comandos de Linux? Ou sentas exclusivamente nos vellos? Pero o máis probable é que teñas un combo, non? Comparte a túa experiencia nos comentarios.

Sobre os dereitos da publicidade

Moitos dos nosos clientes xa apreciaron os beneficios servidores épicos!
El servidores virtuais con procesadores AMD EPYC, Frecuencia do núcleo da CPU ata 3.4 GHz. A configuración máxima permitirache divertirte: 128 núcleos de CPU, 512 GB de RAM, 4000 GB NVMe. ¡Apresúrate a ordenar!

5 alternativas modernas ás antigas ferramentas de liña de comandos de Linux

Fonte: www.habr.com

Engadir un comentario