Visão Geral da Estrutura de Diretórios do Linux - Entendendo a Hierarquia do Sistema de Arquivos

Visão Geral da Estrutura de Diretórios do Linux - Entendendo a Hierarquia do Sistema de Arquivos

"Tem cd /etc, depois /var/log, esses lugares diferentes ficam aparecendo... o que são todos eles?" Essa é uma dúvida que todo mundo encontra ao começar a usar o Linux. Neste artigo, por meio de um diálogo entre o veterano Linny e a Lina, vamos construir juntos um mapa mental da estrutura de diretórios do Linux.

O que você vai aprender

  • Que o sistema de arquivos do Linux é uma única árvore que se ramifica a partir de / (a raiz)
  • Os papéis de diretórios importantes como /etc, /var, /home e /bin
  • O FHS (Filesystem Hierarchy Standard), uma convenção mundial
  • O que realmente são diretórios virtuais como /proc, /dev e /sys
  • Como verificar sua localização para nunca se perder

1. Introdução: O que é um Sistema de Arquivos?

Lina: Veterano Linny, não consigo encontrar uma pasta Documents no Linux, só lugares de que nunca ouvi falar, como /etc e /usr. Eu vivo me perdendo...
Veterano Linny: Eu entendo perfeitamente. Se você sair procurando como se fosse o "drive C" do Windows, vai ficar confusa. O Linux tem essa estrutura parecida com uma única árvore grande. Vamos começar pegando a visão geral.

O que é um sistema de arquivos?

No Linux, cada arquivo e pasta (diretório) se ramifica a partir de um único ponto de partida, formando uma estrutura em forma de "árvore". Esse ponto de partida é chamado de diretório raiz, escrito como / (uma única barra).

Lina: No Windows era dividido em "drive C" e "drive D", mas no Linux é diferente?
Veterano Linny: Sim, essa é a grande diferença. O Linux não tem letras de drive. Um pen drive, um disco externo, tudo se conecta como "algum ramo" de uma única árvore que começa em /. Lembre-se disso e todo o resto fica bem mais fácil.

Por que conhecer a estrutura compensa

  • Você consegue prever onde ficam os arquivos de configuração (geralmente dentro de /etc)
  • Você sabe onde ficam os logs (geralmente /var/log)
  • Você consegue fazer um palpite fundamentado a partir de um caminho em uma mensagem de erro ("ah, isso é uma área do sistema")
  • Você para de hesitar sobre "onde devo colocar o quê?"

2. O Ponto de Partida: "/" (raiz)

Conclusão: / (raiz) é o diretório mais alto e o ancestral de todos os arquivos no Linux.

Lina: Aquele / de antes, é uma pasta em si?
Veterano Linny: Exatamente. / é o diretório mais alto, o ancestral de todos os arquivos. Vamos dar uma olhada dentro dele.
$ ls /
bin   dev  home  lib    mnt  proc  run   srv  tmp  var
boot  etc  lib64  media  opt  root  sbin  sys  usr
Lina: Nossa, é bastante coisa. Eu tenho que memorizar tudo isso...?
Veterano Linny: Relaxe. Você não precisa memorizar todos. No começo, bastam uns 5 ou 6. Para o resto, basta saber que "existe uma caixa daquele tipo". Na verdade, há uma regra para essa organização, chamada FHS (Filesystem Hierarchy Standard), uma convenção mundial.

FHS (Filesystem Hierarchy Standard)

Uma especificação padrão que define o que vai em cada diretório. Graças a ele, tanto no Ubuntu quanto no CentOS, "a configuração fica em /etc" e "os logs ficam em /var/log" estão quase no mesmo lugar. O motivo de você não se perder ao trocar de distribuição é esse padrão.

3. Um Mapa dos Principais Diretórios

Conclusão: Agrupe os principais diretórios em conjuntos: pessoas, sistema e dados que mudam.

Veterano Linny: Primeiro, vamos olhar o mapa geral. Quando isso estiver na sua cabeça, você nunca mais vai se perder.
/                  <- o ponto de partida de tudo (raiz)
├── bin            <- comandos básicos (ls, cp, etc.)
├── boot           <- arquivos necessários para inicializar
├── dev            <- dispositivos (discos, USB, etc.)
├── etc            <- arquivos de configuração de todo o sistema
├── home           <- pastas pessoais de cada usuário
│   └── yamada     <- o "quarto próprio" do yamada
├── lib            <- bibliotecas compartilhadas (partes de programas)
├── opt            <- softwares extras que você adicionou
├── proc           <- informações sobre processos em execução (virtual)
├── root           <- pasta pessoal do usuário administrador (root)
├── tmp            <- arquivos temporários (apagados ao reiniciar)
├── usr            <- onde ficam aplicativos e binários de comandos
└── var            <- dados que mudam (logs, etc.)
Lina: home e root parecem parecidos. São coisas diferentes?
Veterano Linny: Boa observação. /home/nome-do-usuario é o quarto de um usuário comum, enquanto /root é o quarto exclusivo do administrador. Os nomes parecem iguais, mas são todos diferentes: o diretório raiz / e o quarto do administrador /root. São fáceis de confundir, então vou esclarecer isso mais adiante.

Memorize em 3 grupos aproximados

Grupo Diretórios Em uma frase
Pertence às pessoas /home, /root Armazenamento de arquivos pessoais
Pertence ao sistema /etc, /bin, /usr, /lib Configuração e binários de programas
Muda durante a execução /var, /tmp, /proc, /dev Logs, temporários, informações ao vivo

4. Um Olhar Mais Atento sobre os Diretórios Comuns

Conclusão: Suas coisas ficam em /home, a configuração em /etc, os logs em /var/log, os binários em /usr/bin.

Lina: Eu gostaria de saber um pouco mais sobre cada um especificamente.
Veterano Linny: Vamos na ordem dos que você vai encontrar com mais frequência. Associar cada um a "quando você usa" ajuda a fixar.

/home - Seu espaço de trabalho

Um diretório pessoal para cada usuário. Para um usuário chamado yamada, é atribuído /home/yamada, e no terminal você pode escrevê-lo como ~ (til).

$ cd ~
$ pwd
/home/yamada

Quase toda a criação e edição de arquivos do seu dia a dia acontece aqui dentro. Basta lembrar: suas próprias coisas vão dentro de /home e você está seguro.

/etc - O depósito de arquivos de configuração

O lugar onde se reúnem os arquivos de configuração de todo o sistema.

$ ls /etc
hostname  hosts  passwd  ssh  network  ...
Lina: O passwd tem senhas escritas dentro dele!?
Veterano Linny: O nome confunde, mas /etc/passwd é informação de conta de usuário, e as senhas em si não estão nele (as senhas criptografadas de verdade ficam em /etc/shadow). Lembre-se: o conteúdo de /etc é basicamente "somente leitura", e editar muitos deles exige privilégios de administrador.

/var - Dados em constante mudança

Abreviação de "variable" (variável). Dados que crescem e diminuem ficam aqui. O que os iniciantes mais usam são os logs.

$ ls /var/log
syslog  auth.log  dpkg.log  ...

O primeiro lugar para olhar ao solucionar problemas é /var/log. "Algo está errado, então vou verificar os logs aqui" é um movimento básico até nas operações do mundo real.

/bin e /usr/bin - Os binários dos comandos

Os "corpos reais" dos comandos que você digita, como ls e cp, ficam aqui.

$ which ls
/usr/bin/ls
Lina: Eu achava que ls era um comando, mas é um arquivo?
Veterano Linny: Sim, a verdadeira forma de um comando é um arquivo de programa colocado em /usr/bin e similares. Você pode verificar sua localização com which nome-do-comando. Nas distribuições recentes, /bin costuma ser um atalho (link simbólico) para /usr/bin.

/tmp - Armazenamento temporário

Um lugar para arquivos temporários. O conteúdo costuma ser apagado ao reiniciar, então nunca coloque arquivos importantes aqui.

/opt e /root (notas rápidas)

  • /opt: Um lugar onde softwares maiores instalados posteriormente podem ficar
  • /root: A pasta pessoal do administrador (usuário root). Usuários comuns não podem entrar nela (recebem Permission denied)

5. Os Diretórios Virtuais /proc /dev /sys

Conclusão: /proc, /dev e /sys são virtuais e expõem o estado ao vivo do sistema, não arquivos.

Lina: Quando rodei ls em /proc, apareceram montes de pastas numeradas e foi assustador...
Veterano Linny: Não precisa ter medo. /proc é um diretório que não existe fisicamente no disco. É o Linux mostrando "o estado atual de execução" na hora, como um balcão de informações.
Diretório Conteúdo Imagem
/proc Info sobre processos em execução O "balcão de check-up" do sistema
/dev Dispositivos (discos, USB, etc.) As "portas de conexão" com o hardware
/sys Info do kernel e do hardware Uma "janela de espiada" para configurações internas
$ cat /proc/cpuinfo   # você pode ver informações da CPU
$ ls /dev/sda*        # dispositivos de armazenamento

Estes são "informações fingindo ser arquivos". Você não precisa entender totalmente o mecanismo ainda. Basta saber que "existem caixas especiais sem substância real".

6. Dicas para Nunca se Perder

Conclusão: Quando se perder, use pwd para se localizar, cd / para a raiz e cd ~ para o seu home.

Lina: Estou começando a entender a estrutura. Mas, quando estou de fato me movendo, sinto que ainda vou me perder...
Veterano Linny: Para esses momentos, deixe-me ensinar o "conjunto de 3 peças da localização atual". Com isso, você consegue manter a calma onde quer que esteja.

O conjunto de 3 peças da localização atual

$ pwd          # onde estou agora? (mostra o caminho absoluto)
$ ls           # o que tem aqui?
$ cd /         # volta para a raiz e recomeça
Lina: Então cd / me leva de volta para o topo de tudo.
Veterano Linny: Isso. Quando se perder, cd / leva você de volta à raiz, e de lá você segue os ramos um a um com ls, e sempre chegará ao seu destino. É a sensação de voltar à raiz da árvore. E cd ~ leva você direto de volta ao seu próprio quarto (home).

Caminhos absolutos vs caminhos relativos

Tipo Exemplo Significado
Caminho absoluto /var/log/syslog Um endereço completo escrito a partir de /
Caminho relativo log/syslog Direções a partir de onde você está agora

Na dúvida, use um caminho absoluto (um que começa em /) para ter certeza. A força de um caminho absoluto é que "ele aponta para o mesmo lugar não importa onde você esteja".

Mini Exercícios

Conclusão: Execute ls /, volte com cd ~ e encontre um binário com which ls para praticar.

Veterano Linny: Muito bem, vamos verificar se o mapa está na sua cabeça!

Exercício 1: Explore a raiz

Execute ls / e verifique se os diretórios que apareceram neste artigo (etc, var, home, etc.) realmente existem.

Exercício 2: Volte para o seu quarto

Execute cd /etc para entrar no depósito de configurações, depois verifique sua localização com pwd. Em seguida, execute cd ~ para voltar ao seu home e confirme novamente com pwd.

Exercício 3: Veja a verdadeira forma de um comando

Execute which ls e verifique em qual diretório está o binário do comando ls. Era /usr/bin ou /bin?

Lina: Pronto! Mesmo que eu vá para /etc, consigo voltar instantaneamente para o meu quarto com cd ~, então não tenho mais medo.
Veterano Linny: Essa sensação importa. Quando se perder, volte para a raiz (/) ou para o seu quarto (~). Esse é o básico de se mover entre diretórios.

Recapitulação

Lina: Hoje aprendi a estrutura de diretórios do Linux. / é o ponto de partida, e home, etc e var se ramificam a partir daí!
Veterano Linny: Exatamente. E "suas próprias coisas ficam em /home", "a configuração em /etc", "os logs em /var/log". Só com esses três você já vai longe no trabalho do mundo real.
Lina: Agora, mesmo quando um lugar desconhecido aparece, consigo adivinhar "ah, isso é o lado do sistema".
Veterano Linny: Perfeito. Com o mapa na cabeça, você consegue ler uma situação só pelo caminho em uma mensagem de erro. Agora, vamos de fato criar arquivos e executar coisas!

Resumo em Três Linhas

  1. O Linux é uma única árvore que começa em / (a raiz). Não há letras de drive
  2. Os três mais importantes: suas próprias coisas em /home, a configuração em /etc, os logs em /var/log
  3. Quando se perder: pwd para verificar a localização, cd / para a raiz, cd ~ para o seu próprio quarto

O que Ler em Seguida

Depois que o mapa da estrutura de diretórios estiver na sua cabeça, mova-se e opere de fato para que seu corpo aprenda.