Na última dica mostramos algumas opções de comandos básicos de Terminal. Agora, vamos explicar como usar outros comandos que são muito úteis no dia a dia: grep, find e history.
grep
O comando grep
é utilizado para buscar palavras em arquivos. Ele te devolve a linha em que a ocorrência aparece e, se for uma busca em múltiplos arquivos, em qual arquivo foi encontrada.
$ grep palavra arquivo.rb
linha na qual a palavra aparece no arquivo
outra linha em que a palavra aparece
Se você quiser buscar um termo em múltiplos arquivos pode executar:
$ grep palavra arquivo1.rb arquivo2.br. arquivo3.rb
Também é possível buscar em todos os arquivos dentro de uma pasta. Basta navegar até o diretório no qual queremos pesquisar o termo e rodar:
$ grep palavra *
Uma outra boa forma de usar esse comando é junto com as opções -r
e -i
para fazer a busca recursivamente (-r
) em todas as subpastas e case insensitive (-i
), desconsidera diferenças de maiúsculas e minúsculas):
$ grep -r -i palavra .
find
O comando find
é utilizado para encontrar arquivos e diretórios. Simplificadamente, a estrutura do comando find
é a seguinte:
$ find caminho_do_diretorio nome_do_arquivo
No meio desse comando você pode incluir uma série de opções, por exemplo, para buscar apenas arquivos ou apenas diretórios.
$ find . -type f
#=> Lista todos os arquivos no diretório corrente.
$ find . -type d
#=> Lista todos os diretórios dentro do diretório corrente.
Para buscar no diretório corrente um arquivo com nome específico:
$ find . -type f -name "nome_do_arquivo.txt"
Mas se não recordamos exatamente o nome do arquivo, podemos usar *
para fazer uma busca parcial. Por exemplo, se quisermos procurar arquivos que comecem com "nome" mas não recordamos o restante:
$ find . -type f -name "nome*"
history
O comando history
mostra o histórico dos comandos que você utilizou. Você pode usar esse comando em conjunto com outros para obter resultados mais precisos, por exemplo:
$ history | tail
#=> Mostra apenas os últimos 10 comandos.
$ history | grep termo
#=> Mostra apenas os comandos que incluem o termo filtrado no grep.