Usando alternativas mais modernas juntamente com as antigas ferramentas de linha de comando, é possível ter mais prazer e até aumentar a produtividade.

No dia a dia no Linux / Unix, utilizamos várias ferramentas de linha de comando — por exemplo, du para monitorar o uso de disco e recursos do sistema. Algumas dessas ferramentas existem há muito tempo. Por exemplo, o top surgiu em 1984, e o primeiro lançamento do du data de 1971.
Ao longo dos anos, essas ferramentas foram modernizadas e portadas para diferentes sistemas, mas, de modo geral, não se afastaram muito de suas versões iniciais, e sua aparência e usabilidade também não mudaram muito.
Essas são ótimas ferramentas necessárias para muitos administradores de sistema. No entanto, a comunidade desenvolveu ferramentas alternativas que oferecem benefícios adicionais. Algumas delas simplesmente possuem uma interface moderna e bonita, enquanto outras melhoram significativamente a usabilidade. Neste texto, falaremos sobre cinco alternativas às ferramentas padrão de linha de comando do Linux.
1. ncdu vs du
NCurses Disk Usage () é semelhante ao du, mas com uma interface interativa baseada na biblioteca curses. O ncdu exibe a estrutura de diretórios que ocupam a maior parte do seu espaço em disco.
O ncdu analisa o disco e, em seguida, exibe os resultados ordenados pelos diretórios ou arquivos mais utilizados, por exemplo:
ncdu 1.14.2 ~ Use as teclas de seta para navegar, pressione ? para ajuda
--- /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
Uso total do disco: 159.4 GiB Tamanho aparente: 280.8 GiB Itens: 561540Você pode navegar pelas entradas usando as teclas de seta. Se você pressionar Enter, o ncdu mostrará o conteúdo do diretório selecionado:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /mediaVocê pode usar esta ferramenta para, por exemplo, identificar quais arquivos ocupam mais espaço em disco. Você pode voltar ao diretório anterior pressionando a tecla com a seta para a esquerda. Com o ncdu, você pode excluir arquivos pressionando a tecla d. Antes de excluir, ele pede confirmação. Se você quiser desativar a função de exclusão para evitar a perda acidental de arquivos valiosos, use a opção -r para habilitar o modo 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 ncdu2. htop vs top
— é uma ferramenta interativa para visualizar processos, semelhante ao top, mas oferece uma experiência de usuário mais agradável por padrão. O htop exibe as mesmas informações que o top, mas de uma forma mais visual e colorida.
Por padrão, o htop se parece com isto:

Ao contrário do top:

Além disso, na parte superior do htop, são exibidas informações gerais sobre o sistema, e na parte inferior, um painel para executar comandos utilizando as teclas de função. Você pode configurá-lo pressionando F2 para abrir a tela de configuração. Nas configurações, é possível alterar as cores, adicionar ou remover métricas ou modificar as opções de exibição do painel de visão geral.
Embora, ajustando as configurações das versões mais recentes do top, você também possa obter uma usabilidade semelhante, o htop oferece configurações padrão que tornam sua utilização mais prática e simples.
3. tldr vs man
A ferramenta de linha de comando tldr exibe informações simplificadas sobre comandos, principalmente exemplos. Foi criada pela comunidade .
Vale ressaltar que o tldr não substitui o man. Ele ainda é a ferramenta canônica e mais completa de páginas de ajuda. No entanto, em alguns casos, o man é excessivo. Quando você não precisa de informações exaustivas sobre um comando, apenas está tentando lembrar as principais opções de uso. Por exemplo, a página man para o comando curl contém quase 3000 linhas. A página tldr para curl tem 40 linhas. Um trecho dela se parece com isto:
$ tldr curl
# curl
Transfere dados de ou para um servidor.
Suporta a maioria dos protocolos, incluindo HTTP, FTP e POP3.
Mais informações: .
- Baixar o conteúdo de uma URL para um arquivo:
curl http://example.com -o filename
- Baixar um arquivo, salvando a saída com o nome de arquivo indicado pela URL:
curl -O http://example.com/filename
- Baixar um arquivo, seguindo os redirecionamentos de [L]ocalização e automaticamente [C]ontinuando (retomando) uma transferência de arquivo anterior:
curl -O -L -C - http://example.com/filename
- Enviar dados codificados em formulário (requisição POST do tipo `application/x-www-form-urlencoded`):
curl -d 'name=bob' http://example.com/form
- Enviar uma requisição com um cabeçalho extra, usando um método HTTP personalizado:
curl -H 'X-My-Header: 123' -X PUT http://example.com
- Enviar dados em formato JSON, especificando o cabeçalho de tipo de conteúdo apropriado:
curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234
... TRUNCATED OUTPUTTLDR significa 'muito longo; não li': ou seja, algum texto foi ignorado por causa de seu excesso de verbosidade. O nome se aplica a esta ferramenta porque as páginas man, embora úteis, às vezes são longas demais.
Para Fedora, o tldr foi escrito em Python. Você pode instalá-lo usando o gerenciador dnf. Normalmente, o acesso à internet é necessário para usar a ferramenta. No entanto, o cliente Python no Fedora permite baixar e armazenar em cache essas páginas para acesso offline.
4. jq vs sed/grep
jq é um processador JSON para linha de comando. Ele é semelhante ao sed ou grep, mas foi projetado especificamente para trabalhar com dados no formato JSON. Se você é um desenvolvedor ou administrador de sistema que usa JSON em tarefas do dia a dia, 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 dos 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 buscar a linha name:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",O grep retornou todas as linhas contendo a palavra name. Você pode adicionar mais alguns parâmetros ao grep para restringir sua busca e, com algumas manipulações de expressões regulares, encontrar os nomes dos contêineres.
Para obter esse mesmo resultado com jq, basta escrever:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"Este comando retornará os nomes de ambos os contêineres. Se você estiver buscando apenas o nome do segundo contêiner, adicione o índice do elemento no array à expressão:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"Uma vez que jq conhece a estrutura dos dados, ele fornece os mesmos resultados, mesmo que o formato do arquivo mude ligeiramente. O grep e o sed, neste caso, podem não funcionar corretamente.
O jq possui muitas funções, mas para descrevê-las, precisamos de mais um artigo. Para mais informações, consulte jq ou tldr.
5. fd vs find
— é uma alternativa simplificada à ferramenta find. O fd não foi projetado para substituí-la completamente: ele vem com as configurações mais comuns por padrão, que definem a abordagem geral para trabalhar com arquivos.
Por exemplo, ao procurar arquivos no repositório Git, o fd automaticamente exclui arquivos ocultos e subdiretórios, incluindo o diretório .git, e também ignora os padrões do arquivo .gitignore. Em geral, ele acelera a busca, fornecendo resultados mais relevantes na primeira tentativa.
Por padrão, o fd faz a busca sem diferenciar maiúsculas de minúsculas no diretório atual com saída colorida. A mesma busca usando o comando find requer a entrada de parâmetros adicionais na linha de comando. Por exemplo, para encontrar todos os arquivos .md (ou .MD) no diretório atual, você precisa escrever o seguinte comando find:
$ find . -iname "*.md"Para o fd, ele se parece assim:
$ fd .mdMas em alguns casos, o fd também requer parâmetros adicionais: por exemplo, se você quiser incluir arquivos e diretórios ocultos, deve usar a opção -H, embora normalmente isso não seja necessário ao buscar.
O fd está disponível para muitas distribuições Linux. No Fedora, você pode instalá-lo assim:
$ sudo dnf install fd-findNão é necessário abrir mão de nada
Você está usando novas ferramentas de linha de comando do Linux? Ou fica exclusivamente nas antigas? Mas provavelmente você tem um combo, certo? Por favor, compartilhe sua experiência nos comentários.
Em nome da publicidade
Muitos dos nossos clientes já apreciaram os benefícios servidores épicos!
Isso é , a frequência do núcleo da CPU de até 3,4 GHz. A configuração máxima permitirá alcançar o máximo — 128 núcleos de CPU, 512 GB de RAM, 4000 GB NVMe. Aproveite e faça seu pedido!
Fonte: habr.com
