Hierarquia de Diretórios no Linux [Guia Básico]A necessidade de guardar informações em objetos que pudessem ser acessados posteriormente de uma forma organizada vem de longe nos sistemas operacionais. Para isso foram criados os sistemas de arquivos. Cada sistema de arquivo mantém uma hierarquia de diretórios que define sua organização e utilidade, e no Linux não é diferente.Basicamente no Linux tudo é um arquivo, que dependendo do seu tipo, pode se tornar um arquivo comum, um diretório, um link, um socket, um condutor, um descritor de dispositivos, etc. Show
Nos sistemas de arquivos de uma forma geral, os objetos são organizados de uma forma hierárquica e cada objeto possui uma identificação única dentro de uma tabela. Como exemplo, vejamos o sistema operacional Windows da Microsoft: ele organiza seus arquivos em uma partição nomeada como drive “C:\”, e nela temos o diretório Windows, que contém o sistema operacional; o diretório “Arquivos de Programas”, que contém a maioria dos produtos instalados, e assim por diante. Os arquivos ficam divididos em diretórios e subdiretórios diferentes por uma questão de afinidade e organização. Da mesma maneira temos uma organização no Linux.
A identificação dos objetos de um sistema de arquivo no Linux é conhecida como inode. Ele carrega as informações de onde o objeto está localizado no disco, informações de segurança, data e hora de criação e última modificação dentre outras. Quando criamos um sistema de arquivos no Linux, cada dispositivo tem um número finito de inodes que será diretamente proporcional ao número de arquivos que este dispositivo poderá acomodar. Basicamente no Linux tudo é um arquivo, que dependendo do seu tipo, pode se tornar um arquivo comum, um diretório, um link, um socket, um condutor, um descritor de dispositivos, etc. Comparando com o Windows, a organização dos diretórios no Linux é um pouco mais complexa. O sistema de arquivos no Linux é semelhante a uma árvore de cabeça para baixo. No topo da hierarquia do Linux existe um diretório raiz nomeado simplesmente como root e identificado como o sinal “/”. Não confunda diretório raiz (root) com o superusuário root. A estrutura do sistema de arquivos do Linux é definida por um padrão de mercado chamado Filesystem Hierarchy Standard ou FHS, criado pela comunidade Linux em 1994 e mantida pela Linux Foundation. Atualmente a FHS está na versão 3.0. As distribuições não são obrigadas a seguir este padrão, mas elas entendem a importância da localização dos arquivos e diretórios padronizados. Toda a estrutura de diretórios do sistema é criada abaixo do root: /Diretório raiz do sistema de arquivos; /binContêm os comandos que podem ser utilizados pelos usuários e pelo administrador do sistema. São requeridos no modo monousuário ou de manutenção (single-user mode) e também podem conter comandos que são utilizados indiretamente por alguns scripts. Nele ficam os arquivos executáveis, tais como: cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, hostname, kill, ln, more, mount, mv, ps, pwd, rm, rmdir, sed, su, umount e uname; /bootArquivos estáticos necessários à carga do sistema. É onde fica localizada a imagem do Kernel, initramfs e alguns arquivos do Grub. Este diretório contém tudo que é necessário para carregar o sistema, exceto os arquivos de configuração e o gerenciador de boot. O /boot inclui o setor master de carga do sistema (master boot sectors) e arquivos de mapa de setor. /devAbstração do Kernel onde ficam os arquivos para acesso dos dispositivos do sistema, como discos, cd-roms, pendrives, portas seriais, terminais, etc. Os arquivos são descritores que facilitam o acesso aos dispositivos. Este diretório é um pseudo-filesystem, e não existe no disco. Seu conteúdo, por exemplo, tem descritores de dispositivos como /dev/sda, /dev/cdrom, etc. /etcArquivos necessários à configuração do sistema. São necessários para a carga do sistema operacional. Ele possui arquivos importantes tais como: fstab, exports, passwd, shadow, group, hosts, hosts.allow, hosts.deny, inittab, ld.so.conf, mtab, profile, services, etc. Nele também residem os arquivos de configuração das interfaces de rede. Tipicamente /etc possui dois subdiretórios:
/homeGeralmente é neste diretório onde ficam os diretórios home dos usuários. Nestes diretórios localizam-se scripts de carga de perfil e do shell bash de cada usuário. /libArquivos de bibliotecas essenciais ao sistema, utilizadas pelos programas em /bin e módulos do Kernel. É comum existir um diretório /lib[arquitetura]. Nos processadores de 64 bits, existe o diretório /lib64. Nos processadores de 32 bits, deve existir um diretório /lib32. /mntDiretório vazio utilizado como ponto de montagem de dispositivos na máquina. Usado pelo administrador para montar discos. /mediaDiretório vazio utilizado como ponto de montagem de dispositivos na máquina, tais como cdrom, dvd, pendrives, etc. /procInformações do Kernel e dos processos. É um pseudo-filesystem e não existe realmente no disco. Neste diretório ficam as abstrações de descritores de tudo quanto há no Kernel do sistema. É possível não só ler os dados, bem como fazer alterações no comportamento do Kernel alterando o conteúdo de arquivos em /proc. Fazendo uma abstração do Windows, este diretório seria o “registro” do sistema. /optNeste diretório ficam instalados os aplicativos que não são da distribuição do Linux, como por exemplo, banco de dados de terceiros, software de vetores Cad, etc. /rootDiretório home do superusuário root. Dependendo da distribuição pode estar presente ou não; /runEste diretório contém informações do sistema desde a última carga. Os arquivos deste diretório são apagados ou zerados no início do processo de boot. Arquivos como aqueles que indicam o PID do processo em execução devem residir neste diretório. /sbinArquivos essenciais ao sistema, como aplicativos e utilitários para a administração da máquina. Normalmente só o superusuário tem acesso a estes arquivos, tais como: fdiskm fsck, ifconfig, init, mkfs, mkswap, route, reboot, swapon e swapoff. /tmpDiretório de arquivos temporários. Em algumas distribuições este diretório é montado em memória. Recomenda-se que seu conteúdo seja apagado de tempos em tempos ou a cada reboot. /usrArquivos pertencentes aos usuários e a segunda maior hierarquia de diretórios no Linux. Seu conteúdo pode ser distribuído via rede para diversos sistemas Linux da mesma distribuição sem problema algum. Ele tem alguns subdiretórios a saber:
/varDiretório onde são guardadas informações variáveis sobre o sistema, como arquivos de log, arquivos de e-mail etc. Possui subdiretórios importantes, a saber:
Arquivos e Diretórios EscondidosPara esconder os arquivos e diretórios no Linux, basta renomear o seu nome, iniciando-o com um ponto “.”. Por exemplo, ao listar um conteúdo de uma pasta, o diretório “musicas” está presente: $ ls Se renomearmos o diretório musicas, iniciando com um “.”, ele não irá aparecer mais na lista de arquivos e diretórios: $ mv musicas .musicas O comando “mv” serve para mover, ou renomear arquivos e diretórios. Ao listar a pasta, o diretório “musicas” não irá aparecer: $ ls Os arquivos e diretórios ocultos somente irão aparecer na listagem com a opção “-a” do comando ls: $ ls -a Diretório Corrente e Diretório AnteriorTodo diretório no Linux possui dois arquivos especiais, ocultos. O primeiro arquivo é o ponto “.“ Ele serve para referenciar o diretório corrente. O segundo arquivo é o ponto-ponto “..“ Ele serve para referenciar o diretório anterior. Desta forma, estes dois arquivos especiais servem para se fazer referência relativa aos arquivos e diretórios do sistema. Chama-se relativa, porque a referência depende do ponto de partida, do diretório corrente. Em contraponto, uma referência absoluta, ou caminho completo, é a referência de um arquivo ou diretório, tomando como base o diretório raiz “/”. Para se saber o diretório corrente, deve-se usar o comando “pwd”. Observe o diretório corrente: $ pwd Se quisermos listar o conteúdo do diretório, pode-se usar o comando “ls”: $ ls Para listar o conteúdo de algum arquivo dentro do diretório public_html, pode-se usar a referência relativa, à partir do diretório corrente, usando o arquivo “.”: $ cat ./public_html/arquivo Este é um arquivo texto de exemplo Ou usar o caminho absoluto: $ cat /home/carlacruz/public_html/arquivo Este é um arquivo texto de exemplo Se quisermos listar o conteúdo do diretório /home, pode-se da mesma forma usar o arquivo especial “..” que faz referência ao diretório anterior: $ ls ../ O arquivo especial “..” pode ser usado também para navegar nos diretórios, com o comando “cd”: $ cd .. $ cd .. Observe que entre o comando “cd” e o arquivo especial “..” é necessário um espaço, para separar o comando “cd” e o arquivo especial “..”. Diretório HomeCada usuário no Linux possui um diretório especial único, chamado de diretório HOME. É no seu diretório HOME que cada usuário pode criar, apagar, mover e renomear arquivos e pastas à vontade. Nenhum outro usuário comum do sistema pode ter acesso ao diretório home de outro usuário. Somente o super-usuário root pode ter acesso a qualquer diretório no sistema. É no diretório home que também residem arquivos especiais de configuração do perfil e do ambiente de trabalho dos usuários, bem como suas chaves privadas de acesso a outros hosts e de criptografia. O padrão da hierarquia de arquivos do Linux determina que o diretório HOME dos usuários sejam criados dentro do diretório /home. É no arquivo de contas de usuário /etc/passwd que é definido o caminho do diretório home dos usuários: $ cat /etc/passwd | grep carla A variável $HOME mantém o caminho do diretório HOME do usuário logado no sistema: $ echo $HOME O Linux mantém um atalho para o diretório HOME do usuário conectado através do símbolo til “~”: $ cd ~ Desta forma, pode-se usar o caminho do “~” para fazer referência aos arquivos e diretórios do diretório HOME do usuário conectado: $ cat ~/public_html/arquivo Este é um arquivo texto de exemplo. ConclusãoSaber a hierarquia de diretórios no Linux é algo essencial para os administradores de Linux/Unix. Explore cada um de seus diretórios, comandos e arquivos. Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui. Gostou? Compartilhe
O que mais diferencia o Unix do Windows?Hardware:
O suporte de hardware é limitado em sistemas UNIX. Alguns hardwares podem não ter drivers criados para eles. O Windows possui quase todos os drivers para todo o hardware disponível.
Quais as principais diferenças do Windows e do Linux?Enquanto o sistema operacional da Microsoft é único (sempre a mesma interface e a mesma maneira de se operar), o Linux pode variar muito mais, oferecendo interfaces gráficas completamente diferentes que o usuário pode não só instalar por conta própria, como também personalizar extensivamente.
Qual a diferença entre o sistema operacional Linux e Unix?Tudo o que você faz no unix é um processo, cada vez que é executada uma tarefa ou um comando ele é tratado pelo unix como um processo, e recebe um número. O Linux é um sistema operacional livre baseado no Unix.
Quais são as principais diferenças entre os sistemas operacionais Windows Linux e Mac?Windows: Produzido pela Microsoft, cujo a versão mais recente é o Windows 10. É o mais popular entre desktops e notebooks; macOS: Encontrado única e exclusivamente em equipamentos produzidos pela Apple, que também desenvolve o sistema; Linux: Por ser um software livre, não possui um produtor oficial.
|