Visualizando conteúdo
Esta aula ensina como visualizar o conteúdo de arquivos no terminal Linux usando comandos como cat, less, more, head, tail e wc. São abordadas desde visualizações simples até monitoramento em tempo real com tail -f, além de contagens de linhas, palavras e caracteres.
No dia a dia de um desenvolvedor ou administrador de sistemas, é comum precisar inspecionar o conteúdo de arquivos diretamente no terminal. O shell oferece diversas ferramentas para isso, cada uma com características específicas para diferentes cenários: desde a exibição simples de arquivos pequenos até a navegação interativa em arquivos enormes, passando pela visualização das primeiras ou últimas linhas e até mesmo o monitoramento em tempo real de logs.
Nesta aula, exploraremos os comandos cat, less, more, head, tail (incluindo a opção -f) e wc. Ao final, você será capaz de escolher a ferramenta adequada para cada situação e aplicá-la com eficiência.
cat, less, more
O comando cat (de concatenate) é o mais simples: ele lê o arquivo e imprime todo o seu conteúdo na saída padrão (terminal). É ideal para arquivos pequenos ou quando se deseja redirecionar a saída para outro comando via pipe. Por exemplo, cat arquivo.txt exibe o arquivo inteiro. No entanto, para arquivos grandes, o conteúdo passa rapidamente na tela, tornando difícil a leitura.
Para arquivos maiores, usamos paginadores como less e more. more é o paginador original, que exibe o conteúdo uma página por vez e permite avançar com a barra de espaço. Já less é uma versão mais moderna e potente, que permite navegar para frente e para trás, buscar por padrões (com /), e possui mais opções de atalhos. Atualmente, less é o padrão na maioria das distribuições Linux. Exemplo: less /var/log/syslog.
# Exibe o conteúdo de um arquivo pequeno
cat /etc/hostname
# Usando more (pressione 'q' para sair)
more /etc/passwd
# Usando less (mais flexível)
less /etc/passwd
head e tail
Os comandos head e tail são usados para visualizar apenas partes do arquivo, geralmente o início ou o final. Por padrão, head exibe as primeiras 10 linhas e tail as últimas 10 linhas. A opção -n permite especificar um número diferente de linhas. Exemplos:
# Mostra as 5 primeiras linhas
tail -n 5 /etc/group
# Mostra as 20 últimas linhas
tail -n 20 /var/log/dpkg.log
Uma opção útil do head é -c para exibir um número específico de bytes, e do tail é -f (follow), que discutiremos a seguir. Ambos são frequentemente usados em pipelines para processar apenas partes de arquivos.
tail -f
A opção -f do tail coloca o comando em modo de monitoramento: ele exibe as últimas linhas do arquivo e, em seguida, fica aguardando novas linhas serem escritas, mostrando-as em tempo real. Isso é extremamente útil para acompanhar logs em desenvolvimento ou produção. Exemplo clássico:
# Monitora o log do sistema
tail -f /var/log/syslog
# Para interromper, pressione Ctrl+C
Você pode combinar -f com -n para exibir um número personalizado de linhas antes de começar a seguir. Além disso, o tail -f suporta múltiplos arquivos, exibindo uma indicação de qual arquivo está sendo atualizado. Versões modernas também oferecem a opção --retry para continuar tentando se o arquivo não existir inicialmente.
wc
O comando wc (word count) conta linhas, palavras e caracteres de um arquivo ou da entrada padrão. Sem opções, ele exibe as três contagens: linhas, palavras e bytes (caracteres). Opções comuns:
-l: apenas linhas-w: apenas palavras-c: apenas bytes-m: apenas caracteres (multibyte)
# Contagem completa
wc /etc/passwd
# Apenas linhas
wc -l /etc/passwd
# Apenas palavras
wc -w /etc/passwd
# Contagem de caracteres
wc -m /etc/passwd
O wc é frequentemente usado em pipelines para contar resultados de outros comandos, como ls -1 | wc -l para contar o número de arquivos em um diretório.
Boas Práticas e Observações Finais
- Para arquivos muito grandes (logs de gigabytes), evite
cat; prefiralessoutailpara evitar sobrecarregar o terminal. - Use
headetailpara amostragens rápidas de dados. - Em scripts,
wc -lé útil para verificar se um arquivo tem linhas suficientes antes de processá-lo. - Combine
tail -fcomgreppara monitorar apenas linhas de interesse:tail -f /var/log/syslog | grep ERROR.
Exercícios
-
Crie um arquivo chamado
exemplo.txtcom 15 linhas (use um laço no bash:for i in {1..15}; do echo "Linha $i"; done > exemplo.txt). Useheadpara exibir as primeiras 5 linhas.✓ Resposta:head -n 5 exemplo.txt -
Com o mesmo arquivo, use
tailpara exibir as últimas 3 linhas.✓ Resposta:tail -n 3 exemplo.txt -
Use
wcpara contar quantas linhas, palavras e bytes existem no arquivo/etc/passwd.✓ Resposta:wc /etc/passwd -
Explique a diferença entre
moreelesse dê um exemplo de uso delesspara buscar a palavra "root" em/etc/passwd.✓ Resposta:morepermite apenas avançar no arquivo (espaço para próxima página, 'b' para voltar, mas limitado).lesspermite navegar para frente e para trás, buscar com/e?, e tem mais funcionalidades. Exemplo:less /etc/passwde depois digitar/roote Enter para buscar. -
Execute o comando
tail -f /var/log/syslog(se tiver permissão) e explique o que ele faz. Como interrompê-lo?✓ Resposta:O comando
tail -f /var/log/syslogexibe as últimas 10 linhas do log e depois fica monitorando o arquivo, mostrando novas linhas em tempo real. Para interromper, pressione Ctrl+C.