5 alternativas modernas para ferramentas antigas de linha de comando Linux

Usando alternativas mais modernas, juntamente com as ferramentas de linha de comando antigas, você pode obter mais prazer e até aumentar a produtividade.







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



Ao longo dos anos, essas ferramentas foram atualizadas e portadas para sistemas diferentes, mas no geral elas não foram muito longe 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 sistemas precisam. No entanto, a comunidade desenvolveu ferramentas alternativas que oferecem benefícios adicionais. Alguns deles têm apenas uma interface moderna e bonita, enquanto outros melhoram bastante a usabilidade. Nesta tradução, falaremos sobre cinco alternativas às ferramentas de linha de comando padrão do Linux.



1.ncdu vs du



O uso do disco NCurses ( ncdu ) é semelhante ao du, mas com uma interface interativa baseada em maldições. O ncdu exibe a estrutura de diretórios que está ocupando a maior parte do espaço em disco.



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


As entradas podem ser navegadas 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 navegar para o diretório anterior pressionando a tecla de seta esquerda. Com o ncdu, você pode excluir arquivos pressionando a tecla d. Antes de excluir, ele solicita confirmação. Se você deseja desativar a função de exclusão para evitar a perda acidental de arquivos valiosos, use a opção -r para ativar o modo de acesso somente leitura: ncdu -r.



O 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 top



O Htop é um visualizador de processos interativo, semelhante ao topo, mas fornece uma experiência agradável ao usuário imediatamente. Por padrão, o htop exibe as mesmas informações que top, mas de uma maneira mais visual e colorida.



Por padrão, o htop fica assim:





Ao contrário do topo:





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



Embora o ajuste das configurações das versões mais recentes do top também consiga uma usabilidade semelhante, o htop fornece configurações padrão convenientes, o que o torna mais prático e fácil de usar.



3. tldr vs man



A ferramenta de linha de comando tldr exibe informações simplificadas de referência de comando, principalmente exemplos. Foi desenvolvido pela comunidade do projeto tldr pages .



Vale a pena notar que tldr não é um substituto para o homem. Ainda é a ferramenta canônica e mais completa para exibir páginas de manual. No entanto, em alguns casos, o homem é redundante. Quando você não precisa de informações abrangentes sobre nenhuma equipe, está apenas tentando lembrar as principais opções para seu uso. Por exemplo, a página de manual para curl é quase 3000 linhas. A página tldr para curl tem 40 linhas. Seu fragmento é 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 leu ”: ou seja, algum texto foi ignorado devido à sua excessiva verbosidade. O nome é apropriado para esta ferramenta porque as páginas do manual, embora úteis, às vezes são muito longas.



Para o Fedora, o tldr foi escrito em Python. Você pode instalá-lo usando o gerenciador dnf. Geralmente, a ferramenta requer acesso à Internet para funcionar. Mas o cliente Python no Fedora permite carregar e armazenar em cache essas páginas para acesso offline.



4.jq vs sed / grep



jq é um processador JSON para a linha de comandos. É semelhante ao sed ou grep, mas foi projetado especificamente para trabalhar com dados JSON. Se você é um desenvolvedor ou administrador de sistemas que usa JSON para suas tarefas diárias, esta é a ferramenta para você.



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



Por exemplo, você está tentando encontrar os nomes dos 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 procurar o nome da string:



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


grep retornou todas as linhas que contêm a palavra nome. Você pode adicionar mais algumas opções ao grep para restringi-lo e, com alguma manipulação de expressão regular, encontre os nomes dos contêineres.



Para obter o mesmo resultado com jq, basta escrever:



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


Este comando fornecerá os nomes dos dois contêineres. Se você estiver procurando apenas o nome do segundo contêiner, adicione o índice do elemento da matriz à expressão:



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


Como o jq está ciente da estrutura de dados, ele fornece os mesmos resultados, mesmo que o formato do arquivo mude um pouco. grep e sed podem não funcionar corretamente neste caso.



Jq tem muitas funções, mas é necessário outro artigo para descrevê-las. Para obter mais informações, consulte a página do projeto jq ou tldr.



5.fd vs encontrar



O fd é uma alternativa leve para encontrar. O Fd não pretende substituí-lo completamente: o padrão é as configurações mais comuns que determinam a abordagem geral para trabalhar com arquivos.



Por exemplo, ao procurar arquivos em um diretório de repositório Git, o fd exclui automaticamente arquivos e subdiretórios ocultos, incluindo o diretório .git, e ignora os modelos do arquivo .gitignore. No geral, acelera as pesquisas, fornecendo resultados mais relevantes na primeira tentativa.



Por padrão, o fd realiza uma pesquisa que não diferencia maiúsculas de minúsculas no diretório de saída de cores atual. A mesma pesquisa usando o comando find requer que parâmetros adicionais sejam inseridos na linha de comando. Por exemplo, para encontrar todos os arquivos .md (ou .MD) no diretório atual, você deve escrever um comando find como este:



$ find . -iname "*.md"


Para fd, fica assim:



$ fd .md


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



O fd está disponível para muitas distribuições Linux. No Fedora, você pode instalá-lo assim:



$ sudo dnf install fd-find


Você não precisa desistir de algo



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






Como anúncio



Muitos de nossos clientes já apreciaram os benefícios dos servidores épicos !

Estes são servidores virtuais com processadores AMD EPYC , com freqüência de núcleo de CPU de até 3,4 GHz. A configuração máxima permitirá que você atinja os 128 núcleos da CPU, 512 GB RAM, 4000 GB NVMe. Pressa para encomendar!






All Articles