Entendendo os diretórios de sistema no Linux
Publicado em 11/01/2009 – 15:20por Carlos Morimoto
O primeiro choque para quem está chegando agora é a estrutura de diretórios do Linux, que não lembra em nada o que temos no Windows. No Windows temos os arquivos do sistema concentrados nas pastas "Windows" e "Arquivos de programas", e você pode criar e organizar suas pastas da forma que quiser. No Linux é basicamente o contrário. O diretório raiz está tomado pelas pastas do sistema e espera-se que você armazene seus arquivos pessoais dentro da sua pasta no diretório "/home". Naturalmente, é possível ajustar as permissões de uma maneira que você possa salvar arquivos em outros locais, mas isso nem sempre é uma boa idéia.
A primeira coisa com que você precisa se habituar é que no Linux os discos e partições não aparecem necessariamente como unidades diferentes, como o C:, D:, E: do Windows. Tudo faz parte de um único diretório, chamado diretório raiz ou simplesmente "/".
Dentro deste diretório temos não apenas todos arquivos e as partições de disco, mas também o CD-ROM, drive de disquete e outros dispositivos, formando a estrutura que você vê no gerenciador de arquivos:

O diretório "/bin" armazena os executáveis de alguns comandos básicos do sistema, como o su, tar, cat, rm, pwd, etc., um conjunto que na maioria das distribuições ocupa de 6 a 8 MB, pouca coisa. O principal motivo de eles ficarem separados dos outros executáveis do sistema (que vão dentro da pasta /usr) é permitir que eles continuarem acessíveis desde o início do boot, mesmo que você resolva armazená-la em um diretório separado.
Ele é complementado pelo diretório "/sbin", que tem a mesma função básica, mas se diferencia por armazenar aplicativos que podem ser usados apenas pelo root, como, por exemplo, o "adduser", que permite criar novos usuários.
A maior parte dos aplicativos e outros componentes ficam instalados dentro do diretório /usr (de "Unix System Resources", ou recursos de sistema Unix). Este é de longe o diretório com mais arquivos em qualquer distribuição Linux, pois é aqui que ficam os executáveis e bibliotecas de todos os principais programas instalados:

A pasta "/usr/bin" (bin de binário), por exemplo, armazena cerca de 2.000 programas e atalhos para programas em uma instalação típica do sistema. Como os executáveis de quase todos os programas instalados são armazenados nela, o número só faz crescer conforme você instala novos pacotes.
Outro diretório com um enorme volume de arquivos é o "/usr/lib", onde ficam armazenadas bibliotecas usadas pelos programas. A função destas bibliotecas lembra um pouco a dos arquivos .dll no Windows. As bibliotecas com extensão ".a" são bibliotecas estáticas, que fazem parte de um programa específico, enquanto as terminadas em ".so.versão" (xxx.so.1, yyy.so.3, etc.) são bibliotecas compartilhadas, usadas por vários programas. Elas são gerenciadas de maneira automática pelo gerenciador de pacotes; quando uma biblioteca é atualizada, por exemplo, são deixados links apontando para a nova versão, o que permite que os aplicativos que utilizavam o arquivos antigo continuem funcionando.
Outras pastas dignas de nota são a "/usr/local", que é reservada a programas e scripts que você instalar manualmente; a "/usr/sbin", que é reservada a executáveis que podem ser usados apenas pelo root (similar à pasta "/sbin") e a "/usr/src", que é usada para armazenar o código fonte de programas e também o código fonte do kernel (caso disponível). A pasta "/usr/X11R6" era originalmente destinada a armazenar os componentes do X, responsável pelo ambiente gráfico, mas ela está caindo em desuso.
Subindo de novo, a pasta "/boot" armazena o kernel e alguns arquivos usados na fase inicial do boot. Como pode imaginar, ele é o primeiro componente carregado pelo gerenciador de boot durante a inicialização do sistema.
Logo a seguir temos o diretório "/dev", que é de longe o exemplo mais exótico de estrutura de diretório no Linux. Todos os arquivos contidos aqui, como, por exemplo, "/dev/sda", "/dev/dsp", "/dev/modem", etc., não são arquivos armazenados no HD, mas sim ponteiros para dispositivos de hardware. Por exemplo, o "arquivo" "/dev/mouse" contém as informações enviadas pelo mouse, enquanto o "/dev/dsp" permite acessar a placa de som. Esta organização visa facilitar a vida dos programadores, que podem acessar o hardware do micro simplesmente fazendo seus programas lerem e gravarem em arquivos, deixando que o kernel se encarregue da parte complicada.
Ele é complementado pelo diretório "/proc", que não armazena arquivos, mas sim informações sobre o hardware e sobre a configuração do sistema. Estas informações são usadas por utilitários de detecção e configuração do sistema, mas podem ser úteis também quando você quer checar alguma configuração manualmente. O comando "cat /proc/net/dev" mostra informações sobre as interfaces de rede, o "cat /proc/cpuinfo" mostra informações sobre o processador e assim por diante.
O diretório "/etc" concentra os arquivos de configuração do sistema, substituindo de certa forma o registro do Windows. A vantagem é que enquanto o registro é uma espécie de caixa preta, os scripts e arquivos de configuração do diretório "/etc" são desenvolvidos justamente para facilitar a edição manual. É verdade que na maioria dos casos isto não é necessário, graças aos vários utilitários de configuração disponíveis, mas a possibilidade continua disponível.
Os arquivos recebem o nome dos programas seguidos geralmente da extensão .conf. Por exemplo, o arquivo de configuração do servidor DHCP (que pode ser configurado para atribuir endereços IP aos outros micros da rede) é o "/etc/dhcpd.conf", enquanto o do servidor FTP é o "/etc/proftpd.conf". Claro, ao contrário do registro do Windows, os arquivos do "/etc" não se corrompem sozinhos e é fácil fazer cópias de segurança caso necessário. Falarei mais sobre ele no capítulo sobre o Slackware, onde o principal objetivo é justamente mostrar como configurar o sistema manualmente.
Concluindo, o diretório "/mnt" (de "mount") recebe este nome justamente por servir de ponto de montagem para o drive óptico ("/mnt/cdrom" ou "/mnt/dvd") e outros dispositivos de armazenamento. Na maioria das distribuições atuais ele é substituído pelo diretório "/media", que tem a mesma função. Ao plugar um pendrive no Ubuntu, por exemplo, ele é montado pelo sistema na pasta "/media/disk", ao plugar um cartão de memória ele é visto como "/media/card" e assim por diante.
Na verdade, o uso do diretório "/media" ou "/mnt" é apenas uma convenção. Você pode perfeitamente montar o seu pendrive dentro da pasta "/home/fulano/pendrive", por exemplo, desde que faça a montagem de forma manual. Os diretórios padrão de montagem das partições são configuráveis através do "/etc/fstab", que é um dos arquivos básicos de configuração do sistema.



25 respostas para “Entendendo os diretórios de sistema no Linux”
Excelente! Excelente!
Excelente! Excelente!
(2)
Aguardo mais artigos sobre o Linux a fundo…
muito bom o artigo!
Mas ainda acho a pasta mais exótica a pasta /proc … rs
Muito bom!
Explicou muito bem… vlw!
Salve salve Kurumin… Rever isso me deu tremendas saudades da primeira vez que rodei o Kurumin, acho que em 2004… Única distro que completava o boot sem precisar de ajustes na minha arcaica Trident 968X com 1 MB de RAM… :P (saudades do Kurumin porque o texto é bem familiar)
Atualizei com um tópico sobre o /proc, atendendo ao Bruno Garcia. :)
legal poder relembrar do que já lemos e depois a gente nem sequer dava conta, gostei e também tenho saudade desse tempo de curiosidade e surpresas…
e o que eu acho também uma pasta que dá mais confusão é a /dev e a /mnt
pois eu acabo achando que vou montar o dispositivo quando quero acessá-lo! hehehe…! :-))
um abraço a todos, valeu Morimoto!
Excelente post. Bem explicativo e de grande utilizade para quem está começando como eu :)
Obrigado de verdade
Boa dica!!
Abraços!! ;)
excelente post, muito esclarecedor para iniciantes, como eu.
Quero agradecer à equipe do Guia do Hardware por estarem postando estas verdadeiras aulas sobre o Linux. Pra quem está começando, estas informações são um tesouro. Muito Obrigado.
Ótimo!
Como sempre a equipe esta de parabéns!
Traz conteúdo técnico sobre Linux de uma forma simples e fácil!
Obrigado por ajudar a comunidade!
Parabéns! O Brasil agradece a você!
Assim como as grandes personalidades, que ao longo do tempo surgiram, espero que alguém lembre-se de o colocar nos livros de história e ciências e informática, assim como também espero que deixe descentes do seu conhecimento.
Excelente!
Já havia lido antes alguns textos explicando o sistema de arquivos do Linux, mas esse texto me esclareceu algumas coisas.
Arigatô!
Artigo interessante, detalha bem os diretórios, parabéns.
A paz de Cristo, irmão!
Grande Morimoto! Não sei, ainda, qual sua formação (não busquei a info), mas isto nem é tão importante! O que importa é q vc está fazendo a diferença, trazendo conhecimento e informações de qualidade, sempre muitíssimo úteis e com uma linguagem simples, clara e objetiva, fácil de entender e agradável de ler! Continue com o ótimo trabalho! Não sei se algum dos livros q tenho são seus (perdoe-me a ignorância) mas sei q, em breve precisarei me aprofundar em alguns assuntos e darei prioridade às suas obras, seja através da aquisição de seus livros, apostilas, cursos (se forem presenciais), palestras, etc.
Se eu tivesse conseguido uma explicação clara e objetiva como esta, das pastas do linux, bem provável q eu tivesse investido mais tempo na aprendizagem deste SO, q cresce diariamente. Como ainda não é tarde, agradeço por mais estas infos e vou, sim, a partir de hoje, retomar a busca pelo conhecimento e dedicar pelo menos alguns minutos diários para aprender e começar a dar suporte tb neste SO q várias vezes indiquei, mas acabava passando o atendimento a outras pessoas. Obrigado, d novo!
Tenha um ano excelente, abençoado, em nome de Jesus, e nada de crise! Lembre-se: 'Buscai primeiro o Reino de Deus e a sua Justiça, e tudo mais vos será acrescentado.'.
Ea "/sys"? Até hoje não achei referência nenhuma, parece que ninguém sabe pra que serve.
Muito bom, obrigado. Os aprendizes daqui, agradecem!
Ótimo ver que cada vez mais o Linux está se preocupando com os usuários "comuns" e se tornando mais simples graças a comunidade.
Ainda há de chegar o dia em que usá-lo não será algo visto como coisa de CDF em informática.
Boa noite Morimoto,
Em uma futura atualização desse assunto, você poderia incluir também alguma coisa sobres os novos diretórios "srv, sys" e também do antigo mas ainda presente "opt"…?
Obrigado por todo trabalho feito até o momento.
Realmente você já virou uma referência em Linux pela grande ajuda que presta a todos.
abraços
Muito bom, excelente! Parabéns pela explicação sintética e precisa!
É Verdadeiramente falta alguns diretórios que deveriam estar aí, mas quem sabe em uma próxima, mas o
/srv é: Diretório destinado à centralização de serviços como em um servidor de arquivos ou servidor de
páginas web por exemplo
.
/selinux:("Security-Enhanced Linux") é uma implementação de uma flexível e refinada arquitetura MAC ("Mandatory Access Control"). SELinux provê uma política de segurança sobre todos os processos e objetos do sistema baseando suas decisões em etiquetas contendo uma variedade de informações relevantes à segurança. A lógica da política de tomada de decisões é encapsulada dentro de um simples componente conhecido como servidor de segurança ("security server") com uma interface geral de segurança
/opt: Diretório destinado à instalação de binários pré-compilados e programas proprietários
Parabéns kara.. Muito bom! Justamente o que eu procurava, me esclareceu muito sobre os diretórios do Linux. Obrigado!!!
Eu gostei muito do tópico e coloco ele como link sempre que alguém tem dúvida a respeito do assunto, mas eu senti falta de uma explicação à /var.
ahh…por favor ….dêem respostas mais curtas.
mas …ta muito bom…
parabens