Visualizando arquivos com Head, Tail e Cat

LinuxBeginner
Pratique Agora

Introdução

Bem-vindo ao mundo da visualização de arquivos no Linux. No módulo anterior, você aprendeu a organizar arquivos. Agora, é hora de abri-los e ler o conteúdo.

Neste laboratório, você aprenderá três maneiras fundamentais de examinar o conteúdo de um arquivo:

  1. cat: lê o arquivo inteiro de uma vez. É ideal para anotações pequenas.
  2. head: lê apenas o início, ou o “cabeçalho”, do arquivo. É útil para verificar do que trata um arquivo.
  3. tail: lê apenas o final do arquivo. É ideal para verificar as atualizações mais recentes em um arquivo de log.

Você também aprenderá um recurso especial para acompanhar as atualizações de um arquivo em tempo real.

Este é um passo importante para desenvolver sua familiaridade com o Linux. Nos módulos anteriores, você aprendeu como os arquivos são organizados. Agora, começará a interagir com o conteúdo deles. Em sistemas reais, grande parte da administração consiste em saber ler o arquivo de texto certo da maneira correta.

Visualizar o arquivo inteiro (cat)

O comando cat é a forma padrão de dizer: “Mostre tudo o que está neste arquivo”.

Ele funciona melhor com arquivos pequenos. Se você usá-lo em um arquivo enorme, o texto passará pela tela rápido demais para ser lido.

O nome cat é uma abreviação de concatenate, porque o comando foi originalmente criado para unir e exibir o conteúdo de arquivos. Muitos iniciantes conhecem o comando primeiro como uma ferramenta de visualização, mas historicamente ele fazia parte de um estilo mais amplo de processamento de texto.

Preparamos um arquivo pequeno chamado sample.txt.

Primeiro, vá para a pasta do projeto:

cd ~/project

Agora, exiba o conteúdo do arquivo na tela:

cat sample.txt

Você verá todo o conteúdo impresso imediatamente:

Line 1: This is a sample file.
Line 2: It is used to demonstrate the cat command.
Line 3: The cat command displays the full content.
Line 4: This file is short enough to read easily.
Line 5: End of the sample file.

Para arquivos maiores, precisamos de ferramentas mais adequadas.

Visualizar o início do arquivo (head)

Às vezes, você só precisa verificar o título ou as primeiras linhas. É nesse momento que o head é útil. Ele mostra o “cabeçalho”, ou seja, o início de um arquivo.

Por padrão, head mostra as 10 primeiras linhas.

Esse padrão é útil porque o início de um arquivo geralmente contém informações de contexto: um cabeçalho, comentários, nomes de colunas ou os primeiros registros. Em outras palavras, head é uma ferramenta para obter uma amostra rápida do arquivo.

Vamos examinar /etc/passwd. Esse é um arquivo de sistema longo que contém informações sobre usuários.

head /etc/passwd

Você verá apenas as 10 primeiras linhas.

Personalizar a visualização

E se você quiser ver apenas as 5 primeiras linhas? Você pode informar ao head exatamente quantas linhas deseja usando a opção -n (número).

head -n 5 /etc/passwd

Essa é uma ótima maneira de obter uma “amostra” do arquivo sem precisar ler tudo.

Visualizar o final do arquivo (tail)

Se head mostra o início, tail mostra o final. O comando tail exibe as últimas linhas de um arquivo.

No Linux, os logs são gravados sequencialmente. A entrada mais “recente” está sempre no final. Portanto, se algo der errado agora, a mensagem de erro estará no final do arquivo.

Por isso, tail está tão associado ao trabalho de operações. Os logs geralmente crescem com a adição de novas linhas, então o final do arquivo é a parte mais provável de explicar um problema atual.

Vamos examinar o log do sistema /var/log/syslog.

tail /var/log/syslog

Você verá as 10 últimas entradas.

Assim como acontece com head, você pode limitar o número de linhas. Para ver os 5 últimos eventos:

tail -n 5 /var/log/syslog

Esse é um dos comandos mais usados por administradores de sistemas. Quando um servidor trava, a primeira coisa que eles geralmente digitam é tail.

Monitorar logs em tempo real (tail -f)

Arquivos estáticos podem ser entediantes; dados em tempo real são mais interessantes. O comando tail tem a opção -f, que significa follow.

Quando você usa -f, tail aguarda. Se um programa gravar uma nova linha nesse arquivo, tail a captura e a exibe imediatamente. É como acompanhar um letreiro de notícias ao vivo.

Este é um dos primeiros momentos em que o terminal começa a parecer interativo, em vez de estático. Em vez de ler um arquivo já concluído, você observa os eventos aparecerem à medida que um programa os produz.

Vamos testar isso usando dois terminais.

Terminal 1 (o monitor)

Comece a monitorar o arquivo de log:

tail -f ~/project/app.log

O cursor ficará aguardando. O terminal parecerá “travado”, mas, na verdade, ele está escutando.

Terminal 2 (o gerador de eventos)

Abra um segundo terminal — clique no botão + ao lado das abas. Vamos gravar uma mensagem no log:

echo "New log entry at $(date)" >> ~/project/app.log

Volte rapidamente para o Terminal 1. Você verá a mensagem aparecer.

Volte ao Terminal 2 e gere mais eventos:

echo "Another event happened" >> ~/project/app.log
echo "System is running smoothly" >> ~/project/app.log

Assim que você pressionar Enter no Terminal 2, o texto aparecerá no Terminal 1. É assim que os engenheiros monitoram servidores em tempo real.

Para finalizar, volte ao Terminal 1. Pressione Ctrl+C para interromper o acompanhamento e retornar ao prompt do shell.

Resumo

Parabéns! Agora você tem um conjunto básico de ferramentas para examinar arquivos no Linux.

  • cat: lê o arquivo inteiro. É adequado para arquivos pequenos.
  • head: lê o início do arquivo. É útil para verificações rápidas.
  • tail: lê o final do arquivo. É adequado para logs.
  • tail -f: monitora um arquivo em tempo real.

Esses comandos permitem responder à pergunta: “O que há dentro deste arquivo?”