Venendo dal mondo Windows, ho trovato la maggior parte della cartella nomi di directory per essere abbastanza intuitivi:
-
\Program Files
contiene file utilizzati dai programmi (sorpresa!) -
\Program Files (x86)
contiene file utilizzati da programmi a 32 bit su sistemi operativi a 64 bit -
\Users
(precedentementeDocuments and Settings
) contiene i file degli utenti, ovvero documenti e impostazioni-
\Users\USER\Application Data
contiene dati specifici dell'applicazione -
\Users\USER\Documents
contiene documenti appartenenti all'utente
-
-
\Windows
contiene file che appartengono al funzionamento di Windows stesso-
\Windows\Fonts
memorizza i file dei caratteri (sorpresa!) -
\Windows\Temp
è una directory temporanea globale
-
eccetera. Anche se non avessi idea di cosa facessero queste cartelle, potrei indovinare con buona precisione dai loro nomi.
Ora sto dando una buona occhiata a Linux e sono piuttosto confuso su come orientarmi nel file system.
Ad esempio:
-
/bin
contiene binari. Ma anche/sbin
,/usr/bin
,/usr/sbin
, e probabilmente altro di cui non sono a conoscenza. Quale è quale?? Qual'è la differenza tra loro? Se voglio creare un binario e metterlo da qualche parte a livello di sistema, dove lo metto? -
/media
contiene file system multimediali esterni. Ma anche/mnt
. E nessuno dei due contiene nulla sul mio sistema al momento; tutto sembra essere in/dev
. Qual è la differenza? Dove sono le altre partizioni sul mio disco rigido, comeC:
eD:
che era in Windows? -
/home
contiene i file utente e le impostazioni. Questo è intuitivo, ma poi, cosa dovrebbe andare in/usr
? E come mai/root
è ancora separato, anche se è un utente con file e impostazioni? -
/lib
contiene librerie condivise, come le DLL. Ma anche/usr/lib
. Qual è la differenza? -
Che cosa è
/etc
? Sta davvero per "et cetera" o qualcos'altro? Che tipo di file dovrebbero essere inseriti, globali o locali? È un concentrato di cose che nessuno sapeva dove mettere o c'è un caso d'uso particolare per questo? -
Cosa sono
/opt
,/proc
e/var
? Cosa rappresentano e a cosa servono? Non ho visto niente di simile in Windows* e non riesco proprio a capire a cosa potrebbero essere.
Se qualcuno può pensare ad altri posti standard che potrebbero essere utili da conoscere, sentiti libero di aggiungerlo alla domanda; si spera che questo possa essere un buon riferimento per persone come me, che stanno iniziando a familiarizzare con i sistemi *nix.
*OK, è una bugia. Ho visto cose simili in WinObj, ma ovviamente non su base regolare. Tuttavia, non so ancora cosa facciano su Linux.
Risposta accettata:
Le distribuzioni Linux utilizzano FHS:http://www.pathname.com/fhs/pub/fhs-2.3.html
Puoi anche provare man hier
.
Cercherò di riassumere le risposte alle tue domande dalla parte superiore della mia testa, ma ti consiglio vivamente di leggere l'FHS:
- /bin è per binari di sistema non superutente
- /sbin è per i binari di sistema del superutente (root)
- /usr/bin e /usr/sbin sono rispettivamente per i binari condivisi non critici per utenti o superutenti
- /mnt serve per montare temporaneamente una partizione
- /media serve per montare più supporti rimovibili contemporaneamente
- /dev contiene i file del dispositivo di sistema; è una lunga storia 🙂
- La cartella /usr e le sue sottocartelle possono essere condivise con altri sistemi, in modo che abbiano accesso agli stessi programmi/file installati in un'unica posizione. Poiché /usr si trova in genere su un filesystem separato, non contiene i file binari necessari per portare il sistema online.
- /root è separato perché potrebbe essere necessario portare il sistema online senza montare altre directory che potrebbero trovarsi su partizioni/dischi rigidi/server separati
- Sì, /etc sta per “ecc.”. I file di configurazione per il sistema locale sono archiviati lì.
- /opt è un luogo dove puoi installare i programmi che scarichi/compili. In questo modo puoi tenerli separati dal resto del sistema, con tutti i file in un unico posto.
- /proc contiene informazioni sul kernel e sui processi in esecuzione
- /var contiene file di dimensioni variabili come log, posta, pagine Web, ecc.
Per accedere a un sistema, generalmente non hai bisogno di /var, /opt, /usr, /home; alcune delle directory potenzialmente più grandi su un sistema.
Uno dei miei preferiti, che alcune persone non usano, è /srv. È per i dati ospitati tramite servizi come http/ftp/samba. Ho visto /var usato molto per questo, che non è proprio il suo scopo.