linha de comando

linha de comando

  • Ferramentas modernas de Unix

    modern unix livros 

    Quando comecei a aprender Linux e Unix, no século passado, esses dois livros eram meus referenciais sobre ferramentas pra usar.  Unix Power Tools e Unix System Administration Handbook.  Foram e continuam excelentes livros, mas as ferramentas passaram a ser muito melhores.  A grande maioria re-escrita em rust ou em Go! pra maior velocidade e até mesmo segurança.

    Eu usava uma ferramenta aqui e outra ali até ler um artigo sobre o assunto e depois achar uma boa referência no GitHub.  O artigo que li no começo eu já não lembro e não tenho o link, mas as ferramentas eu fui pegando por essa referência aqui:

    https://github.com/ibraheemdev/modern-unix

    Então vou listar as ferramentas que uso atualmente.  Pegue a pipoca e sente bem confortavelmente que são várias.  Não existe ordem de preferência e eu geralmente não adoto duas ferramentas pra mesma coisa.  Mostro aqui o que é de uso no dia à dia de trabalho.

    Eu estou colocando o link pra cada uma na imagem, mas a grande maioria funciona pelo sistema de pacotes das distros.  Dê uma olhada nisso antes de baixar do site.

    Fish shell

    modern unix fishshell

    Eu sinta uma pena muito grande de ver quem fica preso ao bash nos dias de hoje.  Não me entenda mal se você é uma dessas pessoas: bash é excelente.  Mas existem alternativas muito superiores.  Uma delas é o fish.  Eu ouvi falar pela primeira vez do fish através do Kov na mesa do Debian numa das edições do FISL.  E confesso que achei... aquilo não era pra mim. Eu estava confortável no meu bash.   Eu não poderia estar mais enganado.

    Na segunda tentativa, eu me forcei a usar o fish por no mínimo 6 meses.  E o que aconteceu?  Não consigo mais ficar sem ele.  É o meu shell de linha de comando em todo lugar.  Eu ainda uso o bash pra scripts, mas pra linha de comando, fish shell.

    Starship

    modern unix starship

    Esse eu conheci mais recentemente por uma dica do Mastodon.  Eu sinceramente não lembro quem recomendou, mas lembro de bastante gente elogiando.  Testei e gostei.  É um formatador de prompt.  Ao invés de ficar configurando temas no shell, é só botar o starship pra carregar no login e tá pronto.

    Bat

    modern unix bat

    O bat é um substituto bem legal ao cat.  É mais lento que o cat, mas traz ferramentas visuais com cores que facilitam olhar um arquivo. Isso te faz achar que a pequena lentidão pra ler o resultado vale o esforço, ou tempo.

    Nota: por alguma motivo bizarro, no Ubuntu o binário instalado é batcat.  Eu geralmente faço um link simbólico pra apenas bat.

    Htop

    modern unix htop

    Esse é um excelente substituto ao "top".  Bem mais gráfico e colorido.  Eu nem considero algo tão moderno assim porque uso já faz mais de 10 anos.  Mas recentemente descobri que tem gente que não sabe de sua existência.  Então fica aqui na lista registrado.

    Duf

    modern unix duf

    Um programa que subtitui o "df" pra ver o tamanho e uso de partições.

    Dust

    modern unix dust

    Usa o "du" pra ver qual o tamanho de arquivos e/o ou diretórios?  Pois chegou sua evolução.

    Exa/Eza

    modern unix exa

    Esses são substitutos ao "ls".  A sintaxe não é 100% compatível.  Por exemplo "-tr" não funciona neles, mas você pode usar algo mais simples como "--sort=created".  O programa começou como exa, que tem disponível no Ubuntu 24.04, mas no Archlinux passaram pra eza.  Imagino que foi um fork porque o primeiro deve ter parado o desenvolvimento.

    Procs

    modern unix procs

    Ainda usa "ps" pra listar processos?  E fica bolado que quando manda um "grep", o mesmo aparece na listagem?  Pois o procs resolve esse problema.

    Ripgrep

    modern unix ripgrep

    O ripgrep, que apesar do nome tem como binário apenas "rg", é um excelente substituto do grep pra procurar em arquivos de determinado diretório.  Ou diretórios.  E bem mais rápido.

    Glances

    modern unix glances summary

    O glances é escrito em python.  Legal, mas isso o torna lento pra iniciar.  Mas depois que inicia, funciona bem.  Ele é um melhoramento do "htop" com mais informação.

    Jq

    modern unix jq

    Se você mexe com kubernetes ou com arquivos json, jq é a ferramenta.  Ajuda a filtrar e dá o resultado num formato colorido, o que ajuda a visualizar.  E você pode construir filtros pros resultados.  Existe uma outra ferramenta que é mais rápida, mas eu acabo usando o jq por causa da saída colorida (que ajuda demais).

    Tldr

    modern unix tldr

    Sabe aquele problema de ler manpage e não ter exemplos?  O tldr resolve essa parte.  Baixa exemplos do comando que quiser usar. 

    Fd

    modern unix fd 

    No Ubuntu o pacote chama-se fd-find.  E instala o binário como fdfind.  Eu renomeio pra fd, tal qual é no archlinux e no macOS.  É um melhoramento do find.  Mais rápido e mais fácil de usar.

    McFly

    modern unix mcfly

    Esse entra aqui como uma menção quase que honrosa porque atualmente eu já não uso mais.  Ele é prático se você usar outro shell que não seja o fish, como bash ou zsh.  Ele faz a busca no histórico ser de  uma forma bem mais simples.  Tal como já é por padrão no fish.

    Zsh

    modern unix zsh

    A imagem é do oh-my-zsh, que deixa o terminal mais bonitinho.  O zsh mesmo não tem imagem na página do projeto.  Se é que é um projeto.

    O zsh é o padrão no macOS e eu resolvi experimentar por 6 meses na máquina que peguei no refresh da Ericsson.  A vantagem do zsh é que é a mesma sintaxe do bash, então você reaproveita muita coisa.  Agora sobre trocar zsh por bash... no final eu achei bem parecido.  Existem algumas vantagens do zsh, mas no uso do dia à dia, pra mim pelo menos, não fez tanta diferença assim.

    Update

    O Patola lembrou bem que existem comportamentos distintos entre bash e zsh.

    Em bash:

    patola@risadinha:/dados$ echo a | read b ; echo $b
    patola@risadinha:/dados$

    Em zsh:

    [19:03] [9665] [patola@risadinha /dados]% echo a | read b ; echo $b
    a
    [19:03] [9666] [patola@risadinha /dados]%

    O resultado é diferente porque a sintaxe é diferente. O bash tem right-side fork, o zsh tem left-side fork. Isso não é controverso. É uma diferença de sintaxe conhecida, explicada e verificável.
            -- Patola

    K9s

    modern unix k9s 

    Essa não é bem uma dica pra quem mexe com kubernetes.  Ao invés de ficar mandando "kubectl" pra tudo quanto é lado, o melhor é usar o k9s.  Ele mostra de forma visual o seu cluster e namespace.  E todos os atributos que consegue ver pelo "kubectl".

    E acabamos aqui...

    E assim terminamos o artigo.  Se eu lembrar de mais alguma coisa que uso e esqueci, acrescento aqui.

     

     

We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.