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

O que você vai conseguir fazer

  • Explicar para que servem os diretórios principais (/, /home, /etc…)
  • Ter uma ideia de onde um arquivo provavelmente está

Pré-requisitos (leia estes primeiro)

"Tem cd /etc, depois /var/log. Tantos 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 pastaUm local que organiza arquivos. É a mesma ideia da "pasta" do Windows ou macOS. Documents no Linux. Só vejo lugares de que nunca ouvi falar, como /etc e /usr, e 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". 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

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

Conclusão: / (raiz) é o diretório mais alto. É 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.

A propósito, um "conjunto de distribuição do Linux" como o Ubuntu ou o CentOS é chamado de distribuição (ou "distro", para abreviar). O motivo de você não se perder ao trocar de distro é 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 (programas 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. /root é o quarto exclusivo do administrador.
Lina: E aquele diretório raiz / de antes também parece com eles... isso está ficando confuso.
Veterano Linny: Isso é exatamente o tipo de coisa fácil de confundir. Vamos colocar numa tabela e esclarecer isso agora mesmo.

Diferenciando os três "root"

Como é escrito Como é chamado O que representa
/ O diretório raiz O diretório mais alto. O ponto de partida de tudo
/root O home do administrador A pasta pessoal do administrador (usuário rootA conta de administrador especial que pode fazer qualquer coisa no sistema.)
root O usuário root O nome da conta de administrador. Se refere a uma pessoa

A mesma palavra "root" se divide em três coisas diferentes. / é o topo do lugar, /root é o quarto do administrador, e root é o nome da pessoa administradora. Separe esses três e você não vai mais se confundir.

Memorize em 3 grupos

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 terminalUm programa interativo que interpreta os comandos digitados e os executa. 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 o que está escrito em /etc/passwd é informação de conta de usuário. 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". 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 (um link simbólico, uma espécie de "ponteiro" para o arquivo real) 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)
Lina: Deixa eu dar uma espiadinha dentro de /root... opa, deu erro!
$ cd /root
bash: cd: /root: Permission denied
Lina: Apareceu Permission denied. Eu quebrei alguma coisa!?
Veterano Linny: Nada quebrou, fica tranquila. /root é o quarto exclusivo do administrador. Você, como usuária comum, não tem a chave desse quarto. Esse erro só quer dizer "você não pode entrar", nada mais.
Lina: Que alívio...! Achei que tinha quebrado algo e fiquei apavorada por um segundo.

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

Conclusão: /proc, /dev e /sys não existem fisicamente no disco. São janelas especiais que mostram o estado ao vivo do sistema.

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. Ele mostra as informações dos processos (programas em execução no momento), 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 kernelO programa central de um sistema operacional. Faz a ponte entre hardware e software. (o núcleo do Linux) 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

O que aparece varia de computador para computador. Não tem problema se você ainda não conseguir ler — por enquanto, basta lembrar que "existe uma janela desse tipo".

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. 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: Três exercícios para verificar, com as próprias mãos, "o que tem dentro da raiz", "como voltar para o seu próprio quarto" e "onde fica o binário de um comando". Tente digitar por conta própria antes de espiar a resposta.

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

Exercício 1: Explore a raiz. Verifique se os diretórios que apareceram neste artigo (etc, var, home, etc.) realmente existem

Dica 1 (Direção) — clique para revelar

Veja o que existe logo abaixo de /. Há um comando para listar o conteúdo de um diretório que você já usou no Capítulo 2.

Dica 2 (Comando) — clique para revelar

Execute ls /.

Mostrar Resposta
$ ls /
bin   dev  home  lib    mnt  proc  run   srv  tmp  var
boot  etc  lib64  media  opt  root  sbin  sys  usr

etc, var e home estão todos lá.

Exercício 2: Dê uma passada pelo depósito de configurações e depois volte para o seu próprio quarto

Dica 1 (Direção) — clique para revelar

Primeiro, entre em /etc e verifique sua localização. Depois, use o símbolo que leva você direto de volta ao seu próprio quarto.

Dica 2 (Comando) — clique para revelar

Execute cd /etcpwdcd ~pwd, nessa ordem.

Mostrar Resposta
$ cd /etc
$ pwd
/etc
$ cd ~
$ pwd
/home/yamada

cd ~ levou você direto de volta para o seu home.

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

Dica 1 (Direção) — clique para revelar

Existe um comando dedicado para verificar qual arquivo no disco é o corpo real de um comando como ls.

Dica 2 (Comando) — clique para revelar

Execute which ls.

Mostrar Resposta
$ which ls
/usr/bin/ls

O binário fica dentro de /usr/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.