Este tutorial explica a estrutura de diretórios do Linux. Você aprenderá a hierarquia do sistema de arquivos do Linux, juntamente com o propósito dos vários diretórios em um sistema Linux.

Estrutura de diretórios

O Linux é baseado no UNIX e, portanto, herda a hierarquia do sistema de arquivos do UNIX. Você encontrará uma estrutura de diretórios semelhante em sistemas operacionais semelhantes ao UNIX, como BSD e macOS.

/ – o diretório raiz

O diretório raiz é o diretório de nível superior em uma hierarquia de sistema de arquivos do Linux. Ele serve como o ponto de partida para toda a estrutura de diretórios do sistema. Todas as outras pastas, diretórios e ficheiros estão contidos ou são acessíveis a partir deste diretório raiz. No Linux, o diretório raiz é representado pelo caractere /.

Neste diretório, você encontrará todos os outros diretórios e ficheiros do sistema, cada um com o seu propósito específico na organização e funcionamento do sistema operacional Linux. É importante notar que, no Linux, até mesmo dispositivos físicos, como discos rígidos e unidades USB, são representados como ficheiros e são acessíveis a partir do diretório raiz.

Estrutura do diretório /

/dev – Ficheiros de Dispositivos

O diretório /dev contém ficheiros especiais de dispositivos que representam hardware e periféricos do sistema. No Linux e em sistemas Unix-like, tudo é tratado como um ficheiro, e os dispositivos físicos, como discos rígidos, unidades de CD/DVD, impressoras, interfaces de rede e muito mais, são representados por ficheiros especiais neste diretório.

Existem dois tipos principais de ficheiros de dispositivos em /dev:

  1. Ficheiros de Caráter (character devices): Representam dispositivos que são lidos ou escritos de forma sequencial, como teclados, mouses e terminais.
  2. Ficheiros de Bloco (block devices): Representam dispositivos que são lidos ou escritos em blocos, como discos rígidos e unidades USB.

Por exemplo, o seu disco rígido pode ser representado por um ficheiro de bloco em /dev/sda, enquanto o teclado pode ser representado por um ficheiro de caráter em /dev/input/event0.

/etc – Ficheiros de Configuração

O diretório /etc é um diretório fundamental no sistema Linux, onde são armazenados os ficheiros de configuração do sistema e de programas instalados. Esses ficheiros contêm configurações e definições específicas do sistema, bem como opções de configuração para software instalado no sistema.

Aqui estão alguns exemplos de ficheiros e subdiretórios comuns encontrados em /etc:

  1. /etc/passwd: Contém informações sobre contas de utilizador, como nomes de utilizador, identificadores de utilizador (UIDs) e diretórios inicializados.
  2. /etc/group: Armazena informações sobre grupos de utilizadores, incluindo nomes de grupo e listas de utilizadores que pertencem a cada grupo.
  3. /etc/hostname: Define o nome de host do sistema.
  4. /etc/hosts: Contém mapeamentos de nomes de host para endereços IP locais.
  5. /etc/network/: Contém configurações de rede, como interfaces de rede e configurações de DHCP.
  6. /etc/apache2/: Diretório de configuração do servidor web Apache.
  7. /etc/mysql/: Diretório de configuração do servidor de banco de dados MySQL.
  8. /etc/apt/: Diretório de configuração do sistema de gestão de pacotes APT (Advanced Package Tool) usado em distribuições Debian.

/usr – Binários do Utilizador e Dados de Programas

O diretório /usr é um dos diretórios mais importantes em sistemas Linux e contém os dados e binários de programas instalados no sistema que são usados por todos os utilizadores. Este diretório é subdividido em várias subpastas, cada uma com um propósito específico.

Aqui estão algumas das subpastas comuns encontradas em /usr:

  1. /usr/bin: Contém os executáveis (binários) de programas que estão disponíveis para todos os utilizadores do sistema.
  2. /usr/sbin: Semelhante a /usr/bin, mas contém executáveis que geralmente são usados apenas por administradores do sistema.
  3. /usr/lib e /usr/lib64: Bibliotecas compartilhadas (shared libraries) necessárias para a execução de programas instalados no sistema.
  4. /usr/include: Ficheiros de cabeçalho (header files) usados para desenvolvimento de software.
  5. /usr/share: Recursos compartilhados, como dados de programas, documentação e ícones.
  6. /usr/local: Um diretório onde os administradores de sistema podem instalar software adicional que não faz parte da distribuição padrão do sistema operacional.
  7. /usr/games: Contém jogos e programas relacionados a jogos.
  8. /usr/share/doc: Documentação de programas instalados no sistema.
  9. /usr/share/man: Páginas do manual (man pages) para programas e comandos.

/home – Dados Pessoais dos Utilizadores

O diretório /home é onde os utilizadores do sistema Linux armazenam os seus dados pessoais e ficheiros pessoais. Cada utilizador normalmente tem um subdiretório dentro de /home, com o nome de utilizador correspondente, onde eles podem criar e armazenar os seus ficheiros, documentos, configurações pessoais e outros dados relacionados com as suas contas.

Por exemplo, se houver um utilizador chamado “joao”, o seu diretório pessoal estará localizado em /home/joao. Dentro deste diretório, o utilizador “joao” pode criar subdiretórios, armazenar documentos, música, imagens e assim por diante.

O diretório /home é importante porque mantém os dados dos utilizadores isolados uns dos outros, garantindo a privacidade e a segurança dos ficheiros pessoais de cada utilizador.

/lib – Bibliotecas Compartilhadas

O diretório /lib (ou /lib64 em sistemas de 64 bits) contém as bibliotecas compartilhadas (shared libraries) essenciais para o funcionamento do sistema Linux.

Alguns exemplos de bibliotecas comuns que você pode encontrar em /lib incluem:

  • libc.so: A biblioteca C padrão, que fornece funções essenciais para a execução de programas C.
  • libm.so: Biblioteca matemática padrão, que contém funções matemáticas.
  • libpthread.so: Biblioteca de threads, que fornece suporte para programação concorrente.
  • libcrypto.so e libssl.so: Bibliotecas criptográficas usadas para criptografia e segurança em redes.
  • libudev.so: Biblioteca usada para interação com dispositivos no sistema.

/sbin – Binários do Sistema

O diretório /sbin contém binários essenciais do sistema que são necessários para a inicialização, reparação e manutenção do sistema Linux. Esses binários são executados apenas pelo superutilizador (root) ou por administradores do sistema, pois estão relacionados com tarefas críticas de administração e configuração do sistema.

Exemplos de binários comuns encontrados em /sbin incluem:

  • /sbin/init: O primeiro processo a ser executado durante a inicialização do sistema. É o pai de todos os processos no sistema.
  • /sbin/fsck: Utilitário para verificar e reparar sistemas de ficheiros.
  • /sbin/ifconfig: Utilizado para configurar e exibir informações sobre interfaces de rede.
  • /sbin/reboot e /sbin/shutdown: Utilizados para reiniciar ou desligar o sistema.
  • /sbin/fdisk e /sbin/parted: Utilizados para particionar discos rígidos.

/opt – Software Opcional

O diretório /opt é utilizado para armazenar software opcional ou adicional que não faz parte da instalação padrão do sistema operacional Linux. Este diretório é frequentemente usado para instalar programas que não são fornecidos pela distribuição Linux específica, mas que podem ser úteis para os utilizadores ou administradores de sistema.

Por exemplo, se um utilizador ou administrador decidir instalar um software opcional chamado “MyApp”, o software poderá ser instalado em /opt/MyApp. Dentro deste diretório, você encontrará todos os ficheiros e pastas relacionados com o software “MyApp”, incluindo executáveis, bibliotecas e dados.

O uso do diretório /opt ajuda a manter separado o software opcional do software do sistema principal, facilitando a gestão e a remoção desses programas.

/tmp – Ficheiros Temporários

O diretório /tmp é utilizado para armazenar ficheiros temporários pelo sistema e pelos programas em execução no sistema Linux. Este diretório é limpo automaticamente durante o processo de arranque ou em intervalos regulares para garantir que não se acumulem ficheiros temporários não utilizados que possam ocupar espaço em disco.

Devido à natureza temporária dos ficheiros em /tmp, este diretório é um local onde qualquer utilizador do sistema pode criar, ler e escrever ficheiros temporários. No entanto, a permissão de execução não é concedida por padrão, para evitar a execução acidental de ficheiros nesse diretório.

/var – Ficheiros de Dados Variáveis

O diretório /var é usado para armazenar ficheiros de dados variáveis, ou seja, dados que são propensos a mudar durante o funcionamento normal do sistema.

Aqui estão alguns dos subdiretórios comuns encontrados em /var:

  • /var/log: Armazena ficheiros de registo (logs) de sistemas e serviços. Os ficheiros de registo registam eventos e atividades do sistema, o que é útil para diagnóstico e resolução de problemas.
  • /var/spool: Contém diretórios de spool utilizados para armazenar dados em espera para serem processados, como ficheiros de impressão na /var/spool/cups ou mensagens de email na /var/spool/mail.
  • /var/cache: Armazena ficheiros temporários em cache que podem ser regenerados automaticamente pelos programas quando necessário. Isso ajuda a melhorar o desempenho do sistema, evitando a necessidade de recalcular ou reconstruir informações frequentemente.
  • /var/lib: Contém dados variáveis usados por programas e serviços, como bases de dados, informações de estado e configurações específicas do sistema.
  • /var/www: É onde os ficheiros do servidor web são frequentemente armazenados. Esta pasta é usada para armazenar os ficheiros de um website.
  • /var/run: Armazena ficheiros de PID (Process ID) temporários que contêm os IDs dos processos em execução no sistema.

O facto de os ficheiros em /var não serem limpos automaticamente torna-os uma fonte valiosa de informações históricas sobre o sistema. Os administradores de sistema podem analisar esses ficheiros para entender o comportamento passado do sistema e tomar medidas apropriadas com base nessa análise.

/bin – binários

O diretório /bin é um dos diretórios essenciais do sistema e contém executáveis (ficheiros binários) fundamentais necessários para o funcionamento do sistema Linux, especialmente durante o processo de inicialização. Esses executáveis incluem comandos e utilitários essenciais que são necessários para a manutenção e reparação do sistema, mesmo se outros sistemas de ficheiros não estiverem montados.

Exemplos de comandos e utilitários armazenados no diretório /bin incluem ls (listar ficheiros), cp (copiar), mv (mover), rm (remover), mkdir (criar diretório) e muitos outros que são necessários para as tarefas diárias de administração do sistema.

/boot – Ficheiros de Arranque

O diretório /boot contém ficheiros essenciais relacionados com o processo de arranque (boot) do sistema Linux. Estes ficheiros são necessários para carregar o kernel do sistema operacional e outros componentes críticos durante o processo de inicialização do sistema.

Alguns dos ficheiros e subdiretórios comuns encontrados em /boot incluem:

  • vmlinuz: Este é o kernel do sistema operacional Linux. É o núcleo do sistema que controla o hardware e permite que o sistema operacional funcione.
  • initrd ou initramfs: Arquivos de sistema de arquivos raiz inicial (initial ramdisk) que são usados durante o processo de inicialização antes que o kernel principal seja carregado. Eles contêm drivers e ferramentas necessários para montar o sistema de ficheiros raiz real.
  • grub/ ou syslinux/: Subdiretórios que podem conter configurações e ficheiros relacionados com o carregador de arranque (boot loader), como o GRUB ou o SYSLINUX.
  • config-*: Ficheiros de configuração específicos do kernel, que podem ser necessários para ajustar o comportamento do kernel durante o arranque.
  • System.map-*: Mapeamentos de símbolos do kernel, que são úteis para depuração e análise de pânico do kernel.

/proc – Ficheiros de Processos e Kernel

O diretório /proc é um diretório especial no sistema de arquivos do Linux que não contém ficheiros reais no disco, mas em vez disso, fornece uma interface virtual para acessar informações sobre processos em execução e configuração do kernel. Ele é usado para consultar e interagir com o sistema operacional e seus processos em tempo real.

Dentro do diretório /proc, você encontrará uma série de subdiretórios e ficheiros, cada um representando informações específicas sobre processos, hardware e configurações do kernel. Alguns exemplos incluem:

  • /proc/cpuinfo: Fornece informações sobre a CPU do sistema, incluindo modelo, velocidade e recursos suportados.
  • /proc/meminfo: Contém informações sobre o uso da memória no sistema, incluindo a quantidade de memória física e alocada.
  • /proc/version: Exibe informações sobre a versão do kernel em execução no sistema.
  • /proc/PID/: Para cada processo em execução, há um diretório com o seu ID (PID) que contém informações detalhadas sobre o processo, como status, recursos, manipuladores de ficheiros e muito mais.
  • /proc/sys/: Contém configurações e parâmetros do kernel que podem ser lidos ou modificados para ajustar o comportamento do sistema, como configurações de rede e segurança.

O diretório /proc é uma interface poderosa para monitorar e configurar o sistema em tempo real. Os comandos e ferramentas do Linux frequentemente consultam o /proc para obter informações sobre o estado do sistema, e os administradores de sistema podem usá-lo para ajustar configurações do kernel e diagnosticar problemas em tempo real. No entanto, é importante observar que os ficheiros e diretórios em /proc são virtuais e não devem ser editados manualmente, a menos que você saiba exatamente o que está fazendo, pois isso pode afetar negativamente o funcionamento do sistema.

/root – O Diretório Pessoal do Superutilizador

O diretório /root é o diretório pessoal do superutilizador (root) no sistema Linux. Ao contrário dos diretórios pessoais dos utilizadores regulares, que são armazenados em /home, o superutilizador tem o seu próprio diretório pessoal em /root.

Dentro do diretório /root, o superutilizador pode armazenar os seus próprios ficheiros de configuração, documentos e outros dados pessoais. Este diretório é usado pelo superutilizador para executar tarefas administrativas e manter o sistema. É importante notar que o superutilizador tem permissões completas sobre todo o sistema e, portanto, o diretório /root é um local seguro para armazenar ficheiros e dados sensíveis.

A pasta /root é exclusiva do superutilizador e não é usada por utilizadores regulares. O acesso ao diretório /root é restrito aos administradores do sistema e ao próprio superutilizador. É importante que o superutilizador mantenha o conteúdo deste diretório seguro e não compartilhe informações confidenciais dentro dele.

/media – Ponto de Montagem para Dispositivos Removíveis

O diretório /media é utilizado como ponto de montagem temporário para dispositivos de média removível, como unidades USB, discos rígidos externos, CDs, DVDs e cartões de memória. Quando um dispositivo de média removível é conectado ao sistema Linux, ele é montado automaticamente em um subdiretório dentro de /media.

/mnt – Diretório de Montagem

O diretório /mnt é utilizado como um ponto de montagem genérico para montar sistemas de ficheiros adicionais, dispositivos ou partições no sistema Linux. É um local comum para montar temporariamente sistemas de ficheiros externos ou unidades de armazenamento.

É importante mencionar que o diretório /mnt é usado para montagens manuais temporárias e não deve ser usado para montar sistemas de ficheiros permanentemente. Para montar dispositivos ou sistemas de ficheiros permanentemente, é preferível usar o diretório /etc/fstab para configurar montagens automáticas durante o arranque do sistema.

/srv – Dados de Serviços

O diretório /srv é usado para armazenar dados relacionados com serviços ou sistemas de servidores específicos no sistema Linux. Este diretório é frequentemente utilizado por administradores de sistemas para organizar e manter dados que são servidos por diferentes serviços, como servidores web, FTP, e outros.

Por exemplo:

  • /srv/www: Este diretório pode ser usado para armazenar dados e ficheiros relacionados com um servidor web (por exemplo, páginas web, scripts, imagens).
  • /srv/ftp: Pode ser utilizado para armazenar dados relacionados com um servidor FTP (por exemplo, ficheiros transferidos, diretórios de utilizadores).
  • /srv/database: Pode conter dados de bases de dados utilizados por sistemas de gestão de bases de dados (DBMS) como o MySQL ou o PostgreSQL.
  • /srv/mail: Pode ser usado para armazenar caixas de correio de um servidor de email.