O Filesystem Hierarchy Standard (FHS) é a espinha dorsal da organização de arquivos em sistemas Linux. Entender essa estrutura é essencial para administradores, desenvolvedores e usuários avançados. Neste guia, exploraremos cada diretório, suas funções e exemplos do mundo real. Vamos lá!
🌐 Visão Geral do FHS
O FHS define onde os arquivos devem estar localizados, garantindo consistência entre distribuições (Ubuntu, Fedora, Debian, etc.). Isso facilita:
- Manutenção do sistema
- Localização rápida de arquivos
- Compatibilidade entre softwares
📂 Estrutura de Diretórios: Do Raiz aos Detalhes
1. /
(Diretório Raiz)
- Função: Base de todo o sistema de arquivos.
- Exemplo Prático:Saída típica:
# Listar conteúdo do diretório raiz ls /
bin
,etc
,home
,usr
,var
, etc.
2. /bin
(Binários Essenciais do Usuário)
- O que contém: Comandos básicos para todos os usuários, mesmo em modo de recuperação.
- Exemplos de comandos:
ls
,cp
,mv
,rm
,cat
,grep
.
- Curiosidade: Em algumas distros,
/bin
é um link simbólico para/usr/bin
.
3. /etc
(Configurações do Sistema)
- Função: Arquivos de configuração global do sistema e aplicativos.
- Exemplos notáveis:
/etc/apt/sources.list
: Lista de repositórios do APT (Debian/Ubuntu)./etc/ssh/sshd_config
: Configuração do servidor SSH./etc/hosts
: Mapeamento manual de IPs para nomes de domínio.
- Dica: Sempre faça backup deste diretório antes de alterar configurações críticas!
4. /dev
(Dispositivos de Hardware)
- Função: Arquivos que representam dispositivos físicos ou virtuais.
- Exemplos:
- Discos:
/dev/sda
(primeiro disco SATA),/dev/nvme0n1
(SSD NVMe). - Partições:
/dev/sda1
(primeira partição do disco SATA). - Dispositivos Virtuais:
/dev/random
(gerador de números aleatórios).
- Discos:
- Caso de Uso:
# Montar um pendrive em /mnt sudo mount /dev/sdb1 /mnt/usb
5. /home
(Arquivos do Usuário)
- Função: Diretórios pessoais para cada usuário.
- Estrutura típica:
/home/joao/Documentos # Documentos /home/ana/Imagens # Fotos /home/maria/.ssh # Chaves SSH (arquivo oculto)
- Importante: Permissões restritas garantem privacidade entre usuários.
6. /var
(Dados Variáveis)
- Função: Dados que mudam durante a execução do sistema.
- Subdiretórios-chave:
/var/log
: Logs do sistema (ex.:syslog
,auth.log
,nginx/access.log
)./var/www
: Arquivos de sites (comum em servidores Apache)./var/cache
: Cache de aplicativos (ex.: pacotes do APT).
- Caso de Uso:
# Monitorar logs em tempo real tail -f /var/log/syslog
7. /tmp
(Arquivos Temporários)
- Função: Arquivos temporários apagados na reinicialização.
- Exemplo:
# Criar um arquivo temporário echo "Teste" > /tmp/arquivo_temporario.txt
8. /usr
(Recursos do Usuário)
- Função: Contém a maioria dos programas e bibliotecas do sistema.
- Estrutura:
/usr/bin
: Comandos do usuário (ex.:python
,nano
,git
)./usr/lib
: Bibliotecas compartilhadas (ex.:libc.so
)./usr/local
: Softwares instalados manualmente (prioridade sobre o sistema)./usr/share
: Dados independentes de arquitetura (ex.: ícones, fontes).
- Dica: O comando
which
revela onde um programa está instalado:which ls # Geralmente mostra /usr/bin/ls
9. /boot
(Arquivos de Inicialização)
- Função: Arquivos necessários para a inicialização do sistema.
- Conteúdo típico:
vmlinuz
: Kernel do Linux.initrd.img
: Disco RAM inicial para carregar módulos do kernel.grub/
: Configurações do GRUB (gerenciador de boot).
- Atenção: Evite deletar arquivos aqui – pode tornar o sistema não inicializável!
10. /opt
(Software Opcional)
- Função: Programas de terceiros não gerenciados pelo pacote do sistema.
- Exemplos:
/opt/google/chrome/
: Instalação manual do Chrome./opt/jetbrains/idea/
: IDE IntelliJ IDEA.
- Por que usar?: Mantém softwares auto-contidos, evitando conflitos de dependências.
11. /sbin
(Binários de Administração)
- Função: Comandos para administração do sistema (exige
root
). - Exemplos:
fdisk
: Gerenciamento de partições.iptables
: Configuração de firewall.reboot
: Reiniciar o sistema.
- Caso de Uso:
# Listar discos e partições sudo fdisk -l
12. /proc
e /sys
(Interface com o Kernel)
- Função:
/proc
: Arquivos virtuais com informações de processos e hardware em tempo real./sys
: Configurações do kernel e dispositivos.
- Exemplos Úteis:
- CPU:
cat /proc/cpuinfo
(detalhes do processador). - Memória:
cat /proc/meminfo
(uso de RAM). - Dispositivos USB:
lsusb
(usa dados de/sys/bus/usb/
).
- CPU:
13. /mnt
e /media
(Montagem de Discos)
- Diferença:
/mnt
: Para montagem temporária (ex.: discos externos)./media
: Montagem automática de dispositivos removíveis (pendrives, CDs).
- Exemplo:
# Montar um HD externo manualmente sudo mount /dev/sdc1 /mnt/hd_externo
14. /lib
e /lib64
(Bibliotecas Essenciais)
- Função: Bibliotecas compartilhadas para os binários de
/bin
e/sbin
. - Exemplo:
libc.so
: Biblioteca padrão do C, usada por quase todos os programas.
15. /srv
(Dados de Serviços)
- Função: Dados específicos de serviços (ex.: sites, repositórios Git).
- Exemplo:
/srv/http/
: Arquivos de um servidor web./srv/git/
: Repositórios Git remotos.
16. /run
(Dados de Runtime)
- Função: Arquivos temporários de processos em execução (ex.: PIDs, sockets).
- Exemplo:
/run/sshd.pid
: ID do processo do servidor SSH.
🛠️ Casos Práticos de Uso
Cenário 1: Instalando um Software Manualmente
- Passo a Passo:
- Baixe o
.tar.gz
do software. - Extraia em
/opt/nome_do_software
. - Crie um link simbólico em
/usr/local/bin
para facilitar o acesso:sudo ln -s /opt/nome_do_software/bin/app /usr/local/bin/app
- Baixe o
Cenário 2: Solucionando Problemas de Espaço em Disco
- Comandos Úteis:
# Verificar uso em /var/log (logs podem crescer muito) du -sh /var/log/* # Limpar cache do APT sudo apt clean # Limpa /var/cache/apt/archives/
🔍 Por Que Isso Importa?
- Desenvolvimento: Saber onde colocar arquivos de configuração ou bibliotecas.
- Segurança: Entender permissões (ex.:
/etc
geralmente éroot:root
). - Recuperação: Encontrar logs ou restaurar configurações em modo de emergência.
📌 Cheat Sheet Rápido
Diretório | Uso Principal | Exemplo de Conteúdo |
---|---|---|
/etc | Configurações globais | sshd_config , fstab |
/var/log | Logs do sistema | syslog , nginx/access.log |
/usr/local/bin | Softwares instalados manualmente | python3.9 , meu_script |
/dev | Dispositivos | sda , tty , null |
🚀 Conclusão
Dominar o FHS é como ter um mapa do tesouro para navegar no Linux. Seja para configurar um servidor, depurar um problema ou simplesmente entender como tudo funciona, esse conhecimento é indispensável. Que tal explorar seu sistema agora com ls
e cd
?
Referência Oficial: FHS 3.0