Informática Numaboa
Cartilha de Comandos
Dom 8 Fev 2009 20:49 |
- Detalhes
- Categoria: + Linux
- Atualização: Sábado, 09 Junho 2012 18:23
- Autor: vovó Vicki
- Acessos: 10350
Adoro o Slackware e, mais recentemente o Ubuntu, por que é enxuto, estável e altamente configurável, mas tem um porém - é preciso saber se virar na linha de comando. Como frequentemente me esqueço de como fazer ou encontrar o que quero, resolvi criar uma lista de comandos que uso com maior frequência para que pudesse ser consultada quando necessário. Ao invés de guardar estas informações no meu caderninho, achei por bem transformá-las neste pequeno artigo.
Listas e Filtros de arquivos
Muitas vezes nos deparamos com um arquivo de log imenso do qual queremos extrair apenas uma pequena parte e, na hora H, a memória dá uma falhada (não a do computador, a minha mesmo!). Seguem umas dicas simples para se virar numa situação desta:
tail
Quando só quero dar uma espiada no final do arquivo, uso o comando tail, que significa "rabo":
# tail meuarquivo.txt
lista as últimas 10 linhas do arquivo.
# tail meuarquivo.txt -n 50
Se quisermos mudar o número de linhas padrão, adicionamos -n seguido do número desejado. No exemplo acima serão mostradas as últimas 50 linhas do arquivo meuarquivo.txt.
head
Para obter as primeiras linhas de um arquivo podemos usar o comando head, que significa "cabeça". Este comando é o inverso de tail:
# head meuarquivo.txt # head meuarquivo.txt -n 2
No primeiro exemplo obtém-se as primeiras 10 linhas de meuarquivo.txt; no segundo, apenas as duas primeiras.
cat
O nome deste comando vem de catalog, mas não sei porque consegui memorizá-lo lembrando que quero fazer uma catada. Este comando lista o arquivo inteiro:
# cat meuarquivo.txt
Mas o cat também serve para listar mais de um arquivo, um depois do outro. Qual é a vantagem disto? É que podemos "grudar" arquivos (aí sim a catada é geral ) e jogar tudo para a tela ou criar um novo arquivo com os "catados".
# cat meuarquivo.txt # cat arquivo1 arquivo2 # cat arquivo1 arquivo2 > arquivo3
No primeiro exemplo meuarquivo.txt é listado na íntegra; no exemplo 2 são listados os arquivos arquivo1 e arquivo2. Nestes dois casos, a saída é para a tela. No exemplo 3, arquivo1 e arquivo2 são salvos num arquivo chamado arquivo3. O sinal de maior ( > ) dirige a saída para a gravação em disco.
more
Já pensou se o tal do meuarquivo.txt tiver trocentas linhas? Quando um cat for usado, a tela vai ficar entupida rapidinho, começa a rolar e, no final das contas, só vamos conseguir ver o fim do dito cujo. Para isto existe o comando more (mais) que podemos associar a um cat:
# cat arquivogrande | more
A barra ( | ) colocada entre comandos é conhecida como pipe, que significa tubulação, encanamento. Serve para que o primeiro comando (cat) possa despejar seu resultado no próximo (more). More significa mais e serve para parar a rolagem da tela quando ela estiver cheia, ou seja, o resultado é mostrado por "teladas" até que chegue ao final. Para ir para a próxima tela, basta apertar a tecla de espaço; para interromper tudo, digite Ctrl+C.
less
O primo próximo de more é o less (menos). Uma das vantagens do less é que ele só lê o que vai para a tela e não o arquivo inteiro - motivo pelo qual ele é mais rápido. Além disto, o less permite rolar telas para frente com a tecla de espaço e permite rolar telas para trás com a tecla b - coisa que o more não faz. Experimente um
#cat arquivogrande | less
e role as telas para frente e para trás com [espaço] e [b].
grep
O cat já quebrou um galhão, mas nem sempre queremos ver tudo, principalmente quando o arquivo é gigante e só queremos dar uma olhada numa determinada informação. É aí que entra o grep (sei lá de onde tiraram este nome), que serve para filtrar informações.
# grep "127.0.0.1" arquivogigante # grep "127.0.0.1" *.txt # grep "127.0.0.1" * # grep "127.0.0.1" * | grep "GET"
O primeiro grep mostra todas as linhas do arquivogigante que tiverem a string 127.0.0.1. Se a listagem começar a ficar muito longa, podemos interrompê-la com Ctrl+C e fazer um pipe com more: grep "127.0.0.1" arquivogigante | more.
O segundo exemplo faz a mesma coisa, mas percorrendo TODOS os arquivos com a extensão txt que existirem no diretório (*.txt). O terceiro exemplo faz o mesmo com todos os arquivos existentes no diretório, independente da extensão.
Finalmente, o quarto exemplo nos mostra como refinar nossa pesquisa "emendando" um grep em greps seguintes para obter uma filtragem em cima de outra. A única coisa neste caso é que, quando o material de pesquisa termina, fica parecendo que o grep "pendurou"... aí é só dar um Ctrl+C para voltar ao prompt :thumbup:
- Anterior
- Próximo >>