Visualizando conteúdo
Esta aula ensina comandos essenciais para visualizar o conteúdo de arquivos no terminal Linux: cat, less, more, head, tail, tail -f e wc. Você aprenderá a exibir, paginar, monitorar em tempo real e contar dados em arquivos de texto.
Nesta aula, vamos explorar ferramentas fundamentais para visualizar o conteúdo de arquivos no terminal Linux. Dominar esses comandos é essencial para qualquer profissional que trabalhe com sistemas Unix-like, pois permite inspecionar logs, arquivos de configuração, dados tabulares e muito mais. Começaremos com comandos simples como cat, avançaremos para paginadores como less e more, veremos como extrair partes de arquivos com head e tail, monitorar logs em tempo real com tail -f e, por fim, contar palavras, linhas e caracteres com wc.
cat, less, more
O comando cat (concatenate) é o mais básico para exibir o conteúdo de um arquivo diretamente no terminal. Ele lê o arquivo e o envia para a saída padrão (stdout). Embora simples, é muito útil para arquivos pequenos ou para redirecionar a saída para outro comando via pipe. Por exemplo, cat /etc/passwd mostra o arquivo de usuários.
Para arquivos longos, cat não é prático, pois o conteúdo passa rapidamente pela tela. Nesses casos, usamos paginadores como less e more. O more é o paginador original, que permite avançar página por página (com a barra de espaço) e retroceder limitadamente. Já o less é mais moderno e poderoso: permite navegar para frente e para trás livremente, buscar texto com / e ?, e possui muitas opções. Por exemplo, less /var/log/syslog abre o log do sistema para inspeção.
Exemplos práticos:
# Exibe o conteúdo do arquivo exemplo.txt
cat exemplo.txt
# Exibe com numeração de linhas
cat -n exemplo.txt
# Usando more (pressione 'q' para sair)
more /etc/services
# Usando less (mais flexível)
less /etc/services
head e tail
Os comandos head e tail são usados para exibir apenas partes de um arquivo, respectivamente o início e o final. Por padrão, head exibe as primeiras 10 linhas e tail as últimas 10. Ambos aceitam a opção -n para especificar o número de linhas desejado.
Esses comandos são extremamente úteis para dar uma olhada rápida em arquivos grandes, como logs ou arquivos de dados. Por exemplo, para ver as primeiras 5 linhas de um arquivo CSV, usamos head -5 dados.csv. Para ver as últimas 20 linhas de um log, tail -20 log.txt.
Exemplos:
# Mostra as primeiras 10 linhas (padrão)
head arquivo.txt
# Mostra as primeiras 20 linhas
head -n 20 arquivo.txt
# Mostra as últimas 15 linhas
tail -n 15 arquivo.txt
# Mostra tudo a partir da linha 50 (usando +)
tail -n +50 arquivo.txt
tail -f
Uma das variantes mais úteis do tail é a opção -f (follow). Com ela, o comando permanece em execução e exibe as novas linhas que forem adicionadas ao arquivo em tempo real. É indispensável para monitorar logs de aplicações, servidores web, sistemas operacionais, etc.
Para interromper a execução, pressione Ctrl+C. O tail -f também aceita a opção -n para definir quantas linhas finais mostrar antes de começar a seguir. Por exemplo, tail -f -n 50 /var/log/apache2/access.log mostra as últimas 50 linhas e depois atualiza com novas entradas.
Exemplo:
# Monitora o arquivo de log do sistema em tempo real
tail -f /var/log/syslog
# Monitora com as últimas 100 linhas
tail -f -n 100 /var/log/syslog
wc
O comando wc (word count) é usado para contar linhas, palavras, caracteres e bytes de um arquivo ou da entrada padrão. Por padrão, exibe três números: linhas, palavras e bytes. Pode ser combinado com opções como -l (apenas linhas), -w (apenas palavras), -c (apenas bytes) e -m (apenas caracteres).
É muito útil para obter estatísticas rápidas de arquivos de texto, como logs, códigos-fonte ou documentos. Por exemplo, wc -l arquivo.c mostra quantas linhas de código existem. Combinado com outros comandos via pipe, pode contar a saída de qualquer comando, como ls -l | wc -l para contar arquivos.
Exemplos:
# Contagem completa (linhas, palavras, bytes)
wc relatorio.txt
# Apenas linhas
wc -l relatorio.txt
# Apenas palavras
wc -w relatorio.txt
# Apenas caracteres
wc -m relatorio.txt
# Contar quantos arquivos .txt existem no diretório
ls *.txt | wc -l
Boas práticas e observações finais
Ao trabalhar com esses comandos, lembre-se de que muitos aceitam múltiplos arquivos como argumento. Por exemplo, cat arquivo1 arquivo2 exibe os dois concatenados. Use less como paginador padrão, pois é mais flexível que more. Para monitoramento contínuo, tail -f é essencial, mas lembre-se de que ele bloqueia o terminal – use Ctrl+C para sair. Combine wc com outros comandos para análises rápidas. Pratique esses comandos no terminal para ganhar fluência.
Referências
Exercícios
- Usando o comando
cat, exiba o conteúdo do arquivo/etc/hostnamee redirecione a saída para um novo arquivo chamadohostname.txt. Em seguida, verifique o conteúdo do novo arquivo comcat. - Use
lesspara abrir o arquivo/var/log/syslog(ou outro log disponível). Navegue para frente e para trás, e busque pela palavra "error". Saia do less. - Exiba as primeiras 15 linhas do arquivo
/etc/servicesusandohead. - Monitore o arquivo
/var/log/syslogem tempo real comtail -f. Após alguns segundos, interrompa com Ctrl+C. - Conte quantas linhas, palavras e caracteres existem no arquivo
/etc/passwdusandowc. Depois, conte apenas o número de linhas.
cat /etc/hostname > hostname.txt
cat hostname.txt
less /var/log/syslog
# Dentro do less: use barra de espaço para avançar, 'b' para retroceder, digite /error e Enter para buscar, 'q' para sair.
head -n 15 /etc/services
tail -f /var/log/syslog
# Pressione Ctrl+C para interromper.
wc /etc/passwd
wc -l /etc/passwd