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!