Explorando o Linux - Diretórios Padrões
Tags: beginners, braziliandevs, linux
Published: 2024-02-28 14:26:59

## Introdução

 O texto abaixo consiste em notas tomadas pelo autor durante o estudo de comandos e conceitos básicos de Linux, grande parte do conteúdo deste artigo foi feito utilizando como apoio o livro **"Começando com o Linux - Comandos, serviços e administração - Autor (Casa do Código)"**. Essa é a parte três de uma série de artigos que será publicado em meu perfil nessa plataforma, aqui abordaremos a estrutura base de diretórios numa distribuição Ubuntu, os padrões que são  seguidos pelas diversas distribuições existentes e o que é armazenado em cada diretório desse que vemos na pasta raiz de nosso sistema.

## Primeiramente, o que é um diretório? 

Diretórios nada mais são que locais onde podemos armazenar arquivos dentro de um sistema, também são conhecidos popularmente como "pastas".

No Linux, os diretórios possuem arquivos que são mantidos seguindo o padrão **FHS (Filesystem Hierarchy Standard)**. No Ubuntu em específico, o padrão é o **LSB (Linux Standard Base)** que por baixo dos panos segue os padrões definidos no FHS.

Essas especificações e definições impostas pelo FHS são de suma importância em todas as distribuições Linux, pois assim, a compatibilidade do sistema é mantida independente da distribuição que esta sendo utilizada pelo usuário.

## FHS, Diretórios padrões e Root

Quando estamos no diretório raiz de uma distribuição Linux, encontramos uma série de diretórios padrões que são definidos pelo FHS. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v1sf7p676qmirhpv8kq3.png)

E é a utilidade de alguns destes diretórios da imagem acima que iremos entender a partir de agora.

- **/bin**: Armazena arquivos binários que servem para execução de comandos primordiais do sistema, dentro desse diretório encontramos por exemplo os arquivos que nos permite utilizar os comandos cd, ls entre outros e obter o resultado que esperamos no terminal.
  Este diretório é publico, o que faz com que todos os usuários do sistema consigam acessa-lo; 
  
- **/boot**: Contém arquivos responsáveis por pela inicialização do sistema;

- **/dev**: Guarda o caminho dos dispositivos ja instalados no sistema. No Linux, todo hardware reconhecido pelo sistema é representado por um arquivo. E é nesta pasta que o arquivos fica armazenado;

- **/etc**: Aqui é armazenado todo tipo de arquivo relacionado a configuração do sistema, como: scripts de inicialização, configurações de usuário, configurações de programas instalados e etc;

- **/lib**: Armazena as bibliotecas e módulos do kernel que são essenciais para que ocorra o
  funcionamento correto do sistema;

- **/media**: É responsável por armazenar os pontos de montagem, exemplo: quando inserimos um pendrive no sistema, será neste diretório que ele ficará disponível temporariamente para utilização;

- **/mnt**: Também é usado para montagem temporária de sistemas de arquivos, isto é,
  um hd ou pen drive. Este diretório pode ser usado da mesma forma que o /media;

- **/opt**: Aqui é onde ficam armazenados os programas que instalamos que não fazem parte da distribuição oficial do Linux;

- **/sbin**: Neste diretório é armazenado os comandos para inicialização, reparação e restauração do sistema. Este é um diretório com comandos essenciais e que apenas o usuário root tem permissão para utilizar;

- **/srv**: Mantém os dados de serviços disponíveis pelo sistema e pode ser acessado por todos os usuários do sistema;

- **/tmp**: Local onde arquivos temporários ficam armazenados até o fim de uma operação, exemplo: arquivos em processo de download, caches e etc;

- **/usr**: Aqui ficam os arquivos não essenciais para o sistema, programas instalados pelo usuário e afins;

- **/var**: Armazena arquivos do sistema com dados variáveis, ou seja, arquivos que
  podem aumentar de tamanho. Exemplo: logs e arquivos de bancos de dados;

## Diretórios opcionais
Dentro do root, normalmente é encontrado também os diretórios **/home** e **/root**. Estes são opcionais e podem existir com outro nome a depender da distribuição Linux que você estiver utilizando, mas em resumo, o */root* é a pasta pessoal do usuário com autoridade máxima dentro do sistema. Ja o */home* é responsável por criar e armazenar os arquivos e diretórios de cada usuário cadastrado no sistema.