Capítulo 003 — Comandos Essenciais de Navegação e Leitura de Arquivos¶
Entender antes de decorar.
| Informação | Detalhes |
|---|---|
| Módulo | 03 — Linux |
| Nível | Iniciante |
| Tempo estimado | 15 a 20 minutos |
| Pré-requisito | Capítulo 002 — O Terminal e a Hierarquia de Diretórios do Linux |
Objetivo deste capítulo¶
Ao final deste capítulo, você será capaz de:
- usar
pwd,lsecdpara navegar com confiança em qualquer sistema Linux; - interpretar a saída detalhada de
ls -l, incluindo permissões, proprietário e tamanho; - revelar arquivos ocultos (dotfiles) usando a flag correta;
- inspecionar arquivos com
cat,less,headetail, escolhendo a ferramenta certa para cada situação; - usar
tail -fpara acompanhar um log em tempo real.
Como sempre, vamos começar utilizando nossa imaginação.¶
Lembra de onde paramos? Você está no servidor comprometido, no prompt:
Você sabe, pelo capítulo anterior, que /var/log é onde as evidências provavelmente estão. Só falta um detalhe: como sair de onde você está e chegar lá — e, uma vez lá, como abrir um arquivo de log de 2GB sem travar o terminal.
Opção A
"Vou digitar 'cat' no arquivo inteiro e ver o que acontece."
Opção B
"Preciso da ferramenta certa para o tamanho certo de arquivo."
Se você escolheu a opção A, seu terminal está prestes a ser inundado com milhões de linhas de uma vez. Vamos evitar isso.
Navegar em um sistema Linux não é sobre memorizar comandos. É sobre saber qual ferramenta pequena usar para cada situação específica.
pwd — Onde estou?¶
O comando mais simples de todos: pwd (print working directory) mostra o caminho absoluto do diretório em que você está agora.
Parece pouco, mas depois de alguns cd seguidos, é fácil perder a noção de onde você está — pwd sempre te devolve a resposta certa.
ls — O que tem aqui?¶
ls lista o conteúdo do diretório atual. Sozinho, mostra só os nomes. Combinado com flags, mostra muito mais:
| Comando | O que faz |
|---|---|
ls |
Lista arquivos e diretórios (visíveis) |
ls -l |
Formato longo: permissões, proprietário, tamanho, data |
ls -a |
Mostra também arquivos ocultos (que começam com .) |
ls -la |
Combina os dois anteriores |
ls -lh |
Formato longo, com tamanhos legíveis (KB, MB, GB) |
A saída de ls -l merece atenção especial — vamos revisitar as permissões dessa saída com profundidade no próximo capítulo, mas por agora, reconheça a estrutura:
-rw-r--r-- → permissões
1 → número de links
root root → proprietário e grupo
4096 → tamanho em bytes
Set 17 10:32 → data de modificação
access.log → nome do arquivo
Arquivos ocultos não são arquivos escondidos por mágica
No Linux, qualquer arquivo cujo nome comece com . é tratado como oculto pelo ls padrão — mas continua totalmente acessível, sem qualquer proteção real. Isso é frequentemente explorado por quem quer "esconder" algo de uma inspeção rápida: um arquivo chamado ... ou .cache_tmp pode passar despercebido para quem esquece de usar ls -a.
cd — Movendo-se entre diretórios¶
cd /var/log → vai para um caminho absoluto específico
cd .. → sobe um nível (diretório pai)
cd ~ → vai direto para o diretório home do usuário atual
cd → sem argumento nenhum, também vai para o home
cd - → volta para o último diretório em que você estava
Esse último, cd -, é particularmente útil durante uma investigação: permite alternar rapidamente entre dois diretórios (por exemplo, entre onde você está analisando e onde estão os logs) sem precisar digitar o caminho completo de novo.
Lendo arquivos sem abrir um editor¶
cat — despeja tudo de uma vez¶
Mostra o conteúdo inteiro do arquivo, de uma vez, na tela. Ótimo para arquivos pequenos — péssimo para um log de milhões de linhas, que vai inundar seu terminal instantaneamente.
less — navegação paginada¶
Abre o arquivo permitindo navegação para cima e para baixo (setas, PageUp/PageDown), busca por palavras (/termo), sem carregar o arquivo inteiro na memória de uma vez. Para arquivos grandes, é sempre a opção mais segura.
head e tail — só as pontas que interessam¶
$ head access.log # primeiras 10 linhas
$ tail access.log # últimas 10 linhas
$ tail -n 50 access.log # últimas 50 linhas
E o mais importante para investigação de incidentes em andamento:
O -f ("follow") mantém o arquivo aberto e exibe novas linhas em tempo real, conforme são escritas — essencial para observar o que está acontecendo em um servidor enquanto o incidente ainda está em curso.
Aplicação em um SOC¶
Ao explorar um sistema comprometido¶
- usar
pwdcom frequência para nunca perder a noção de onde você está durante uma investigação longa; - usar
ls -lacomo hábito, não sóls— arquivos ocultos são justamente onde algumas ameaças tentam se camuflar.
Ao inspecionar logs¶
- preferir
lessacatsempre que não tiver certeza do tamanho do arquivo; - usar
tail -fpara acompanhar logs durante um incidente ativo, observando novas entradas em tempo real.
Ao documentar uma investigação¶
- registrar não só o conteúdo encontrado, mas o comando exato usado para chegar até ele — reprodutibilidade é parte da qualidade de uma investigação.
Cenário prático — Chegando aos logs¶
Voltando ao servidor comprometido:
Você identifica um arquivo access.log de 2.3 GB. Em vez de cat (que inundaria o terminal), você abre com:
E, para acompanhar novas requisições chegando em tempo real, enquanto o incidente ainda pode estar em andamento:
Nenhum desses comandos exigiu decorar nada complexo — só saber qual ferramenta pequena usar para qual problema, exatamente como a filosofia Unix do capítulo 001 prometia.
Perguntas de investigação¶
1. Qual comando revela arquivos ocultos que ls sozinho não mostra?
ls -a (ou ls -la para combinar com o formato detalhado), exibindo também arquivos cujo nome começa com ponto.
2. Por que usar less em vez de cat para abrir um arquivo de log muito grande?
Porque cat despeja o conteúdo inteiro de uma vez, podendo inundar o terminal e consumir memória com arquivos grandes. less permite navegação paginada sem carregar tudo de uma vez.
3. O que tail -f faz, e por que é útil durante um incidente em andamento?
Mantém o arquivo aberto e exibe novas linhas em tempo real, conforme são escritas — permitindo observar atividade de um sistema enquanto o incidente ainda está ocorrendo.
4. O que as colunas da saída de ls -l representam?
Permissões, número de links, proprietário, grupo, tamanho em bytes, data de modificação e nome do arquivo, nessa ordem.
5. Qual a diferença entre cd .. e cd -?
cd .. sobe um nível para o diretório pai. cd - retorna ao último diretório em que você estava antes do comando cd mais recente, independente de onde ele fica na hierarquia.
O que não fazer¶
- não use
catem arquivos cujo tamanho você não conhece — prefiralessaté confirmar que é pequeno; - não confie apenas em
lssem a flag-aao procurar por algo suspeito; - não ignore as colunas de
ls -l— proprietário e data de modificação frequentemente contam parte da história; - não esqueça de registrar o comando usado, não só o resultado, ao documentar uma investigação.
Erros comuns¶
"cat é suficiente para qualquer arquivo"¶
Não.
Para arquivos pequenos, sim. Para logs de produção, que podem ter gigabytes, cat pode travar sua sessão ou dificultar a leitura ao despejar tudo de uma vez.
"Se ls não mostra, o arquivo não existe"¶
Não.
ls sem -a simplesmente não exibe arquivos ocultos por padrão — eles continuam lá, plenamente acessíveis.
"Não preciso me importar com as permissões mostradas em ls -l"¶
Não.
Essa coluna revela quem pode ler, escrever ou executar um arquivo — informação central para entender o que um atacante conseguiria (ou não) fazer com ele. Vamos aprofundar isso no próximo capítulo.
Resumo¶
Neste capítulo, aprendemos que:
- pwd mostra onde você está; ls mostra o que existe ali; cd move você entre diretórios;
ls -larevela arquivos ocultos e detalhes como permissões, proprietário e tamanho;- cat é adequado para arquivos pequenos; less é mais seguro para arquivos grandes;
- head e tail mostram só as pontas de um arquivo;
tail -facompanha novas linhas em tempo real; - documentar o comando exato usado é tão importante quanto documentar o que foi encontrado.
Não pergunte apenas:
"Que comando eu preciso usar?"
Pergunte também:
"Esse arquivo é grande o suficiente para eu escolher a ferramenta errada?"
"Eu olhei com -a, ou só confiei no ls padrão?"
"Eu documentei o comando, não só o resultado?"
Um bom investigador Linux não decora comandos. Aprende qual ferramenta pequena resolve qual problema específico.
Checkpoint¶
Antes de seguir para o próximo capítulo, confirme se você consegue responder:
- [ ] O que
pwd,lsecdfazem, respectivamente? - [ ] Como revelar arquivos ocultos com
ls? - [ ] O que cada coluna de
ls -lrepresenta? - [ ] Quando usar
cate quando usarless? - [ ] O que
tail -ffaz, e quando é útil? - [ ] Qual a diferença entre
cd ..ecd -?
Glossário¶
| Termo | Definição |
|---|---|
| pwd | Comando que exibe o caminho absoluto do diretório atual. |
| ls | Comando que lista o conteúdo de um diretório. |
| cd | Comando que muda o diretório atual. |
| cat | Comando que exibe o conteúdo completo de um arquivo de uma vez. |
| less | Comando que exibe o conteúdo de um arquivo com navegação paginada, sem carregá-lo todo na memória. |
| head / tail | Comandos que exibem, respectivamente, as primeiras ou últimas linhas de um arquivo. |
| Dotfile (arquivo oculto) | Arquivo cujo nome começa com ., ocultado por padrão pelo ls comum. |
Referências¶
Próximo capítulo¶
No próximo capítulo, vamos aprofundar exatamente aquela coluna de permissões que apareceu em ls -l — como o Linux decide quem pode ler, escrever ou executar cada arquivo, e por que isso é central para qualquer investigação.
← Capítulo anterior: O Terminal e a Hierarquia de Diretórios
Entender antes de decorar.