FILE SYSTEM HIERARCHY: Entenda todos os diretórios do Linux

Acredito que uma das principais dificuldades dos novos usuários Linux é entender como funciona a estrutura de diretórios, que por sinal é totalmente diferente de como o Windows organiza suas pastas. Por isto, escrevi o artigo FILE SYSTEM HIERARCHY: Entenda todos os diretórios do Linux, para que você de fato entenda qual a função de cada um deles.

Como funciona a estrutura de diretórios no Linux?

Primeiramente, é interessante entender que o Linux organiza seus diretórios em forma de árvore, enquanto o Windows coloca tudo em somente um lugar. Ficou complicado? Vamos entender um pouco mais afundo.

Quando realizamos a instalação de um programa no Windows, o que acontece exatamente? Geralmente, o processo de instalação vai criar uma pasta dentro do C: com o nome do programa, por exemplo o GIMP, contendo todos os arquivos necessários para o programa funcionar (executáveis, dll’s, pastas, arquivos de configuração, etc…).

Entretanto, se formos olhar como o Linux trataria este processo, será algo bem diferente. O Linux distribui esses arquivos em diretórios separados, como por exemplo, as bibliotecas no diretório /lib, os executáveis em /bin, os arquivos de configuração em /etc e assim por diante.

O que é File System Hierarchy?

O FHS é um acrônimo para File Sytem Hierarchy. Basicamente, ele é um padrão que todas as distribuições Linux devem seguir para organizar os seus diretórios. Quando o Linux estava começando, viu-se diferentes formas para estruturar as pastas dentre as distribuições, o que causava muita confusão quando um usuário mudava de uma para a outra. Então, foi definido este padrão ao qual as distribuições seguem restritamente.

/

O primeiro diretório, conhecido por barra, ou Root File System, é a raiz do nosso sistema. Isso significa que todos os outros diretórios estarão dentro dele (lembra do conceito de árvore?!). Podemos compará-lo ao C: do Windows.

/bin

Um executável do Windows pode ser chamado de binary ou binário no Linux. O /bin é um diretório onde ficam esses binários, todavia, este diretório é totalmente específico para binários que são geralmente utilizados por todos os usuários do sistema, como por exemplo, o comando ls.

/boot

É onde ficam armazenados os arquivos responsáveis pelo boot do sistema operacional, como por exemplo, o Kernel ou o arquivo Initrd. Geralmente, há uma pasta EFI dentro do /boot para quem utiliza a BIOS no modo UEFI.

/dev

O diretório /dev é gerenciado pelo daemon do sistema udev, que cuida da configuração dos dispositivos do sistema, como é o caso de mouses, teclados, discos rígidos, pendrives, etc. Desta forma, cada dispositivo tem uma instância criada dentro deste diretório, como por exemplo /dev/sda que é comumente chamado nosso HD.

/etc

Onde ficam os arquivos de configuração. Então, digamos que você tenha instalado um FTP, DHCP, MySQL ou qualquer outro serviço. Cada um deles vai criar uma pasta dentro do /etc onde você poderá acessar e personalizar eles para trabalhar da forma que achar melhor.

/home

Diretório onde ficam os arquivos dos usuários. Cada usuário do sistema tem uma pasta com seu nome dentro de /home. E, dentro da pasta do usuário, há as pastas de Documentos, Downloads, Desktop, etc.

/lib

Diretório onde ficam as libraries ou bibliotecas, ou seja, as dependências para os binários em /bin e /sbin funcionarem. Lembrando que uma librarie é como se fosse uma dll no Windows.

/media

Este é o diretório de montagem de partições para dispositivos removíveis como USB e CD-ROM.

/mnt

Diretório para montagem de partições temporárias. Por exemplo, vou montar esse sistema só para copiar um arquivo e já vou desmontar. Pode-se usar então o /mnt.

/opt

Este diretório é utilizado para pacotes opcionais externos. Então, digamos que eu baixei um programa source code, compilei esse programa, e depois instalei. Como foi algo por parte do meu usuário, posso instalar em /opt, se assim desejar.

/proc

É um sistema de arquivos virtual onde podemos coletar informações de hardware e sobre o Kernel. Então, por exemplo, posso ver informações do meu processador, memória, parâmetros do Kernel, etc. Além disso, ele guarda informações sobre os processos que estão rodando no momento.

OBS: Não se pode fazer back-up deste diretório, porque é algo que muda a todo momento.

/root

É a mesma coisa que o /home, porém, é somente para o super-usuário (root).

/run

Onde ficam arquivos utilizados por processos do sistema em runtime, principalmente os necessários durante o boot. Esses processos poderiam ser usados no /tmp? Até poderiam, mas o tmpwatch remove tudo que fica parado durante um tempo e causaria problema nos serviços em background, por isso foi criado este diretório.

/sbin

Lembra do diretório /bin? Então, este diretório serve para a mesma coisa, mas com a restrição de armazenar somente os binários para manutenções no sistema operacional, como é o caso do fsck, dumpe2fs, debugfs… Geralmente, este diretório é utilizado quanto entramos no modo de recuperação do Linux.

/srv

Diretório utilizado por serviços como FTP.

/sys

Contém algumas informações bem parecidas com o /proc. Basicamente, são informações do Kernel, dispositivos e drivers.

/tmp

Armazena os arquivos e diretórios temporários do sistema.

/usr

Onde ficam os arquivos de programas específicos para usuários. Se você der uma olhada dentro deste diretório, verá praticamente um outro / dentro dele, isto é, vários diretórios repetidos. Isto porque alguns programas são distribuídos dentro do /usr.

/var

Este é um diretório variável que contém diferentes tipos de dados, onde o mais corriqueiro é o armazenamento de logs e spool de impressão. Um fato interessante é que geralmente em servidores, este diretório é colocado em uma partição separada porque ele aumenta muito rapidamente.

Espero que tenham gostado desta dica!

Não esqueça de nos seguir no Instagram para receber os últimos conteúdos!

Participe dos nossos grupos no Telegram e Facebook!  

Veja também:

Se tiver alguma dúvida ou sugestão de conteúdo, por favor, entre em contato aqui ou comente abaixo!