Aprendendo: Sistema de ficheiros em Linux
Comandos Linux para Totós – Tutorial nº33 por Bruno Santos da Comunidade Linux Pplware
Ora vivam caros linuxianos!!! Cá estamos nós para a primeira rubrica “Comandos Linux para Totós” de 2013, com o objectivo de chegarmos ao tutorial nº100! Para isso contamos também com a vossa ajuda, sendo que a partir de agora podem enviar as vossas dicas para que nós possamos publicar (ver no final do artigo)
Preparados para mais um Comandos Linux para Totós ???….Lets go…!
Depois de termos feito aqui uma introdução ao sistema de ficheiros em Linux, hoje apresentamos uma visão mais detalhada deste assunto. Uma das maiores confusões para um novo utilizador de Linux são as directorias existentes. Relativamente a outros S.O., que são mínimas as directorias existentes na raiz do disco, Linux mantém um número considerável delas. Neste pequeno tutorial, iremos tentar que percebam para que servem e o que está dentro de cada uma delas.
O Filesystem Hierarchy Standard define os directórios principais e o seu conteúdo num sistema operativo Linux ou do tipo Unix.
Em 1993, a comunidade de Linux formou um grupo para fornecer um esquema standard da estrutura de directórios de Linux. A intenção desde grupo era delinear e orientar formas de reduzir a proliferação de esquemas do sistema de ficheiros proprietários e a sua possível contribuição para a fragmentação do mercado.
O FHS é mantido pelo grupo “Free Standards Group”, uma organização sem fins lucrativos formada por empresas de hardware e software como a HP, Red Hat, IBM e Dell.
Este grupo lançou um documento, descrevendo o Standard, também conhecido como FSSTND, em 1994. No ano seguinte, o grupo começou a reduzir conteúdo especifico de Linux e a aperfeiçoar o standard para incluir também outros sistemas operativos baseados em Unix. Assim que o FSSTND começou a atrair mais interessados, foi renomeado para FHS.
Embora o FHS não seja um requisito para programadores e distribuições, a comunidade de Linux entende a importância dos standards e as maiores distribuições de Linux suportam-no.
Tipos de dados
Segundo o FHS, são definidas duas categorias de dados, cada uma com dois sub-tipos opostos:
- Partilha de dados– Esta categoria define o uso num ambiente de rede:
- Partilhável – Dados partilháveis podem ser usados por múltiplos computadores numa rede. Este tipo de dados contém informação genérica. Exemplos incluem programas executáveis, documentação, dados genéricos.
- Não Partilhável – Estes dados não são partilháveis pois estão directamente ligados ao computador, como ficheiros de configuração
- Modificação de dados– Esta categoria define como são alterados os dados:
- Variável – Dados considerados variáveis são quando as alterações são efectuadas de forma natural, por processos frequentes. Exemplos incluem ficheiros de utilizadores e ficheiros de log do sistema, com /var/log/messages ou /var/log/syslog
- Estáticos – Dados estáticos são deixados de parte, permanecendo os mesmos dia após dia. Exemplos incluem ficheiros binários, como o ls e bash, que apenas mudam quando o administrador efectua uma actualização.
Algumas directorias na estrutura de directórios de Linux são intencionadas para conter dados específicos. Como exemplo, os ficheiros executáveis em /usr raramente são alterados, e assim sendo, são considerados dados estáticos porque são precisos por todos os utilizadores numa rede. Antes dos discos rígidos terem os tamanhos que têm hoje, os ficheiros encontrados em /usr eram colocados em servidores remotos para preservar o espaço em disco. Aliado ao facto de serem estáticos, estes ficheiros também eram considerados partilháveis.
Manter os ficheiros organizados em respeito a estes atributos simplifica a partilha de ficheiros, a administração do sistema e a complexidade das cópias de segurança (backup), bem como a reduzir os requisitos de armazenamento.
O FHS organiza os tipos de dados anteriores na seguinte tabela, com algumas directorias como exemplo.
O directório raiz - /
O FHS oferece um nível de detalhe significativo, descrevendo a localização exacta dos ficheiros, usando as definições de estático/variável e partilhável/não partilhável.
Nota: Embora o FHS seja um documento que define a estrutura de directórios de Linux, não obriga a que todas as directorias descritas nele estejam presentes em todas as instalações de Linux. Algumas directorias são dependentes de pacotes ou abertas a personalização por parte das distribuições.
O directório raiz (/) está no topo de toda a estrutura de directórios. O FHS define as seguintes linhas:
- Tem que incluir utilitários e ficheiros suficientes para permitir o arranque do sistema, incluindo a funcionalidade de montar outros sistemas de ficheiros. Isto inclui utilitários, dispositivos, configurações e outros dados importantes para o arranque.
- Deve conter utilitários necessários ao administrador para poder reparar ou restaurar um sistema danificado.
- Novo software não deve criar ficheiros ou directorias na raiz.
O esquema de directórios é semelhante a uma raiz de uma árvore. No topo está / e vai descendo. É semelhante ao c:\ em WINDOWS, excepto que C:\ é também o primeiro disco, e em Linux, o / pode ser montado em qualquer lado.
/bin
A directoria /bin contem comandos do sistema, como o cp, ls, mkdir, ln e mais. Estes comandos são essenciais para o funcionamento do sistema.
/dev
Ficheiros de dispositivos para aceder a discos e outros. Exemplos são partições de discos, como sda1, e terminais, como tty1. Os dispositivos têm que estar presentes no arranque do sistema para uma montagem e configurações correctas. Há uma excepção a esta regra para sistemas que usem sysfs, que tornam a directoria /dev um sistema virtual, tal como a directoria /proc.
/etc
Esta directoria contem configurações importantes e únicas para o sistema e é necessária durante o arranque. Não existem programas executáveis aqui guardados.
/lib
A directoria /lib contem bibliotecas partilhadas e módulos para o kernel, ambos essenciais para o arranque do sistema.
Algumas distribuições já não diferenciam /lib de /usr/lib e /lib é um link para /usr/lib.
Em sistemas de 64bits é normal ver a directoria /lib como um link simbólico para /lib64 e também a existência da directoria /lib32 para bibliotecas de 32 bits.
/mnt
Esta directoria é fornecida para uso do administrador. Geralmente está vazia. Historicamente, servia para pontos de montagem temporários, como floppy e o cdrom. Agora montam-se outras partições temporárias, como partições de windows para algum tipo de reparação, mas nada impede que sejam montadas noutro lado qualquer.
/root
A directoria recomendada por defeito (mas opcional) para o administrador. Embora não seja essencial que esta directoria esteja localizada mesmo por baixo da directoria de topo (/), é conveniente, porque desta forma os ficheiros de configuração do administrador estão disponíveis para manutenção e recuperação do sistema.
/sbin
Contém utilitários essenciais para administração do sistema. Esta directoria é semelhante à directoria /bin.
Estas são as directorias definidas pelo FHS como importantes e que têm que estar presentes num sistema Linux.
As restantes directorias existentes no nível de topo são consideradas não essenciais para procedimentos de emergência:
/boot
Contém ficheiros para o gestor de arranque (GRUB ou LILO). Tipicamente esta directoria é pequena, pode ser colocada na directoria de topo. Por vezes é também separada (montada numa partição separada) para manter os ficheiros nos primeiros 1024 cilindros de um disco.
/home
Esta directoria contem as pastas pessoais dos utilizadores do sistema. É geralmente uma partição ou disco diferentes.
/opt
Esta directoria é geralmente usada para instalação de software, diferente do que é instalado usando as ferramentas da distribuição. É frequentemente a directoria escolhida por vendedores de software para a instalação dos seus produtos.
/tmp
Serve para guardar ficheiros temporários. O FHS recomenda (mas não obriga) que o seu conteúdo seja apagado em cada arranque do sistema.
/usr
A directoria /usr contém programas executáveis considerados não essenciais para uma recuperação do sistema. Geralmente também se encontra numa partição ou disco diferentes. Contém dados partilháveis, apenas de leitura, e é frequentemente montada localmente, apenas de leitura e partilhada por NFS[1].
Nota: O FHS diz: “O conteúdo da directoria de topo tem que ser adequado ao arranque, recuperação e/ou reparação do sistema”. Isto leva à recomendação que as directorias /usr, /opt e /var possam estar localizadas noutras partições e/ou discos localmente ou na rede.
/srv
Esta directoria mantêm dados fornecidos por serviços no sistema. Se estamos a usar um servidor Apache HTTP ou FTP, é provável que os dados disponibilizados pelos serviços esteja em directorias dentro de /srv.
Nota: Esta directoria não está disponível em todas as distribuições. Em algumas distribuições, os dados de serviços disponibilizados pelo sistema encontram-se em /var
/var
A directoria /var é o oposto da directoria /usr, que tem que ser apenas de leitura. Ficheiros de log e outros que deveriam ser escritos em /usr, são escritos na directoria /var. A directoria /var guarda dados variáveis.
/selinux
Se o sistema correr SELinux, esta directoria irá estar presente e conter ficheiros especiais necessários ao funcionamento do SELinux. Esta directoria é semelhante à directoria /proc.
/run
Esta é uma directoria recente, e fornece às aplicações um local para guardarem ficheiros temporários, como sockets e IDs de processos. Estes ficheiros não podem ser colocados em /tmp, porque esta directoria é limpa no arranque.
/media
É nesta directoria que são montados os dispositivos multimédia ligados ao computador, como CDROMs, pens usb, etc.
/lost+found
Cada sistema de ficheiros de Linux contém uma directoria destas. No caso de uma verificação do sistema durante o arranque (por um crash ou a pedido) encontrar ficheiros corrompidos, são colocados nesta directoria para que mais tarde se possa tentar recuperar alguns dados.
Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback.
Comandos Linux para totós - Outros artigos
- Comandos Linux para Totós – Tutorial nº1 – Comandos básicos
- Comandos Linux para Totós – Tutorial nº2 – Comandos básicos
- Comandos Linux para Totós – Tutorial nº3 – Criar ficheiros/directórios/subdirectórios
- Comandos Linux para Totós – Tutorial nº4 – Output de um ls -l
- Comandos Linux para Totós – Tutorial nº5 – Permissões em Linux
- Comandos Linux para Totós – Tutorial nº6 – Tar – Compactação e descompactação
- Comandos Linux para Totós – Tutorial nº7 – Processos
- Comandos Linux para Totós – Tutorial nº8 – RunLevels
- Comandos Linux para Totós – Tutorial nº9 – Estrutura de Diretórios
- Comandos Linux para Totós – Tutorial nº10 – Copiar e a mover ficheiros entre directório
- Comandos Linux para Totós – Tutorial nº11 – Redireccionamento de entradas e saídas
- Comandos Linux para Totós – Tutorial nº12 – Visualizar o conteúdo de um ficheiro
- Comandos Linux para Totós – Tutorial nº13 – Criar utilizadores
- Comandos Linux para Totós – Tutorial nº14 – Criar alias
- Comandos Linux para Totós – Tutorial nº15 – Ficheiros com informação dos utilizadores
- Comandos Linux para Totós – Tutorial nº16 – Criar grupos no Linux
- Comandos Linux para Totós – Tutorial nº17 – Modificar/Apagar utilizadores e grupos
- Comandos Linux para Totós – Tutorial nº18 – Copiar ficheiros entre PCs Linux com o SCP
- Comandos Linux para Totós – Tutorial nº19 – Instalar programas através do código fonte
- Comandos Linux para Totós – Tutorial nº20 – Pré-programação de tarefas com o crontab
- Comandos Linux para Totós – Tutorial nº21 – Configuração de parâmetros de rede
- Comandos Linux para Totós – Tutorial nº22 – Como correr um script no Linux?
- Comandos Linux para Totós – Tutorial nº23 – Como procurar ficheiros e directórios
- Comandos Linux para Totós – Tutorial nº24 – Logs – registo de evento
- Comandos Linux para Totós – Tutorial nº25 – Hardlinks e SoftLinks
- Comandos Linux para Totós – Tutorial nº26 – Aprenda a usar o editor de texto vim
- Comandos Linux para Totós – Tutorial nº27 – Gestão de Pacotes
- Comandos Linux para Totós – Tutorial nº28 – Editor nano
- Comandos Linux para Totós – Tutorial nº29 – Periféricos no Linux
Este artigo tem mais de um ano
Boas,
Mais uma vez um excelente tutorial. Aprendo sempre alguma coisa e custumo seguir todos os tutoriais.
Gostaria de deixar uma questão, que até pode ser diretamente ao Pedro Pinto.
No caso de ter uma unidade externa, com sistema de ficheiros NTFS, é impossível alterar os ícones de ficheiros e pastas nesta unidade?
Tenho Mint KDE 4.9.4 com Dolphin 2.1 e sempre que tento alterar os ícones, o Dolphin não aceita. Depois de alguma pesquisa percebi que poderia ser este o problema, mas gostaria de ouvir outra opinião.
Cumprimentos
Existe um bug report aberto acerca disto:
https://bugs.kde.org/show_bug.cgi?id=288824
Mdias ,
Boa noite , esse bug está corrigido desde o KDE 4.8 e do Dolphin 2.0 , neste momento estamos no KDE 4.9.5 a versão estável e RC 4.9.97 e o Dolphin já vai na versão estável 2.1 e na RC 2.1.97 , de qualquer das formas não penso que seja a este Bug que o Splinter se refere .
Aguardamos esclarecimentos do Splinter para ver se conseguimos ajudar .
Cumprimentos
Carlos Carvalho
Boa tarde ,
Excelente post , ele ilustra de uma forma perfeita a estrutura do Kernel Linux e de uma forma implícita está totalmente justificado o porquê das diferenças no comportamento das várias distribuições de Linux , o autor não poderia ser mais claro .
Leiam com atenção e guardem nos vossos favoritos se pensam alguma vez entrar neste Mundo fascinante que é o do Linux .
Os meus sinceros cumprimentos a quem tem alimentado este tutoriais que a tantos tem ajudado a interagir com este Kernel .
Aceitem os meus sinceros cumprimentos
Carlos Carvalho
Splinter ,
Boa tarde , explica-me lá isso um bocadinho melhor sff , para ver se te conseguimos ajudar .
Cumprimentos
Carlos Carvalho
Boas, bons tutoriais, seria interessante um dia juntarem tudo num ebook
Só uma achega em relação à “/opt/”
Este directoria é normalmente usada pelas distribuições, mesmo pelos pacotes das próprias, para instalar software closed source. Por isso é que no screenshot não está lá nenhuma aplicação que seja opensource e possivelmente algumas delas até teram sido instaladas para package manager da distribuição.
Toda a razão ! Foi um lapso !
Boas.
Então é o seguinte:
Tenho um disco externo, formatado em NTFS. Quando tento alterar um qualquer ícone dentro deste disco, ele não altera.
Vi num blog, já não me recordo qual, que por estar formatado em NTFS, é impossível alterar ícones.
Não sei se é do KDE, ou do gestor de ficheiros, no caso, Dolphin 2.1, facto é que acontece.
Não experimentei no GNOME, nem em outro gestor de ficheiros, mas no KDE tenho sempre o mesmo resultado.
Será que me falhou alguma coisa? Eu tenho permissão para ler, executar e escrever na unidade NTFS, portanto não será disso…
Obrigado pela atenção
boas…
consegues criar ficheiros na tua partição NTFS??
Ela pode estar a ser montada apenas como sendo de leitura e nesse caso não consegues alterar nada nem criar nada…so mesmo ler coisas…
Usas kde…não sei que aplicativos integram melhor no kde…
A utilização de partições ntfs é feita pelo driver ntfs-3g…este deve estar instalado…
Para montares de forma básica discos em modo de leitura/escrita existe um frontend gráfico para o ntfs-3g…que se chama ntfs-config…
Acredito que o driver ntfs-3g já venha instalado, mas o frontend para o mesmo pode não vir…
Em sistemas debian based podes sempre fazer…
sudo apt-get install ntfs-3g ntfs-config
se o ntfs-config não correr logo…vai a seguir as abas administração na tua maquina e corre-o, ou então…no terminal : gksudo ntfs-config e faz as configurações que queres para os teus discos NTFS…
A seguir já deves poder escrever nessas partições…
PS:Se futuramente arrancares com uma partição windows…esses icons não te vão aparecer como é óbvio….pois eles são no fundo um link symbolico para uma localização na tua maquina linux…logo em windows aparecera apenas o icon normal do windows…
cmps
Boa noite LMX ,
Bem explicado , mas ainda existe outro pormenor , é que um disco externo está sujeito como o LMX te disse a montagem , tens de ver em primeiro lugar se nas configurações do KDE os dispositivos externos e ou outros discos internos ou de qualquer outro tipo de armazenamento estão definidos para serem montados no arranque do sistema , para isso vais as configurações do KDE , abres a pasta que diz discos removíveis e vais ter várias opões , mas se assinalares a que diz activar automaticamente os dispositivos removíveis que é logo a primeira já deve ser suficiente .
Outra coisa que não poderás fazer se a pasta aonde tens os icons não está no disco externo , nunca vais conseguir aplicar de uma forma definitiva , se for esse o caso aconselho a que faças uma cópia dessa pasta para o teu HDD externo .
Esperamos ter-te ajudado , podes e deves inscrever-te na comunidade Linux do Pplware porque encontrarás sempre ajuda .
Aceita os meus sinceros cumprimentos
Carlos Carvalho
Bom artigo, mas esqueceram-se de explicar o que contem o /proc.
E já agora uma curiosidade: podem montar o /tmp como tmpfs o que faz com que esse diretório fique armazenado na RAM (pode ser swapped para o disco em caso de RAM cheia), e pode trazer algumas melhoras a nível de performance do sistema. Também tem a vantagem de o diretório ser automaticamente limpo ao reiniciar.
Os utilizadores que têm discos SSD também aproveitam isso. A directoria “especial” /proc vai ter tratamento “especial”.
Na verdade não uso Dual-Boot, só Mint 14 KDE. Vou tentar estas hipóteses, pode ser que funcione.
Mas consigo escrever no disco externo (NTFS, ligado por USB), no entanto, acredito que possa ser de estar montado como “só leitura”.
Vou tentar perceber se essa pode ser uma solução. Na verdade nunca mexi muito com este tipo de “problema”, mas de qualquer forma, vou deixar aqui o resultado da minha tentativa.
Obrigado pela ajuda. Bom fim-de-semana
Boas,
Já tive um problema semelhante. Tenta ver quem é o owner do disco. Provavelmente é o root. Se assim for faz unmout do disco e mount novamente como sendo o teu user o owner do disco.
A mim resolveu-me o problema.
Mas só uma observação… Se só tens o Mint porque não formatas o disco em Ext?
Cumps
A
Se se tivesse que escolher uma só razão para explicar porque é que o Linux não é usado por quase ninguém e ao fim de 20 anos continua só com à volta de 1% do mercado, é esta.
Em caso de dúvida basta perguntar ao utilizador normal dum Mac. Que não faz, e nem quer fazer, a mínima ideia de nada do que está aqui escrito.
Claro, claro…
É que no Windows ou outros sistemas nao existem comandos nem nada.
No windows e noutros sistemas não existe uma estrutura de pastas pré-definidas, cada uma com a sua função.
NO Windows e noutros sistemas não existe um sistemas de ficheiros.
E como o utilizador Mac não quer saber como as coisas funcionam (isto para não lhes chamar nomes), os outros utilizadores que gostam de saber um pouco mais do que abrir o Facebook, são todos uns palermas porque perdem tempo com coisas destas.
Posso tirar estas conclusões?
Não te preocupes… Um utilizador normal de linux também não tem de se preocupar com isso.
Carlos ,
Desculpa mas o que escreves espero que não seja verdade para bem dos utilizadores de MAC , então achas que eles não têm dúvidas e não existem barreiras a ultrapassar ????? ….. até no Windows é só dúvidas e mais bugs para aqui e para ali , esse é o mais falso argumento , agora podes ter razão numa coisa existe esse preconceito que o Linux é muito difícil e tal , eu como utilizador de Linux a 100% em minha casa e nos meus dispositivos moveis , o que te posso dizer é que tenho tentado desmistificar esse mito que de facto está criado , tens aqui um vídeo publicado pelo Pplware feito por mim com 1H e 40M e só uma vez é que fui a consola toda a personalização do sistema foi feito por modo gráfico , talvez fosse bom dares uma olhadela se não fores preguiçoso , link aqui :https://pplware.sapo.pt/pessoal/apresentao-em-vdeo-do-kubuntu-12-10-kde-4-9-3/
Aceitem os meus sinceros cumprimentos
Carlos Carvalho
Uma pergunta aos magos… No linux existe alguma tecla de atalho para carregar o sistema em modo texto?? Assim como a F8 para windows?
Cumprimentos
Assim que aparecerem as “janelas” carregas em CTRL+ALT+F1
YAP
carlos Carvalho
sim ja esta
oh isso ñ é carregar o sistema em modo texto.
O sistema já foi carregado em modo gráfico.
Limitas-te a alternar texto/gráfico.
Muito simples.
Abres uma consola, (e agora não sei que SO estás a falar, mas se for ubuntu, coloca sudo antes dos comandos):
Editas o ficheiro inittab (que está em /etc) e pesquisas a linha
# Default runlevel.
id:5:initdefault:
e alteras o 5 para 3 (multiutilizador)ou outro valor excepto 0 e 6 (e 5), claro.
Guardas e fazes reboot.
PS: Eu até desconfio que ubuntu já nem trás este ficheiro. Para ubuntu tens que pesquisar – eles têm a mania de alterar tudo…
para acederes esporadicamente em modo de texto…tens uma entrada no grub…para fazeres administração…
para acederes sempre em modo de texto(neste caso nem precisas de instalar ambiente gráfico…é normalmente usado em servidores).
Mas se quiseres fazer isto no Desktop, faz o que o Bruno Santos disse na /etc/inittab …
cmps
É só impressão minha ou existem directorias diferentes que servem para o mesmo? Por exemplo /dev /mnt /media
Sim, agora podes dizer isso.
Anteriormente, só existia /mnt . E como referido, existe por motivos históricos.
PENs, CDROMs, etc.. é tudo colocado em /media – mas há quem use o /mnt para montar partições ocasionalmente, que não são dispositivos amoviveis (não falo de discos externos).
Assim que acabarem os exames prometo dar uma vista de olhos aos tutoriais todos 🙂
Ora boas noites,
Do teste que efetuei com com a ferramenta de configuração NTFS e o disco externo o resultado (com escrita ativa nesta unidade) é o seguinte:
Montar a unidade;
escolher a pasta para alterar ícone;
o ícone está numa pasta dentro da unidade;
escolher “propriedades” e alterar o ícone;
o ícone permanece inalterado.
Portanto com ntfs-3g e a unidade montada como leitura e escrita, o efeito é o mesmo. Eu posso criar pastas, apagar ou modificar dentro desta unidade NTFS USB, mas modificar ícones não.
Bom fim-de-semana
boas…
o que entendes por modificar icons??
Eu tenho “emblemas” em cima de alguns icons de pastas em partições em NTFS…e eles estão sempre lá…obviamente em linux…
cmps
confesso que não li os tutoriais, à dias tropecei neste blog http://www.elithecomputerguy.com/2010/08/17/introduction-to-linux/
e depois de ver o 1º vídeo resolvi tentar. Espero que ajudem a complementar os tutoriais.
Interessante