Linux: Navegação no Sistema de Arquivos
O Linux organiza todos os arquivos e diretórios em uma árvore enraizada em /. Essa árvore é chamada de Filesystem Hierarchy Standard (FHS).
📋 Pré-requisitos: Você deve primeiro concluir
- Aula 3: Fundamentos do Terminal
1. O Que Você Vai Aprender
- Os três comandos essenciais de navegação: pwd, cd, ls
- Estrutura padrão de diretórios FHS
- Caminhos absolutos versus relativos
- Significados especiais de
.e.. - Curingas e arquivos ocultos
2. A História de um Iniciante Perdido
(1) O Problema: Não Saber Onde Você Está na Árvore de Diretórios
Alex acessou um servidor pela primeira vez e ficou confuso com os nomes de diretórios desconhecidos sob /: /bin, /etc, /var, /usr... Não sabia para que servia cada diretório nem onde estava no momento.
(2) Três Mapas
O engenheiro sênior Bob desenhou três "mapas":
# Mapa 1: Onde estou?
pwd
# Saída: /home/charlie
# Mapa 2: O que tem aqui?
ls
# Saída: Desktop Documents Downloads
# Mapa 3: Vá até lá
cd /etc
(3) O Benefício: Navegação Livre
Alex entendeu a relação entre os três comandos: pwd localiza sua posição atual, ls mostra o que está ao seu redor e cd leva você até o destino. A partir daí, pôde navegar livremente pelo sistema de arquivos de qualquer servidor Linux.
3. Pontos-Chave
(1) Referência Rápida dos Diretórios Padrão FHS
A estrutura de diretórios do Linux segue um padrão unificado. Você não precisa memorizar todos, mas estes são essenciais:
/etc para configurações, /var para dados variáveis, /usr para programas de usuário. Quando você entende essa lógica, mesmo que esqueça um diretório específico, consegue inferir onde um arquivo provavelmente está a partir de sua função.
| Diretório | Significado | Finalidade |
|---|---|---|
/ |
Diretório raiz | O ponto de partida do sistema de arquivos; todos os caminhos começam aqui |
/home |
Diretórios home dos usuários | Os arquivos pessoais de cada usuário ficam aqui (por exemplo, /home/alice) |
/etc |
Arquivos de configuração | Configurações do sistema e de daemons (por exemplo, Nginx, SSH) |
/var |
Dados variáveis | Logs (/var/log), bancos de dados, dados em cache |
/tmp |
Arquivos temporários | Diretório temporário, limpo automaticamente na reinicialização |
ℹ️ Nota:
/tmpnormalmente é apagado após uma reinicialização do sistema (sistemas modernos usam tmpfs, que armazena/tmpna memória). Não guarde dados importantes ou arquivos de longo prazo em/tmp— é adequado apenas para uso temporário. |/usr| Recursos do sistema para usuários | Programas e bibliotecas do sistema (/usr/bin,/usr/lib) | |/bin| Comandos essenciais | Comandos básicos comols,cp,mv| |/opt| Software opcional | Diretório de instalação de softwares de terceiros |
(2) Caminhos Absolutos vs Relativos
| Tipo | Característica | Exemplo |
|---|---|---|
| Caminho absoluto | Começa com /, a partir da raiz |
/home/alice/Documents/report.md |
| Caminho relativo | Começa a partir do diretório atual | Documents/report.md (estando em /home/alice) |
# Atualmente em /home/alice
# Usando um caminho absoluto
cd /etc/nginx
# Usando um caminho relativo (mesmo efeito, partindo do diretório atual)
cd ../../../etc/nginx
(3) Significados Especiais de . e ..
| Símbolo | Significado |
|---|---|
. |
Diretório atual |
.. |
Diretório pai |
~ |
Diretório home do usuário atual |
~alice |
Diretório home do usuário alice |
- |
Diretório anterior (apenas com cd) |
cd - permite voltar rapidamente ao diretório de trabalho anterior — muito útil quando você alterna entre dois diretórios. Por exemplo, se você alterna frequentemente entre /var/log e /etc/nginx, basta digitar cd - a cada vez.
# Atualmente em /home/alice/projects
cd . # Sem mudança (permanece no diretório atual)
cd .. # Vai para /home/alice
cd ../.. # Vai para /home
cd ~ # Vai para /home/alice
cd - # Volta ao diretório anterior
(4) Opções Comuns do ls
# Uso básico
ls # Lista nomes de arquivos (compacto)
ls -l # Formato longo (permissões/dono/tamanho/hora)
ls -a # Mostra todos os arquivos (incluindo ocultos que começam com .)
ls -la # Combinação comum
ls -lh # Tamanhos em formato legível (KB/MB/GB)
ls -R # Lista subdiretórios recursivamente
ls -S # Ordena por tamanho de arquivo
ls -t # Ordena por data de modificação
(5) Curingas
| Curinga | Regra de correspondência | Exemplo |
|---|---|---|
* |
Qualquer número de caracteres | *.txt corresponde a todos os arquivos que terminam em .txt |
? |
Um único caractere | file?.md corresponde a file1.md, file2.md |
[abc] |
Qualquer caractere do conjunto | file[12].md corresponde a file1.md / file2.md |
[!abc] |
Exclui caracteres do conjunto | [!a-z]* corresponde a arquivos que não começam com uma letra |
# Exemplos de curingas
ls *.md # Lista todos os arquivos Markdown
ls file?.txt # Lista file1.txt, file2.txt etc.
ls [abc]* # Lista arquivos que começam com a, b ou c
ls [0-9]* # Lista arquivos que começam com um dígito
(6) ▶ Exemplo: pwd — Me Diga Onde Estou
# Sempre que estiver em dúvida sobre sua localização atual, use pwd
pwd
# Saída: /home/alice
# Tente depois de mudar para um diretório diferente
cd /etc
pwd
# Saída: /etc
Saída:
TEXT/home/alice /etc
(7) ▶ Exemplo: cd — Me Leve Através dos Diretórios
# Vá para o home
cd ~
# Volte ao diretório anterior
cd /etc
cd /var/log
cd - # Volta para /etc
# Vá para a raiz
cd /
# Vá para o home de um usuário específico
cd ~alice
(8) ▶ Exemplo: ls — Me Mostre o Que Tem Aqui
# Modo compacto
ls /etc
# Formato longo (inclui permissões, tamanho, data de modificação)
ls -l /etc
# Mostrar arquivos ocultos
ls -la ~
# Tamanhos em formato legível
ls -lh /var/log
# Visão recursiva
ls -R ~/projects | head -20
# Ordenar por tamanho de arquivo (maiores primeiro)
ls -lhS /var/log
(9) ▶ Exemplo: Arquivos Ocultos
No Linux, qualquer arquivo ou diretório que comece com . é oculto. ls não os exibe por padrão.
# Ver arquivos ocultos no diretório home
ls -la ~
# Arquivos e diretórios ocultos comuns
# .bashrc configuração do bash
# .bash_profile configuração do Shell de login
# .gitconfig configuração do Git
# .ssh/ chaves e configuração SSH
# .vimrc configuração do vim
Saída:
TEXTtotal 48 drwxr-xr-x 1 alice alice 4096 Jul 8 10:23 . drwxr-xr-x 1 alice alice 4096 Jul 8 10:23 .. -rw-r--r-- 1 alice alice 220 Jul 8 10:23 .bash_logout -rw-r--r-- 1 alice alice 3771 Jul 8 10:23 .bashrc -rw-r--r-- 1 alice alice 807 Jul 8 10:23 .profile drwx------ 2 alice alice 4096 Jul 8 10:23 .ssh -rw-r--r-- 1 alice alice 256 Jul 8 10:23 .vimrc
(10) ▶ Exemplo: Curingas em Ação
# Listar todos os arquivos .log
ls -la /var/log/*.log
# Listar arquivos cujos nomes começam com "access"
ls -la /var/log/access*
# Apagar todos os arquivos .tmp
rm *.tmp
# Copiar todos os arquivos .jpg para outro diretório
cp *.jpg ~/Pictures/
(11) ▶ Exemplo Abrangente: Aventura no Sistema de Arquivos
# A primeira aventura de Alex no sistema de arquivos
# 1. Onde estou?
pwd
# 2. Veja o que há no diretório raiz
ls -la /
# 3. Vá para /etc e verifique as configurações do sistema
cd /etc
ls | head -20
# 4. Vá para /var/log para ver os logs
cd /var/log
ls -lhS | head -10 # Os 10 maiores arquivos de log
# 5. Volte para o home
cd ~
ls -la
# 6. Veja o que está no desktop
ls -la ~/Desktop
❓ Perguntas Frequentes
P: Qual é a diferença entre
/e~? R:/é o diretório raiz, o nível mais alto de toda a árvore.~é o diretório home do usuário atual (geralmente/home/nome-do-usuário). Existe apenas uma raiz, mas cada usuário tem seu próprio diretório home.
P: Por que arquivos que começam com
.ficam ocultos? R: É uma convenção — arquivos que começam com.são considerados "arquivos de configuração" ou "arquivos de sistema" que os usuários não precisam ver no uso diário. Isso reduz o ruído na saída dols.
P: O que significa a primeira coluna
drwxr-xr-xna saída dols -l? R: O primeiro caractere é o tipo de arquivo (dpara diretório,-para arquivo comum,lpara link). Os 9 caracteres seguintes são divididos em três grupos: permissões do dono do arquivo (user) (3 bits), permissões do grupo (group) (3 bits) e permissões dos outros (other) (3 bits). r=read (leitura), w=write (escrita), x=execute (execução).
P: Os arquivos em
/tmpdesaparecem depois de reiniciar? R: Por padrão, sim. Muitos sistemas limpam/tmpna inicialização. Portanto,/tmpé adequado apenas para arquivos temporários — não guarde dados importantes lá.
P: Como alterno rapidamente entre caminhos longos? R: Use o autocompletar com Tab (digite os primeiros caracteres e pressione Tab),
cd -para voltar,pushd/popdpara gerenciar uma pilha de diretórios, ou a variável de ambienteCDPATH.
📖 Resumo
pwdmostra a localização atual,cdtroca de diretório,lslista o conteúdo — três comandos para navegar em qualquer lugar- Diretórios padrão FHS:
/homepara usuários,/etcpara configurações,/varpara logs,/tmppara arquivos temporários - Caminhos absolutos começam com
/; caminhos relativos partem do diretório atual ..é o diretório pai,.é o diretório atual,~é o diretório home*corresponde a qualquer coisa,?corresponde a um caractere — ferramentas poderosas para operações em lote
📝 Exercícios
- Básico (Dificuldade ⭐): Use
pwdpara confirmar sua localização atual, depoiscd /para ir ao diretório raiz els -la /para listar todos os arquivos - Intermediário (Dificuldade ⭐⭐): Use
cd ~para ir ao home e ver os arquivos ocultos, depois vá até/var/logpara ver o diretório de logs, usecd -para alternar entre os dois e, por fim, usels *.confem/etcpara encontrar arquivos de configuração - Avançado (Dificuldade ⭐⭐⭐): Desenhe um diagrama da estrutura de diretórios da raiz do seu sistema (incluindo pelo menos 5 diretórios padrão FHS), anotando a finalidade de cada um e se ele permite escrita