Questão Como entender o layout do sistema de arquivos do Ubuntu?


No Windows, talvez haja apenas algumas pastas importantes (por importante eu quero dizer importante na minha imagem lógica do sistema de arquivos do Windows) na unidade de instalação (no meu caso C:\). Nomeadamente Program Files e Windows. Eu simplesmente fico longe de Windows pasta e os “arquivos de programa add remove” são bons o suficiente para program files pasta do Windows. Claro que há uma pasta chamada Users onde os usuários (que não são administradores) podem acessar apenas suas pastas.

Assim, há uma imagem clara em algum nível em minha mente do sistema de arquivos do Windows. No Ubuntu, quando chego ao local /, há uma lista enorme de pastas, a maioria das quais não tenho idéia do que elas contêm. o /bin pasta parece ser o equivalente do Windows pasta no windows. o /usr pasta parece que é o equivalente do Users pasta no Windows. Mas até o /home pasta parece que pode caber a conta.

Por favor, entenda que eu entendo que o Ubuntu (Linux) tem um caráter diferente do Windows, ou seja, não precisa haver o equivalente exato das funções do Windows, no Ubuntu. Tudo o que estou procurando é uma imagem um pouco mais clara do sistema de arquivos do Ubuntu.

 Esta questão faz parte de uma questão maior que estou dividindo para torná-la mais responsável. A questão original pode ser encontrada aqui:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/ 


202
2018-05-17 18:12


origem


Veja também o estrutura de diretórios etiquetar Unix e Linux. Todas as distribuições do Linux seguem o mesmo modelo. - Gilles
Obrigado por todas as suas respostas. Estou um pouco confuso sobre alguns pontos: No Windows, a configuração geralmente fornece através de um prompt uma opção para instalar um software para todos os usuários. Como fazer essa distinção no Ubuntu? Além disso, esse é um problema comum na configuração de softwares de desenvolvimento para seus IDEs. No windows, por exemplo, em "arquivos de programas \ miktex \ bin" existe o arquivo "pdflatex.exe". Assim, posso apontar o IDE para esse arquivo e configurá-lo. Como fazer esse processo no Ubuntu? Onde está o arquivo binário geral associado a um software (especialmente do ponto de vista da configuração)? - Shashank Sawant
No Ubuntu, você normalmente instala o software para todos os usuários. Tudo o que você faz através do gerenciador de pacotes é para todos os usuários. Eu não entendo o resto do seu comentário; não se "configura" o "arquivo binário associado a um software". Você deve fazer isso como uma pergunta à parte e dar uma explicação melhor do que está tentando fazer. - Gilles
Consegui. Eu irei formular uma nova questão. Mesmo assim, aqui está uma breve explicação do que eu quis dizer: No Windows, os arquivos .exe podem ser facilmente localizados. Por exemplo: "C: \ Python27 \ python.exe". Então eu sei de onde o programa Python começa. Agora, se eu tiver que usar o Eclipse IDE, posso simplesmente apontá-lo para python.exe, e é isso que eu quis dizer com "configure". Eu configurei o IDE para Python. No Ubuntu, onde é o local onde o programa está instalado? Isso é o que ainda me evita. - Shashank Sawant
@Gilles Tenha cuidado ao dizer all. o Projeto GoboLinux na verdade usa uma estrutura de diretórios mais semelhante ao Windows. - new123456


Respostas:


Você pode ler sobre isso na wikipedia exemplo. Um trecho:

o Padrão de Hierarquia do Sistema de Arquivos (FHS) define os diretórios principais e seus conteúdos nos sistemas operacionais Linux. Na maior parte, é uma formalização e extensão da hierarquia tradicional do sistema de arquivos BSD.

O FHS é mantido pela Linux Foundation, uma organização sem fins lucrativos que consiste em grandes fornecedores de software e hardware, como HP, Red Hat, IBM e Dell.   A versão atual é 3.0, lançada em 3 de junho de 2015.

Uma representação visual com uma breve descrição:

enter image description here

Basicamente, o Linux dividiu a estrutura de diretórios com base na função do que é necessário para tornar o sistema o mais seguro possível com a quantidade mínima de permissões necessárias. Caso contrário, alguém é obrigado a ter que fazer um monte de trabalho evitável.

Lembre-se que Unix e Linux foram criados como sistemas multiusuários e o Windows foi criado para um único usuário. Tudo o mais pode ser explicado a partir dessa ideia. Você pode explicar todos os diretórios quando pensar em ser multiusuário e segurança.

3 exemplos:

  • Você verá que os arquivos e diretórios que são apenas administradores são reunidos no mesmo diretório: o s em /sbin e /usr/sbin e /usr/local/sbin significa sistema. Um usuário normal não pode nem iniciar programas que estão lá. Os arquivos que um usuário normal pode iniciar estão em / bin, / usr / bin, / usr / local / bin com base em onde ele deve residir mais logicamente. Mas se eles são apenas admin eles devem ir para o sversão desse diretório. Existe um famoso utilitário chamado fuser. Você pode matar processos com isso. Se um usuário normal puder usar isso, ele poderá matar sua sessão.

  • O mesmo vale para /home: / home / user1 é propriedade de user1. / home / user2 é propriedade de user2. user2 não tem nenhum negócio fazendo coisas na casa do user1 (e o contrário também é verdade: o user1 não tem nenhum negócio fazendo coisas na casa do user2). Se todos os arquivos estivessem em / home sem nenhum nome de usuário abaixo dele, você teria que dar permissões para cada arquivo e avaliar se alguém tem permissão para gravar / remover esses arquivos. Um pesadelo se você tiver dezenas de usuários.

  • Adição sobre bibliotecas.

    /lib/, /usr/lib/e /usr/local/lib/ são os locais originais, antes da multilib sistemas existiam e existiam para evitar quebrar coisas. /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/ são invenções multilib de 32/64 bits.

Não é um conceito estático por qualquer meio. Outros sabores do Linux fizeram ajustes neste layout. Por exemplo; atualmente você verá debian e Ubuntu mudando muito o lay-out do FHS, já que o SSD é melhor com arquivos somente de leitura. Há um movimento em direção a um novo layout onde os arquivos são divididos em um diretório / grupo 'somente leitura' e 'gravável' para que possamos ter uma partição raiz que pode ser montada somente leitura (partição para um ssd) e gravável (sata hdd). O novo diretório usado para isso (não na imagem) é /run/.


240
2018-05-17 18:18



+1 Rinzwind. Eu gosto da imagem, estava realmente procurando por uma. - Luis Alvarado♦
ha pensou que iria receber atenção: + @LuisAlvarado - Rinzwind
Não pode haver uma resposta melhor! - Shashank Sawant
Não foi /mnt o que /media é agora, há alguns anos atrás? - RobinJ
@RobinJ: A diferença é que /mnt tem sido historicamente gerenciado manualmente. Com o surgimento de muitos dispositivos transientes (unidades flash, etc.) e a montagem automática se tornando padrão, houve a necessidade de lidar automaticamente com pontos de montagem. Um novo diretório foi necessário para evitar conflitos com a configuração manual existente. Assim, nos dias de hoje /mnt foi relegado à função de fornecer um conveniente ponto de montagem temporário. - Scott Severance


Dê este comando uma tentativa ...

man 7 hier

Espero que ajude


95
2018-05-17 19:58



boa decisão! Eu sempre esqueço isso embora esteja sempre presente (mesmo quando a rede está em baixo;)) - Rinzwind
o homem deve ser renomeado para "it". :))) - Shiki
man hier está agora entre meus comandos favoritos! As explicações são mais claras para mim do que o FHS doco, especialmente distinguindo entre "local para a máquina" e "em todo o site", para um usuário inexperiente do Ubuntu, ultrapassando a experiência DOS / Windows moderada. - WillC
BTW o número 7 stands da seção Miscelânea of hier man page. - Pablo Bianchi


Resposta atrasada - Eu criei um roteiro para iniciantes seguirem. Se eles estão procurando por um arquivo, mas não sabem onde procurar, eles podem usar o mapa para navegar por aí. Você pode baixar um PNG de alta resolução Aqui. Você pode encontrar a postagem relacionada Aqui. Vou continuar atualizando o arquivo e o post quando o tempo permitir, incorporando comentários úteis.


37
2017-11-20 18:18



Idéia interessante e útil para produzir um fluxograma, mas infelizmente parece ter alguns becos sem saída. Minha pergunta é se estou realizando um mysqldump onde devo enviar o arquivo para? - BadHorsie
@BadHorsie é claro que sempre dependeria do seu caso de uso específico, mas despejá-lo em um /home/badhorsie/mysqldump diretório seria suficiente. Se você estiver executando muitos aplicativos, poderá criar um novo usuário para executar cada aplicativo e despejá-lo nesse aplicativo / usuário home diretório. - d4nyll
@ paranoid-panda, você poderia expandir um pouco sobre o motivo de você escolher não permitir que a imagem seja clicável por meio da resolução total? A versão incorporada neste post é praticamente ilegível. - waldyrious
@waldyrious: Se você olhar para o Histórico de Revisão você verá que eu só corrigi um erro de ortografia, foi outro usuário que adicionou a imagem desta maneira particular. Nada a ver comigo. Sinta-se à vontade para editá-lo, não consigo lembrar a sintaxe correta para torná-lo clicável.
@ParanoidPanda isso é precisamente o que eu fiz. Minha edição fez o erro de digitação e tornou a imagem clicável, e sua opinião foi rejeitar e editar, daí a minha pergunta: o que você viu de errado em tornar a imagem clicável? - waldyrious


Este texto a seguir mostra a estrutura do diretório.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

Os principais componentes aqui são:

  1. /boot : Contém o carregador de boot

  2. /home : Contém os diretórios pessoais dos usuários.

  3. /bin : Todos os binários executáveis ​​e comandos usados ​​por todos os usuários no sistema estão localizados aqui.

  4. /sbin : Contém os binários executáveis ​​do sistema normalmente usados ​​pelos administradores do sistema.

  5. /lib : Contém as bibliotecas do sistema que suportam os binários em / bin e / sbin.

  6. /etc : Contém os arquivos de configuração para rede, tempo de inicialização, etc.

  7. /dev : Isto tem os arquivos do dispositivo, isto é, usb, dispositivo terminal ou qualquer outro dispositivo conectado ao sistema são mostrados aqui.

  8. /proc : Contém informações sobre o processo em execução.

  9. /tmp : Este é o diretório temporário onde muitos processos criam os arquivos temporários necessários. Isso é eliminado toda vez que a máquina é inicializada.

Para mais detalhes, Thegeekstuff link explica perfeitamente o sistema de arquivos linux genérico.


36
2018-05-17 18:38





\Users é equivalente a /home. O nome de /usr é um artefato histórico.

O equivalente combinado de \Windows e \Program Files é a combinação de /bin, /boot, /etc, /lib, /sbin, /tmp, /usr e /var. O Linux e o Windows dividem o software instalado de forma diferente. O Windows faz distinção entre o sistema operacional e os programas complementares. O Linux não faz essa distinção da mesma maneira; A maioria, senão todos os softwares vêm através do Ubuntu (o distribuidor) e são instalados na mesma hierarquia de diretórios, e como o software é rastreado pelo gerenciador de pacotes, não há necessidade de armazenar cada programa em seu próprio diretório. No Linux:

  • /etc é para arquivos de configuração do sistema: arquivos de configuração que afetam todos os usuários, se eles se aplicam ao sistema operacional como um todo ou a um aplicativo específico.
  • /usr é para código do sistema e dados (programas, bibliotecas, documentação, etc.).
  • /var é para dados variáveis ​​ou temporários: arquivos temporários, logs, bancos de dados do gerenciador de pacotes, spools de impressora, arquivos de salvamento de jogos, etc. /tmp para arquivos temporários que podem ser apagados através de reinicializações.
  • /bin, /lib e /sbin no diretório raiz tem contrapartes em /usr. Os arquivos que estão fora /usr são os que são necessários no início do processo de inicialização. Esta é uma relíquia do tempo em que os discos eram pequenos e /usr pode estar em um sistema de arquivos compartilhado entre várias estações de trabalho pela rede, não é realmente uma distinção útil na maioria dos sistemas.
  • /boot contém alguns arquivos necessários apenas para inicializar o sistema operacional e não para a operação do dia-a-dia.

Existem diretórios adicionais que não correspondem a nada que o Windows possui:

  • /root é o diretório inicial do usuário raiz. O usuário root é uma conta de administrador não vinculada a nenhum usuário específico; é o usuário que você muda quando você executa sudo. O Ubuntu não permite que o usuário root efetue login por padrão.
  • /media e /mnt são pontos de montagem: eles são onde você pode ver os sistemas de arquivos de outros sistemas operacionais e unidades remotas. O equivalente do Windows é outras letras de unidade.
  • /proc e /sys mostrar informações do sistema. No Windows, você precisa percorrer menus ou chamar comandos do sistema ou instalar programas de terceiros para ver essas informações.

O Ubuntu, como outras distribuições Linux, geralmente segue o Linux Padrão de Hierarquia do Sistema de Arquivos.


19
2018-05-17 18:48





O Ubuntu (como todos os sistemas semelhantes ao UNIX) organiza arquivos em uma árvore hierárquica, onde os relacionamentos são pensados ​​em equipes de pais e filhos. Os diretórios podem conter outros diretórios, bem como arquivos regulares, que são as "folhas" da árvore. Qualquer elemento da árvore pode ser referenciado por um nome de caminho; um nome de caminho absoluto começa com o caractere / (identificando o diretório raiz, que contém todos os outros diretórios e arquivos), então cada diretório filho que deve ser percorrido para alcançar o elemento é listado, cada um separado por um sinal /.

Um nome de caminho relativo é aquele que não inicia com /; Nesse caso, a árvore de diretórios é percorrida a partir de um determinado ponto, que muda dependendo do contexto, chamado diretório atual. Em todo diretório, existem dois diretórios especiais chamados. e .., que se referem respectivamente ao próprio diretório e ao seu diretório pai.

O fato de todos os arquivos e diretórios terem uma raiz comum significa que, mesmo que vários dispositivos de armazenamento diferentes estejam presentes no sistema, eles são vistos como diretórios em algum lugar da árvore, uma vez que são montados no local desejado.

Encontre exemplos e mais informações aqui:


5
2018-05-17 18:18



Link muito bom. Obrigado Stephen. - Luis Alvarado♦