Visualizando arquivos: cat, less, more, head, tail

1. Introdução à visualização de arquivos no terminal

Trabalhar com arquivos de texto é uma das tarefas mais comuns no terminal Linux/Unix. Seja para verificar logs, conferir configurações ou analisar dados, dominar os comandos de visualização é essencial para qualquer profissional de TI.

Cada comando atende a necessidades específicas: enquanto cat exibe o conteúdo completo de uma vez, less e more permitem paginação interativa. Já head e tail focam em partes específicas do arquivo — início e fim, respectivamente.

A escolha do comando certo depende do tamanho do arquivo, da necessidade de navegação e do que se deseja extrair dele.

2. cat – Concatenação e exibição simples

cat (concatenate) é o comando mais básico para exibir arquivos. Sua sintaxe é simples:

cat [opções] [arquivo]

Exemplo básico:

cat /etc/hostname

Opções úteis:

Opção Descrição
-n Numera todas as linhas
-b Numera apenas linhas não vazias
-s Suprime linhas em branco repetidas

Exemplos práticos:

# Numerar linhas
cat -n arquivo.txt

# Suprimir linhas em branco repetidas
cat -s arquivo.txt

# Concatenar dois arquivos
cat parte1.txt parte2.txt > completo.txt

# Criar arquivo rapidamente com redirecionamento
cat > notas.txt
Comprar leite
Ligar para João
^D

Cuidado: Para arquivos grandes, cat pode poluir o terminal. Use paginação quando necessário.

3. less – Navegação interativa e eficiente

less é o paginador mais poderoso e moderno. Ele carrega apenas parte do arquivo na memória, sendo ideal para arquivos grandes.

less arquivo.txt

Comandos de navegação:

Tecla Ação
Espaço Avança uma página
Enter Avança uma linha
b Volta uma página
g Vai para o início
G Vai para o fim
/ Busca para frente
? Busca para trás
n Próximo resultado da busca
N Resultado anterior
q Sair

Exemplo com busca:

less /var/log/syslog
# Dentro do less, digite /error e pressione Enter
# Use n para navegar entre as ocorrências

Vantagens: busca com destaque, carregamento parcial, suporte a múltiplos arquivos (less arquivo1.txt arquivo2.txt).

4. more – Paginação simples e legado

more é o paginador original do Unix, mais limitado que less. Seu uso é simples:

more arquivo.txt

Navegação:

Tecla Ação
Espaço Avança uma página
Enter Avança uma linha
q Sair

Limitações: não permite voltar páginas (apenas avançar), busca limitada.

# Exibir progresso percentual
more /etc/services
# Mostra: --More--(57%)

Quando usar: sistemas muito mínimos (containers, sistemas embarcados) onde less não está disponível.

5. head – Visualizando o início dos arquivos

head exibe as primeiras linhas de um arquivo. Por padrão, mostra 10 linhas.

head [opções] arquivo

Opções principais:

Opção Descrição
-n N Exibe N linhas
-c N Exibe N bytes
-q Suprime cabeçalhos ao exibir múltiplos arquivos

Exemplos:

# Exibir 5 primeiras linhas
head -n 5 /etc/passwd

# Exibir primeiros 100 bytes
head -c 100 dados.bin

# Cabeçalho de arquivo CSV
head -n 1 vendas.csv

Aplicação prática: verificar rapidamente a estrutura de logs ou arquivos de dados sem abri-los completamente.

6. tail – Visualizando o final e monitorando mudanças

tail exibe as últimas linhas de um arquivo (padrão: 10 linhas).

tail [opções] arquivo

Opções principais:

Opção Descrição
-n N Exibe N últimas linhas
-c N Exibe N últimos bytes
-f Monitora o arquivo em tempo real (follow)
-F Segue o arquivo mesmo se for rotacionado

Casos de uso essenciais:

# Últimas 20 linhas do log
tail -n 20 /var/log/syslog

# Monitorar log de acesso em tempo real
tail -f /var/log/apache2/access.log

# Monitorar múltiplos logs
tail -f /var/log/*.log

# Últimos 200 bytes
tail -c 200 /etc/hostname

Dica: Para parar o monitoramento com -f, pressione Ctrl+C.

7. Combinações práticas e dicas avançadas

A verdadeira potência está em combinar esses comandos com pipes (|) e outros utilitários.

Exemplos práticos:

# Primeiras 5 linhas de um arquivo grande
head -n 5 arquivo_grande.txt

# Últimas linhas de um log e filtrar por erro
tail -f app.log | grep "ERROR"

# Ver linhas 50 a 60 de um arquivo
head -n 60 arquivo.txt | tail -n 11

# Monitorar log e salvar erros em arquivo
tail -f sistema.log | grep "CRITICAL" >> erros.txt

# Contar ocorrências com tail e wc
tail -n 1000 access.log | grep "404" | wc -l

Comparação rápida:

Situação Comando recomendado
Arquivo pequeno (< 100 linhas) cat
Arquivo grande com navegação less
Ver início do arquivo head
Ver fim do arquivo tail
Monitorar atualizações tail -f
Sistema mínimo sem less more

Performance: Evite cat desnecessário com redirecionamento:

# Ineficiente
cat arquivo.txt | grep "termo"

# Eficiente
grep "termo" arquivo.txt

8. Resumo e boas práticas

Tabela comparativa:

Comando Função principal Ideal para
cat Exibir conteúdo completo Arquivos pequenos, concatenação
less Paginação interativa Arquivos grandes, busca avançada
more Paginação simples Sistemas legados/mínimos
head Início do arquivo Pré-visualização, cabeçalhos
tail Final do arquivo Logs, monitoramento em tempo real

Boas práticas:
1. Use less para arquivos com mais de 50 linhas
2. Prefira tail -f para logs em vez de abrir e fechar repetidamente
3. Combine com grep, sort, wc para análises rápidas
4. Evite cat em pipelines quando possível (redirecionamento direto é mais eficiente)
5. Use -F em vez de -f para logs que podem ser rotacionados

Dominar esses comandos é o primeiro passo para se tornar eficiente no terminal. Pratique combinando-os com outros utilitários para criar pipelines poderosos de processamento de texto.

Referências