Dicas e Truques de Bash para Trabalhar de Forma Mais Inteligente no Terminal

Como usuários de Linux, é um momento especial quando abrimos um terminal pela primeira vez e começamos a trabalhar no sistema de uma maneira que é mais eficiente, poderosa e flexível. No entanto, sua primeira incursão no terminal pode ser intimidadora, já que tudo o que você encontra é um cursor piscando e um mundo infinito de possibilidades. Para ajudar com isso, mostramos algumas dicas e truques de Bash para trabalhar de forma mais inteligente, não mais difícil, no terminal.
Leia também: Comandos Básicos de Bash para Iniciantes em Linux
Encontrando Comandos com Apropos
Apropos (app-row-POE) é um comando que permite encontrar comandos com man ou entradas manuais com base em suas descrições. Se você já encontrou uma página de manual de um comando, ela se parece um pouco com isso:

A seção “NOME” no topo é sobre isso que estou falando. Se eu quisesse encontrar o comando ping com apropos, eu digitava apropos icmp no meu terminal e pressionava Enter. Note que não é sensível a maiúsculas. Isso traz todos os comandos com uma entrada NOME que contém “ICMP”.

Outro ótimo uso para apropos é explorar ferramentas que você pode não estar familiarizado, como selinux. Emitir o comando apropos selinux fornecerá uma lista de todos os diferentes comandos que você pode usar para interagir com o SELinux, começando sua jornada para impor eficientemente.
Substituindo no Comando Anterior
Algo que me salvou muito tempo no terminal é descobrir como substituir algo no comando anterior. Se eu digitar algo errado ou apenas precisar substituir uma opção no comando anterior, posso usar uma tecla ^ para puxar a palavra que escrevi errado, e depois outra ^ para colocar a palavra ou opção que eu queria.
Vamos ver um exemplo. Digamos que eu queira fazer ping em “maketecheasier.com” para garantir que tenho conectividade total com a Internet (incluindo DNS). Mas se eu escrever algo errado, posso receber algum tipo de erro. Então, se eu acidentalmente fizer ping em maktecheaser.com (faltando o “i”), terei alguns problemas.
Para substituir a opção escrita incorretamente, posso digitar ^maktecheaser.com^maketecheasier.com, e o comando será executado como esperado. Este é um exemplo simples, mas digamos que você execute um comando longo com muitas opções ou direcione incorretamente a saída ou os erros do seu comando. Poder substituir > por >> em um comando complexo é uma salvação.

Outro exemplo é com systemd e o comando systemctl. Eu frequentemente emito diferentes subcomandos systemctl, como iniciar, parar, habilitar ou desabilitar um serviço. Posso simplesmente substituí-los com ^start^enable, o que me economiza tempo.
!!
Este é um que é realmente útil em um cenário específico que acontece muito comigo. !! (bang-bang) puxará o comando anterior na íntegra. Pode não parecer útil, mas se você pensar em todas as vezes que digita um comando que precisa ser executado com privilégios de superusuário, começará a entender onde isso é útil.
Um ótimo exemplo são scripts de instalação. Digamos que você execute um script de instalação com “./SCRIPT-NAME.sh”, e ele diz que você precisa executá-lo com privilégios de superusuário. Basta digitar sudo !!, inserir sua senha, e você está pronto para começar. Isso economiza muito tempo, e uma vez que você consiga essa sequência na sua memória muscular, poderá fazê-lo mais rápido do que quando estava fazendo errado.

Passando Argumentos de Comandos Anteriores
Usando !$, podemos passar o último argumento de um comando para o comando atual, e com algumas variações, podemos passar qualquer um dos argumentos para o nosso comando atual.
Vamos ver alguns exemplos. Se estou editando um script, posso usar o comando nano samplescript.sh. Uma vez que terminei com esse script, quero torná-lo executável, então posso mudar as permissões octais para 755. Para fazer isso, poderia usar o comando chmod 755 !$. Então, para puxar o nome do script novamente, poderia usar ./!:2 para puxar o segundo argumento.

Alguns outros exemplos:
!^ - primeiro argumento
!* - todos os argumentos
!:2-$ - segundo até o último argumento
!:2-4 - segundo até o quarto argumentoVocê pode substituir seus números para puxar quaisquer argumentos que desejar. O Bash manterá cerca de 100 argumentos disponíveis com esse método, e você pode facilmente trabalhar rapidamente em algumas tarefas triviais assim.
Espero que você tenha gostado dessas dicas e truques de Bash para ajudá-lo a trabalhar de forma mais inteligente no terminal. Você também deve aprender sobre variáveis e caracteres especiais do Bash.