Linux é mais fácil que muita gente imagina. E essa simplicidade se torna uma ferramenta poderosa quando usada da forma certa.
Assim que comecei a usar o Linux, confesso, que usava essa simplicidade de forma não tão produtiva, pois dava certo, mas achava algumas coisas muito trabalhosas. Com o passar do tempo, fui aprendendo algumas formas mais efetivas de usar essas ferramentas.
O intuito desse post é passar algumas dicas que me ajudaram a melhorar a minha produtividade com o Linux. Todas as dicas são básicas, mas que economizam tempo e paciência.
Programas Básicos:
apt
Sei que muita gente é acostumada ao “apt-get” e acha que o “apt” é a mesma coisa, porém o “apt” vem com mais melhorias em seu código e é muito mais organizado para o usuário.
vim
Assim que você começa a usá-lo, não entende o porque as pessoas usam tanto. Até pra sair é “complicado”, tendo que digitar “:wq” para sair e salvar. Porém, algumas funcionalidades o fazem ser “amado” por tantos. Mais a frente vou colocar alguns comandos.
sl
Apenas instalem e nunca mais errem um list! Ou não!
htop
O caso do “htop” é semelhante ao “apt x apt-get”, onde seria “top x htop”. Nesse caso, a diferença é mais visível, pois a organização e as cores do htop dão uma organização melhor que a do “top”
iftop
É o “htop” para placas de redes.
iotop
É o “htop” de I/O de disco.
locate (ou mlocate)
O locate serve para pesquisar um arquivo dentro do sistema. Sim, já existe o “find”, que abordo mais a frente também, mas o locate torna a busca mais rápida, pois ele armazena a busca em um arquivo. Estando tudo indexado em um arquivo, o locate vai fazer a busca nesse arquivo e não no Hd todo, assim sendo mais rápido. Para atualizar esse arquivo basta usar o comando “updatedb”. Ele já vem por padrão no RHEL/Centos, mas na família Debian basta um “apt install mlocate”.
terminator
Depois que descobri esse emulador de terminal, consigo ter uma organização das telas dos terminais muito melhor. A forma que ele divide as telas ajuda bastante para deixar o trabalho mais efetivo, fora a sua customização.
Comandos Básicos:
Passado os programas básico (sim, lista pequena e quase óbvia), dicas de como costumo usar alguns comandos.
ps fuxa
Essa dica aprendi com o Mestre Pedro Veríssimo. O “fuxa” mostra o ps com usuário, PID, %cpu, %mem, TTY, horário do início do processo, o tempo desse processo e o comando no formato de árvore. Para saber o que cada argumento faz, leia o manual (man ps). Tente combinações que você consiga gerenciar melhor os processos rodando nos seus sistemas.
ss -a
O netstat está obsoleto a alguns anos, então essa dica é mais uma atualização. Você pode ler sobre isso nessa reportagem do site Linux Descomplicado. Sobre o assunto, estou criando coragem (e amadurecendo as ideias) para abordar isso de uma forma mais completa. “Manter velhos hábitos, mas que eu sei o que estou fazendo e meu sistemas fica estável” x “Me atualizar, utilizando novas ferramentas, aprendendo novas maneiras de gerir os sistemas, mas que não sei como é o comportamento a longo prazo”.
cd –
Comando básico que muita (mesmo) gente ignora. Serve para voltar ao diretório anterior que você estava. Favor não confundir com o “cd ..” que sobe um diretório. Exemplo: se vocês estava em “/etc/network/interfaces.d/” e foi para “/var/log/”, ao digitar “cd -” você “volta” para “/etc/network/interfaces.d/”. Caso o comando fosse “cd ..” você subiria um nível, indo para “/var/”.
cd ~
Comando que faz você voltar para o home do atual usuário. Se estiver em “/etc/network/interfaces.d/” e digitar “cd ~”, vou para “/home/bruno/”
sudo !!
Já aconteceu de você usar um comando “gigante” e quando apertou “Enter” viu que esqueceu o “sudo” no começo? Eu sei a raiva que isso gera. Aí você, no modo mais “prático”, usa a seta para cima, depois home, depois digita sudo e enter novamente. Não é isso? Era! Basta “sudo !!” e o último comando será executado como se o sudo estivesse no começo. Testa aí.
ctrl + r
Outra do Mestre Pedro Veríssimo. É uma busca dentro do history. Você vai digitando a busca e ele já mostra o comando, bastando um simples “Enter”. E cada vez que usa a combinação ctrl + r enquanto está buscando, ele vai mostrando outros resultados. Nada mais de “history | grep” quando se sabe o que quer procurar, certo?
history + !número
Mesmo com a dica acima, o history é importante. A busca serve pra quando você lembra o que foi digitado, mas e quando não se lembra? history, claro. Aí você acha o que quer, vai selecionar, copiar (ctrl + insert) e depois colar (shift + insert), né? Não mais. Digamos que o comando que você queira está listado como o 149, basta digitar !149 e o comando será executado.
Outras Dicas:
Abaixo alguns comandos precisei usar para situações diversas.
Localizar um tipo de arquivo e a partir de um certo tamanho.
Como assim? Preciso encontrar todos meus vídeos no formato AVI e com mais de 700MB:
find /home/bruno/Vídeos -type f -name “*.avi” -size “+700M” -exec ls -lah {} \;
Mas o segredo é tentar outras combinações como exemplo: arquivos maiores que 100Mb, mas menores que 200Mb:
find /home/bruno/Vídeos -type f -name “*.avi” -size “+100M” -size “-200M” -exec ls -lah {} \;
Dica boa pra quem ainda tem aquelas fotos com o nome “dsc000…”, só colocar o -iname
Trabalhando com diretórios em sequência.
Se você já fez “mkdir pasta01/ pasta02/ pasta03/ pasta04/”, você conseguiu o que queria, mas e se for 50 pastas? Vai fazer um shell script com alguma estrutura de laço para repetir até o 50? Pode ser, mas também dá um trabalho. E que tal um comando só?
mkdir -p /home/bruno/pasta{1..50}
Massa, né? E se dentro dessas pastas você tenha que criar outras 10 pastas?
mkdir -p /home/bruno/pasta{1..50}/subpastas{1..10}
Agora sim, muito massa. Mas não se limite aí, pois esse comando não é exclusivo do mkdir, muito pelo contrário. Qualquer comando que trabalhe com os diretórios e arquivos, aceita esses argumentos. Um bom exemplo é apagar essas 50 pastas
rm -rf /home/bruno/pasta{1..50}
Criando um “Alias” da maneira certa.
Já vi muitos “tutoriais” ensinando a criar tutorial da forma certa: alias ll=’ls -lahF’, por exemplo. Mas na hora de deixar isso permanente, muita gente criar um script pra iniciar junto com o sistema e assim atribuir esse alias. Só que no linux existe um arquivos pra isso e nele já existe alguns alias e até com exemplo. Basta editar (usando o vim, né?) o arquivo .bashrc que fica no diretório home do seu usuários:
vim ~/.bashrc
Depois só salvar, fechar o terminator (claro!) e abrir novamente. o “ll” foi exemplo, pois algumas distribuições já vem com esse alias, mas você pode adicionar qualquer alias nesse arquivo. Exemplo para atualização com o usuário root:
alias atualizar=”apt update && apt -y upgrade”
Usando melhor o VIM
O VIM tem milhões de atalhos, que você pode conferir alguns aqui, mas os mais básicos parecem ser os mais ignorados:
gg = Início da primeira linha do arquivo
G = Início da última linha do arquivo
yy = Copia a linha atual do cursor
y⇑ = Copia a linha do cursor mais a linha acima
y⇓ = Copia a linha do cursor mais a linha abaixo
y20⇑ = Copia a linha do cursor mais as 20 linha acima
y20⇓ = Copia a linha do cursor mais as 20 linha abaixo
p = Cola a linha abaixo da posição do cursor
P = Cola a linha acima da posição do cursor
dd = Apaga a linha atual do cursor
d⇑ = Apaga a linha do cursor mais a linha acima
d⇓ = Apaga a linha do cursor mais a linha abaixo
d20⇑ = Apaga a linha do cursor mais as 20 linha acima
d20⇓ = Apaga a linha do cursor mais as 20 linha abaixo
u = Desfaz o último comando
Se o seu terminator (né?) está com o fundo preto, diga ao VIM isso para que ele possa mostrar tudo nas cores certas.
:set backgroud=dark
Quando se faz uma busca dentro do VIM (/termo), há algumas opções:
N = Busca o próximo termo acima da posição atual do cursor
n = Busca o próximo termo abaixo da posição atual do cursor
Para realçar o termo que foi buscado no texto:
:set hlsearch
E para remover esse realce da busca:
:nohlsearch
Substituição dentro do VIM
Caso queira substituir um dentro da linha onde o cursor está posicionado, basta fazer:
:s/foo/bar/g
No nosso caso, onde tiver “foo” na linha atual, será substituído por “bar”.
Caso queira no documento todo, basta adicionar % no inicio:
:%s/foo/bar/g
Como disse no começo, são dicas básicas, mas que me ajudam muito e espero que ajude mais pessoas.
Vou postar os sites que descobri alguns desses comandos e que (alguns) estão mais completos em suas explicações e com outros exemplos:
https://debian-handbook.info/browse/pt-BR/stable/index.html
https://www.vivaolinux.com.br/artigo/Diario-de-um-SysAdmin-1-Truques-Macetes-Atalhos-e-Comandos
https://www.vivaolinux.com.br/artigo/Diario-de-um-SysAdmin-2-Truques-Macetes-Atalhos-e-Comandos
http://michael.peopleofhonoronly.com/vim/vim_cheat_sheet_for_programmers_colorblind.png
http://vim.wikia.com/wiki/Vim_Tips_Wiki
Ao som de: Dream Theater – Erotomania/Voices/The Silent Man (A Mind Beside Itself) – Live Scenes from New York