Significado dos diretórios nos sistemas Unix e Unix-like

112

Estou usando o Linux há alguns anos, mas ainda não descobri qual é a origem ou o significado de alguns nomes de diretório nos sistemas Unix e Unix. Por exemplo, o que etcsignifica ou var? De onde vem o optnome?

E enquanto estamos no assunto de qualquer maneira. Alguém pode dar uma explicação clara de qual diretório é melhor usado para quê. Às vezes, fico confuso sobre a localização de determinado software ou qual o diretório mais apropriado para instalar o software.

Lucas
fonte
O engraçado é o unix ser uma paródia de multics e ser o único a sobreviver ... Acho que os multics estavam bem à frente do seu tempo.
SparK 17/08/19

Respostas:

134

Para obter mais dados sobre o layout dos sistemas de arquivos Linux, consulte o Filesystem Hierarchy Standard (agora na versão 2.3, com a versão beta 3.0 implementada nas distribuições mais recentes). Explica alguns de onde os nomes vieram:

  • / bin - bin aries.
  • / boot - Arquivos necessários para a inicialização .
  • / dev - Dev arquivos gelo.
  • / etc - Et c etera . O nome é herdado dos Unixes mais antigos, que é quando se tornou o local para colocar os arquivos de configuração.
  • / home - Onde os diretórios pessoais são mantidos.
  • / lib - Onde as bibliotecas de códigosão mantidas.
  • / media - Um diretório mais moderno, mas onde a mídia removívelé montada.
  • / mnt - Onde os sistemas de ficheiros temporários são m OU nt ed.
  • / opt - Onde opt ional software add-on está instalado. Isso é discreto/usr/local/por razões que abordarei mais tarde.
  • / run - Onde osdados variáveis ​​do tempo de execução são mantidos.
  • / sbin - Onde s uper- bin aries são armazenados. Estes geralmente funcionam apenas com root.
  • / srv - significa " s e rv e". Este diretório é destinado a arquivos estáticos que são servidos. /srv/httpseria para sites estáticos,/srv/ftppara um servidor FTP.
  • / tmp - onde t e mp arquivos orary podem ser armazenados.
  • / usr - Outro diretório herdado dos Unixes de antigamente, significa " U NIX S ystem R sources". Ele não representam "user" (veja o Debian Wiki ). Esse diretório deve ser compartilhável entre hosts e pode ser montado com NFS em vários hosts com segurança. Pode ser montado somente leitura com segurança.
  • / var - Outro diretório herdado dos Unixes antigos, significa " var iable". É aqui que os dados do sistema que variam podem ser armazenados. Coisas como diretórios de spool e cache podem estar localizados aqui. Se um programa precisar gravar no sistema de arquivos local e não estiver fornecendo esses dados diretamente a alguém, ele será acessado aqui.

/ opt vs / usr / local

A regra de ouro que eu vi é melhor descrita como:

Use /usr/localpara coisas que normalmente seriam inseridas /usrou que estão substituindo as que já estão inseridas /usr. Use /optpara coisas que instalam tudo em um diretório ou são especiais.

sysadmin1138
fonte
2
O documento responde muito bem à primeira metade da minha pergunta. No entanto, de onde os nomes são derivados ainda é um mistério. A razão pela qual gostaria de saber é porque acho que isso me dará mais contexto.
Lucas
A nomeação é quase toda auto-explicativa. Especialmente se você ler as descrições nesse link.
22830 Dan Carley
3
Não, não é. Ele explica para que 'etc' é usado, mas não explica de onde vem o nome ou o que ele significa.
12309 Luke
@ sysadmin1138, então /runé basicamente fazer referência à RAM?
Pacerier 19/12/14
@Pacerier É um sistema de arquivos, mas pode ser montado com segurança como um disco RAM. Dito isto, muitos programas assumem uma estrutura definida lá, na verdade exigem persistência.
sysadmin1138
22

Historicamente, /etcsignifica "etcetera" e /varé a abreviação de "variable". Suponho que o primeiro é porque entra uma grande coleção de arquivos de configuração do sistema não relacionados /etc. O último é porque os arquivos /vardevem mudar. Geralmente, você pode montar /usre /como somente leitura (exceto ao executar atualizações), mas nunca pode montar /varsomente leitura. Ele contém arquivos de log do sistema, arquivos de bloqueio, arquivos em spool e outras coisas que mudam dinamicamente.

Outras pessoas deram dicas para ajudá-lo a descobrir o que é melhor para onde.

Eddie
fonte
22

Desculpe ressuscitar um tópico antigo, mas acho que esse detalhe é um esclarecimento importante para todos os futuros pesquisadores desta informação:

  • / opt significa opcional (como nos pacotes complementares opcionais).
  • / bin significa binário (contém executáveis ​​usados ​​pelo sistema operacional).
  • / lib significa library (contém bibliotecas compartilhadas usadas pelo sistema de arquivos e para inicialização, provavelmente usadas pelos executáveis ​​em bin)
  • / proc significa processos.
  • / root significa usuário root.
  • / home mantém os subdiretórios home de qualquer usuário não root.
  • / dev significa dispositivo (contém arquivos especiais e de dispositivo).
  • / tmp significa temporário.
  • / srv significa servir.
  • / mnt significa ponto de montagem (monte um sistema de arquivos temporário aqui).
  • / include contém #include arquivos, ou seja, arquivos de cabeçalho (por exemplo, stdio.h).
  • / var significa variável
  • / etc significa etcetera

  • / usr significa Recursos do sistema Unix ( fonte )

Mike
fonte
Boa resposta: sucinta, direcionada ao nível da pergunta, e não há necessidade de procurar outros links. 1
Scott Biggs
Eu não vi srv antes. Prefiro a convenção do que a configuração, desde que faça sentido e seja aplicada. Obviamente, o Apache nem sempre serve arquivos do diretório / srv.
user148298
19

Tente o seguinte:

$ man hier
Anônimo
fonte
11
Agradável. No entanto, assim como o documento mencionado em outras respostas, esta página de manual fala apenas sobre o uso dos diretórios. Estou também interessado em por que certos nomes, onde escolhidos, como / etc por exemplo
Lucas
2
A resposta para sua pergunta sobre o / etc está aqui: en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
Anônimo
1

Se você observar vários tipos de sistemas operacionais unix, encontrará algumas diferenças nos nomes de diretório, mas a maioria dos comuns são explicados abaixo ...

/ bin significa binário (contém arquivos binários e também contém comandos usados ​​principalmente pelos usuários. Também é o caminho padrão para a execução de comandos).

/ sbin (contém os comandos especiais que geralmente são acionados pelo superusuário)

/ lib significa biblioteca (contém bibliotecas compartilhadas usadas pelo sistema de arquivos e para inicialização, provavelmente usadas pelos executáveis ​​em bin) / proc significa processos (se você quiser verificar apenas verificar esse diretor, ele conterá vários diretórios nomeados em números aleatórios, que são nada além do número do processo, você pode cruzar o controle com ps - ef)

/ root significa usuário root. (diretório padrão para usuário root) / home (todos os usuários não-root têm um diretório home nesse diretório) / dev significa device (contém arquivos especiais e de dispositivo, se você procurar nesse diretório via ls - l comando números maiores e menores também são mostrados neste diretório e também o tipo de dispositivo mostrado no início de cada linha no resultado ls - 1. B significa bloquear dispositivo especial, c significa dispositivo especial para caracteres). / tmp significa temporário. (recursos temporários necessários para alguns processos mantidos aqui temporariamente) / mnt significa ponto de montagem (monte um sistema de arquivos temporário aqui). / var significa variável (contém dados variáveis, o diretório que ele contém muda de tamanho toda vez) / opt significa opcional (geralmente softwares de terceiros são instalados nesse diretório). / usr significa Recursos do sistema Unix.

Anwar Khan
fonte