Proveniente dal mondo Windows, ho trovato la maggior parte dei nomi delle directory delle cartelle 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
archivia i file dei caratteri (sorpresa!)\Windows\Temp
è una directory temporanea globale
eccetera. Anche se non avevo idea di cosa facessero queste cartelle, avrei potuto indovinare con buona precisione i loro nomi.
Ora sto dando una buona occhiata a Linux e mi sto confondendo su come orientarmi nel file system.
Per esempio:
/bin
contiene file binari. Ma così fanno/sbin
,/usr/bin
,/usr/sbin
, e probabilmente più che io non so. Quale è quale?? Qual'è la differenza tra loro? Se voglio fare un binario e metterlo da qualche parte in tutto il sistema, dove lo metto?/media
contiene file system multimediali esterni. Ma anche così/mnt
. E nessuno dei due contiene nulla sul mio sistema al momento; tutto sembra essere dentro/dev
. Qual è la differenza? Dove sono le altre partizioni sul mio disco rigido, come leC:
eD:
che erano in Windows?/home
contiene i file e le impostazioni dell'utente. È molto intuitivo, ma poi cosa dovrebbe andare/usr
? E come/root
mai è ancora separato, anche se è un utente con file e impostazioni?/lib
contiene librerie condivise, come le DLL. Ma anche così/usr/lib
. Qual è la differenza?Che cosa è
/etc
? Significa davvero "et cetera" o qualcos'altro? Che tipo di file dovrebbe andare lì - globale o locale? È un tuttofare per cose che nessuno sapeva dove mettere o c'è un caso d'uso particolare per questo?Che cosa sono
/opt
,/proc
e/var
? Cosa rappresentano e a cosa servono? Non ho visto nulla di simile in Windows *, e non riesco proprio a capire a cosa potrebbero servire.
Se qualcuno può pensare ad altri luoghi standard che potrebbero essere utili da conoscere, sentiti libero di aggiungerlo alla domanda; speriamo 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.
C:\Program Files
, C:\ProgramData
, %HOME%\AppData\Local
, %HOME%\AppData\LocalLow
, C:\Windows\SystemApps
... Tutti gli esempi in cui si possono trovare gli eseguibili in Windows. E non parlerò nemmeno dei file di configurazione e del registro, non voglio essere ancora più depresso. PS: lavoro principalmente su Windows.