5 alternativas modernas para antigas ferramentas de linha de comando do Linux

Ao usar alternativas mais modernas junto com ferramentas de linha de comando mais antigas, você pode se divertir mais e até melhorar sua produtividade.

5 alternativas modernas para antigas ferramentas de linha de comando do Linux

Em nosso trabalho diário no Linux/Unix, usamos muitas ferramentas de linha de comando - por exemplo, du para monitorar o uso do disco e os recursos do sistema. Algumas dessas ferramentas já existem há muito tempo. Por exemplo, top apareceu em 1984, e o primeiro lançamento de du data de 1971.

Ao longo dos anos, essas ferramentas foram modernizadas e portadas para diferentes sistemas, mas em geral não se afastaram muito de suas primeiras versões, sua aparência e usabilidade também não mudaram muito.

Essas são ótimas ferramentas que muitos administradores de sistema precisam. No entanto, a comunidade desenvolveu ferramentas alternativas que oferecem benefícios adicionais. Alguns deles simplesmente possuem uma interface moderna e bonita, enquanto outros melhoram muito a usabilidade. Nesta tradução, falaremos sobre cinco alternativas às ferramentas padrão de linha de comando do Linux.

1. ncdu versus du

Uso do disco NCurses (NCDU) é semelhante ao du, mas com uma interface interativa baseada na biblioteca de Curses. ncdu exibe a estrutura de diretórios que ocupa a maior parte do espaço em disco.

O ncdu analisa o disco e exibe os resultados classificados pelos diretórios ou arquivos usados ​​com mais frequência, 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

Você pode navegar pelas entradas usando as teclas de seta. Se você pressionar Enter, o ncdu exibirá o conteúdo do diretório selecionado:

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

Você pode usar esta ferramenta para, por exemplo, determinar quais arquivos estão ocupando mais espaço em disco. Você pode ir para o diretório anterior pressionando a tecla de seta para a esquerda. Com o ncdu você pode excluir arquivos pressionando a tecla d. Ele pede confirmação antes de excluir. Se você deseja desabilitar o recurso de exclusão para evitar perda acidental de arquivos valiosos, use a opção -r para habilitar o modo de acesso somente leitura: ncdu -r.

ncdu está disponível para muitas plataformas e distribuições Linux. Por exemplo, você pode usar o dnf para instalá-lo no Fedora diretamente dos repositórios oficiais:

$ sudo dnf install ncdu

2. htop vs superior

htop é um visualizador de processo interativo semelhante ao top, mas pronto para uso oferece uma experiência agradável ao usuário. Por padrão, htop exibe as mesmas informações que top, mas de uma forma mais visual e colorida.

Por padrão, o htop se parece com isto:

5 alternativas modernas para antigas ferramentas de linha de comando do Linux
Ao contrário do topo:

5 alternativas modernas para antigas ferramentas de linha de comando do Linux
Além disso, htop exibe informações gerais sobre o sistema na parte superior e um painel para executar comandos usando teclas de função na parte inferior. Você pode configurá-lo pressionando F2 para abrir a tela de configuração. Em Configurações, você pode alterar cores, adicionar ou remover métricas ou alterar as opções de exibição do painel de visão geral.

Embora você possa obter uma usabilidade semelhante ajustando as configurações das versões mais recentes do top, o htop fornece configurações padrão convenientes, o que o torna mais prático e fácil de usar.

3. tldr vs homem

A ferramenta de linha de comando tldr exibe informações de ajuda simplificadas sobre comandos, principalmente exemplos. Foi desenvolvido pela comunidade projeto de páginas tldr.

É importante notar que o tldr não substitui o homem. Ainda é a ferramenta de saída de página de manual canônica e mais abrangente. Contudo, em alguns casos o homem é redundante. Quando você não precisa de informações abrangentes sobre um comando, você está apenas tentando lembrar seus usos básicos. Por exemplo, a página de manual do comando curl contém quase 3000 linhas. A página tldr para curl tem 40 linhas. Seu fragmento fica assim:


$ 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 “muito longo; não li": ou seja, algum texto foi ignorado devido à sua verbosidade excessiva. O nome é apropriado para esta ferramenta porque as páginas de manual, embora úteis, às vezes podem ser muito longas.

Para o Fedora, o tldr foi escrito em Python. Você pode instalá-lo usando o gerenciador dnf. Normalmente, a ferramenta requer acesso à Internet para funcionar. Mas o cliente Python do Fedora permite que essas páginas sejam baixadas e armazenadas em cache para acesso offline.

4.jq versus sed/grep

jq é um processador JSON para linha de comando. É semelhante ao sed ou grep, mas foi projetado especificamente para funcionar com dados JSON. Se você é um desenvolvedor ou administrador de sistema que usa JSON nas tarefas diárias, esta ferramenta é para você.

A principal vantagem do jq em relação às ferramentas padrão de processamento de texto, como grep e sed, é que ele entende a estrutura de dados JSON, permitindo criar consultas complexas em uma única expressão.

Por exemplo, você está tentando encontrar nomes de contêineres neste arquivo 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 encontrar o nome da string:

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

grep retornou todas as linhas contendo a palavra nome. Você pode adicionar mais algumas opções ao grep para restringi-lo e usar alguma manipulação de expressões regulares para encontrar os nomes dos contêineres.

Para obter o mesmo resultado usando jq, basta escrever:

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

Este comando fornecerá os nomes de ambos os contêineres. Se você está procurando apenas o nome do segundo contêiner, adicione o índice do elemento do array à expressão:

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

Como jq conhece a estrutura de dados, ele produz os mesmos resultados mesmo que o formato do arquivo mude ligeiramente. grep e sed podem não funcionar corretamente neste caso.

jq tem muitas funções, mas é necessário outro artigo para descrevê-las. Para mais informações por favor entre em contato página do projeto jq ou para tldr.

5. fd vs encontrar

fd é uma alternativa simplificada ao utilitário find. O Fd não pretende substituí-lo completamente: ele possui as configurações mais comuns instaladas por padrão, definindo a abordagem geral para trabalhar com arquivos.

Por exemplo, ao pesquisar arquivos em um diretório de repositório Git, fd exclui automaticamente arquivos e subdiretórios ocultos, incluindo o diretório .git, e também ignora caracteres curinga do arquivo .gitignore. No geral, ele acelera as pesquisas ao retornar resultados mais relevantes na primeira tentativa.

Por padrão, fd realiza uma pesquisa sem distinção entre maiúsculas e minúsculas no diretório atual, com saída colorida. A mesma pesquisa usando o comando find requer a inserção de parâmetros adicionais na linha de comando. Por exemplo, para localizar todos os arquivos .md (ou .MD) no diretório atual, você escreveria um comando find como este:

$ find . -iname "*.md"

Para fd fica assim:

$ fd .md

Mas, em alguns casos, fd também requer opções adicionais: por exemplo, se você quiser incluir arquivos e diretórios ocultos, deverá usar a opção -H, embora isso geralmente não seja necessário durante a pesquisa.

fd está disponível para muitas distribuições Linux. No Fedora ele pode ser instalado assim:

$ sudo dnf install fd-find

Você não precisa desistir de nada

Você está usando as novas ferramentas de linha de comando do Linux? Ou você se senta exclusivamente nos antigos? Mas provavelmente você tem um combo, certo? Por favor, compartilhe sua experiência nos comentários.

Como a publicidade

Muitos de nossos clientes já apreciaram os benefícios servidores épicos!
Ele servidores virtuais com processadores AMD EPYC, Frequência do núcleo da CPU de até 3.4 GHz. A configuração máxima permitirá que você se divirta - 128 núcleos de CPU, 512 GB de RAM, 4000 GB de NVMe. Apresse-se para fazer o pedido!

5 alternativas modernas para antigas ferramentas de linha de comando do Linux

Fonte: habr.com

Adicionar um comentário