Venendo dal mondo Windows, ho trovato la maggior parte della cartella nomi di directory per essere abbastanza intuitivi:
-
\Program Filescontiene 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 Datacontiene dati specifici dell'applicazione -
\Users\USER\Documentscontiene documenti appartenenti all'utente
-
-
\Windowscontiene file che appartengono al funzionamento di Windows stesso-
\Windows\Fontsmemorizza 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:
-
/bincontiene 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? -
/mediacontiene 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? -
/homecontiene 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? -
/libcontiene 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,/proce/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.