Ao usar alternativas mais modernas junto com ferramentas de linha de comando mais antigas, você pode se divertir mais e até melhorar sua produtividade.
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 (
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
Por padrão, o htop se parece com isto:
Ao contrário do topo:
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
É 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
5. fd vs encontrar
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
Fonte: habr.com