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

  1. Usando o comando cat, exiba o conteúdo do arquivo /etc/hostname e redirecione a saída para um novo arquivo chamado hostname.txt. Em seguida, verifique o conteúdo do novo arquivo com cat.
  2. ✓ Resposta:
    cat /etc/hostname > hostname.txt
    cat hostname.txt
  3. Use less para 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.
  4. ✓ Resposta:
    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.
  5. Exiba as primeiras 15 linhas do arquivo /etc/services usando head.
  6. ✓ Resposta:
    head -n 15 /etc/services
  7. Monitore o arquivo /var/log/syslog em tempo real com tail -f. Após alguns segundos, interrompa com Ctrl+C.
  8. ✓ Resposta:
    tail -f /var/log/syslog
    # Pressione Ctrl+C para interromper.
  9. Conte quantas linhas, palavras e caracteres existem no arquivo /etc/passwd usando wc. Depois, conte apenas o número de linhas.
  10. ✓ Resposta:
    wc /etc/passwd
    wc -l /etc/passwd