Significato delle directory su sistemi Unix e Unix


112

Uso Linux da un paio d'anni, ma non ho ancora capito quale sia l'origine o il significato di alcuni nomi di directory su sistemi Unix e Unix. Ad esempio, cosa significa etco var? Da dove viene il optnome?

E mentre siamo in tema comunque. Qualcuno può dare una chiara spiegazione di quale directory è meglio usata per cosa. A volte mi confondo dove è installato un determinato software o quale sia la directory più appropriata in cui installare il software.


La cosa divertente è che unix è una parodia del multics e di essere l'unico a sopravvivere ... Immagino che il multics fosse solo in anticipo sui tempi.
SparK,

Risposte:


134

Per ulteriori dati sul layout dei file system Linux, guarda il Filesystem Hierarchy Standard (ora alla versione 2.3, con la versione beta 3.0 distribuita sulle distribuzioni più recenti). Spiega alcune delle origini dei nomi:

  • / bin - Bin aries.
  • / boot - File necessari per l' avvio .
  • / dev - Dev file di ghiaccio.
  • / etc - Et c etera . Il nome è ereditato dai primi Unix, che è quando è diventato il posto giusto per mettere i file di configurazione.
  • / home - Dovesono conservate le home directory.
  • / lib - Dovevengono conservate le variabili lib del codice.
  • / media - Una directory più moderna, ma in cuiviene montato il supporto rimovibile.
  • / mnt - Dove file system temporanei sono m ou nt ed.
  • / opt - Doveè installato il software aggiuntivo opt ional. Questo è discreto/usr/local/per i motivi che vedrò più avanti.
  • / run - Dovevengono conservati i dati variabili del tempo di esecuzione .
  • / sbin - Dove s uper- bin ariete vengono memorizzati. Questi di solito funzionano solo con root.
  • / srv - Sta per " s e rv e". Questa directory è destinata ai file statici che vengono pubblicati. /srv/httpsarebbe per i siti Web statici,/srv/ftpper un server FTP.
  • / tmp - Dove t e mp orary file possono essere memorizzati.
  • / usr - Un altro elenco ereditato dalla Unix di vecchia, è l'acronimo di " U NIX S istema R isorse". Essa non stanno per "utente" (vedi il wiki di Debian ). Questa directory deve essere condivisibile tra host e può essere montata in modo sicuro su più host NFS. Può essere montato in sola lettura in modo sicuro.
  • / var - Un'altra directory ereditata dai vecchi Unix, sta per " var iable". È qui che possono essere memorizzati i dati di sistema che variano. Cose come directory di spool e cache possono trovarsi qui. Se un programma ha bisogno di scrivere nel file system locale e non fornisce tali dati a qualcuno direttamente, andrà qui.

/ opt vs / usr / local

La regola empirica che ho visto è meglio descritta come:

Utilizzare /usr/localper le cose che normalmente entrerebbero /usro stanno prevalendo su quelle già presenti /usr. Utilizzare /optper cose che installano tutte in una directory o che sono altrimenti speciali.


2
Il documento risponde molto bene alla prima metà della mia domanda. Tuttavia, da dove derivano i nomi è ancora un mistero. Il motivo che vorrei sapere è perché penso che mi darà più contesto.
Luca,

La denominazione è quasi tutta autoesplicativa. Soprattutto se leggi le descrizioni in quel link.
Dan Carley,

3
No non lo è. Spiega a cosa serve 'etc' ma non spiega da dove viene il nome o che cosa rappresenta.
Luca,

@ sysadmin1138, quindi /runsostanzialmente fa riferimento alla RAM?
Pacerier,

@Pacerier È un filesystem, ma può essere montato in modo sicuro come un disco RAM. Detto questo, molti programmi assumono una struttura fissa, quindi richiedono effettivamente persistenza.
sysadmin1138

22

Storicamente, /etcsta per "etcetera" ed /varè l'abbreviazione di "variabile". Suppongo che il primo sia dovuto a una vasta raccolta di file di configurazione di sistema non correlati /etc. Quest'ultimo è perché /varci si aspetta che i file cambino. Spesso puoi montare /usre /in sola lettura (tranne quando esegui aggiornamenti), ma non puoi mai montare /varin sola lettura. Contiene file di registro di sistema, file di blocco, file di spool e altre cose che cambiano in modo dinamico.

Altre persone ti hanno dato dei suggerimenti per aiutarti a capire quale sia il posto migliore dove andare.


22

Mi dispiace resuscitare un vecchio thread, ma ritengo che questo dettaglio sia un chiarimento importante per tutti i futuri cercatori di queste informazioni:

  • / opt sta per opzionale (come nei pacchetti di componenti aggiuntivi opzionali).
  • / bin sta per binario (contiene eseguibili utilizzati dal sistema operativo).
  • / lib sta per libreria (contiene librerie condivise usate dal filesystem e per l'avvio, probabilmente usate dagli eseguibili nel cestino)
  • / proc sta per processi.
  • / root significa utente root.
  • / home contiene le sottodirectory home per tutti gli utenti non root.
  • / dev sta per dispositivo (contiene file speciali e di dispositivo).
  • / tmp sta per temporaneo.
  • / srv sta per servire.
  • / mnt sta per mount point (montare qui un filesystem temporaneo).
  • / include contiene file #include, ad esempio file di intestazione (ad es. stdio.h).
  • / var sta per variabile
  • / etc sta per etcetera

  • / usr sta per Unix System Resources ( Fonte )


Bella risposta: succinta, diretta a livello della domanda, e non c'è bisogno di cercare altri collegamenti. +1
Scott Biggs,

Non ho mai visto SRV. Preferisco la convenzione sulla configurazione, purché abbia un senso e sia applicata. Ovviamente, Apache non serve sempre file dalla directory / srv.
user148298

19

Prova questo:

$ man hier

1
Ben fatto. Tuttavia, proprio come il documento a cui si fa riferimento in altre risposte, questa pagina man parla solo di ciò per cui vengono utilizzate le directory. Sono anche interessato al motivo per cui alcuni nomi sono stati scelti, come ad esempio / etc, ad esempio
Luca,

2
La risposta alla tua domanda su / etc è qui: en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
Anonimo



1

Se osservi diversi tipi di sistemi operativi unix di quanti ne troverai qualche differenza nei nomi di directory, ma la maggior parte dei comuni sono spiegati di seguito ...

/ bin sta per binario (contiene file binari e contiene anche comandi utilizzati principalmente dagli utenti. È anche il percorso predefinito per l'esecuzione del comando).

/ sbin (questo contiene i comandi speciali che vengono generalmente generati dal superutente)

/ lib sta per libreria (contiene librerie condivise usate dal filesystem e per l'avvio, probabilmente usate dagli eseguibili nel cestino) / proc sta per processi (se vuoi verificare controlla questo regista conterrà diverse directory chiamate in numeri casuali, che sono nient'altro che numero di processo è possibile eseguire il controllo incrociato di ps - ef)

/ root significa utente root. (directory predefinita per l'utente root) / home (tutti gli utenti non root hanno la directory home in questa directory) / dev sta per device (contiene file speciali e device, se si guarda in questa directory tramite ls - In questa directory sono mostrati anche i numeri maggiori e minori di comando, anche il tipo di dispositivo mostrato all'inizio di ogni riga con il risultato ls - l. B significa dispositivo speciale a blocchi, c significa dispositivo speciale a caratteri). / tmp sta per temporaneo (le risorse temporanee richieste per alcuni processi sono temporaneamente conservate qui) / mnt sta per mount point (montare qui un filesystem temporaneo). / var sta per variabile (contiene dati variabili, la directory che contiene cambia ogni volta di dimensioni) / opt sta per opzionale (generalmente il software di terze parti è installato in questa directory). / usr sta per Unix System Resources.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.