Conoscere la gerarchia del File System in Linux

La struttura del file system nei sistemi GNU/Linux non è immutabile e predefinita come nei sistemi operativi Windows. Tuttavia, al fine di costituire uno standard per assicurare una uniformità, nonché anche per esigenze di compatibilità tra le maggiori distribuzioni la Linux Standard Base (LSB), un insieme di standard per linux gestito attualmente da The Linux Foundation ha creato un standard, la Filesystem Hierarchy Standard (FHS), cui tutte le distribuzioni, almeno quelle maggiori sis tanno adeguando definisce le directory principali ed il loro contenuto nei sistemi operativi Linux e comunque Unix-like.

Di seguito si riporta una tabella riassuntiva, che non ha assolutamente pretese di esser esaustiva, con la quale è possibile farsi un’idea della gerarchia del file system di Linux. La tabella segue i dettami delle ultime specifiche, attualmente in vigore (l’ultima versione è stata emanata nel giugno 2015).

linux-file-system

Directory

Descrizione

/

Conosciuta/chiamata anche “root” La directory principale in cui il file system inizia. Nella maggior parte dei casi la directory root contiene solo le sottodirectory. Essa viene montata all’avvio di Linux in sola lettura e nessuno degli utenti, tranne l’amministratore (utente root, aka supeuser) può effettuarci ordinariamente operazioni di lettura e scrittura.

/boot

Dove risiedono il kernel ed i files del bootloader. Il kernel viene identificato come vmlinuz, che dovrebbe essere un collegamento simbolico.

/etc

La directory /etc contiene i file di configurazione per il sistema. Tutti i file in /etc dovrebbero essere solo file di testo. Altre sottodirectory importanti:

/etc /passwd

Il file passwd contiene le informazioni essenziali per ogni utente.

/etc/fstab

Il file fstab contiene una tabella di dispositivi che vengono montati all’avvio del sistema. Trattasi solamente di unità disco non rimovibili.

/etc/hosts

Questo file elenca i nomi di rete host e indirizzi IP che sono intrinsecamente noti al sistema.

/etc/init.d

Questa cartella contiene gli script che iniziano vari servizi di sistema in genere al momento dell’avvio.

/bin

La directory /bin ha i programmi essenziali che il sistema ha bisogno per funzionare.

/sbin

La directory /sbin contengono programmi essenziali per l’amministrazione del sistema, soprattutto per l’utilizzo da parte del superuser.

/usr

La directory /usr contiene una sotto gerarchia di cartelle, che fanno riferimento ai programmi e alle riservate agli utenti.

Alcuni sottocartelle importanti:

/usr/include

qui si trovano i file d’intestazione utilizzati dal compilatore C.

/usr/bin

contiene le applicazioni per gli utenti del sistema installate in modo predefinito dalla distribuzione.

usr/sbin contengono programmi essenziali per l’amministrazione del sistema, ma che non sono essenziali per l’avvio dello stesso.

/usr/local e le sue sottodirectory (es. usr/local/share, /usr/local/bin, etc) vengono utilizzati per l’installazione di software e altri file per l’uso sulla macchina locale (c.d. installazione in locale).

Che cosa questo veramente significhi è che il software che non fa parte della distribuzione ufficiale, ossia non presente nel sistema ad installazione conclusa sarà localizzato qui.

/usr/src

Contiene i sorgenti del kernel. Se avete installato il kernel usando il sorgente con cui esso viene distribuito, troverete l’intero codice sorgente del kernel Linux qui.

/usr/share

Contiene alcuni file richiamati dalle applicazioni di sistema, che sono condivisi nello stesso anche da parte di tutti gli utenti.

A sua volta contiene:

 /usr/share/X11

File di supporto per il sistema X Windows

/usr/ share/dict

Dizionari per il correttore ortografico. (es. ispell)

/usr/ share/doc

Vari files di documentazione in diversi formati.

/usr/share/man

Le pagine del manuale sono conservate qui.

/var

La directory /var contiene i file che cambiano quando il sistema è in esecuzione. Al suo interno sono comprese:

/var/log

Directory che contiene i file di log. Questi vengono aggiornati quando il sistema è in esecuzione o vengono eseguiti i programmi. Si consiglia di visualizzare i file in questa directory di volta in volta, per monitorare la salute del vostro sistema, e per capire se c’è qualcosa che non va’.

/var/spool

Questa directory viene utilizzata per contenere i file che sono in coda per qualche processo, come ad esempio messaggi di posta e lavori di stampa. Quando la posta di un utente arriva per primo sul sistema locale (ammesso che abbiate posta locale), i messaggi vengono prima memorizzati in /var/spool/mail

 

/lib

Le librerie condivise (l’equivalente alle .dll di windows) sono conservate qui. In linux esse hanno l’estensione .so (shared object, ossia “oggetto condiviso”)

/home

/home è la cartella personale degli utenti dove possono tenere i loro files. In generale, questo è l’unico posto nel quale è consentito agli utenti di scrivere i propri files liberamente, senza particolari autorizzazioni.

/root

Questa è la directory home del superuser.

/tmp

/tmp è una directory utilizzata dai programmi possono scrivere i loro file temporanei.

/dev

La directory /dev è una directory speciale, in quanto in realtà non contiene i file nel senso usuale. Piuttosto, contiene i dispositivi che sono disponibili al sistema, c.d. dispositivi non rimovibili a caldo. (ad esempio dischi rigidi) Convenzionalmente ogni dispositivo è rappresentato con una determinata sigla, per esempio:

/dev/fd0

è la prima unità disco floppy,

/dev/sda identifica un disco rigido EIDE/SATA.

/proc

La directory /proc è una cartella che non contiene files. In realtà, questa directory in realtà non esiste affatto. Essa viene utilizzata da Linux come un file system virtuale.

Infatti in essa ci sono un gruppo di voci numerate in questa directory che corrispondono a tutti i processi in esecuzione sul sistema. Inoltre, ci sono una serie di voci che permettono l’accesso alla configurazione attuale del sistema. Di solito molte di queste voci possono essere visualizzate.

Provate la visualizzazione /proc/cpuinfo.Questa voce vi dirà quello che il kernel pensa della CPU.

/media

/mnt

La directory /media, viene utilizzata in modo speciale. Essa infatti viene usata come punto di mount per i dispositivi rimovibili (es. drivers USB, lettori CD, etc.)

Essa viene utilizzata prede-finitamente come punto di montaggio dei dispositivi rimovibili, in tutte le moderne distribuzioni, soprattutto quelle orientate ad un uso desktop. Ad esempio il mount point di un pen drive USB corrisponderà ad esempio, a /media/mnt/xxxx. (ove xxx è la cartella che rappresenta il contenuto della penna).

Sui sistemi che richiedono montaggio manuale di dispositivi rimovibili, nella directory /mnt rappresenta la soluzione ideale per il montaggio di questi dispositivi temporanei. Che in questo caso saranno rappresentate da directory come /mnt/floppy e /mnt/cdrom.

Per vedere quali dispositivi e punti di montaggio sono utilizzati attualmente dal sistema, utilizzare il comando mount

 

/opt

Solitamente contiene i programmi installati dagli utenti o software di terze parti. (opt sta per optional, cioè ivi vengono installati convenzionalmente tutti i file/applicazioni non essenziali per il funzionamento del sistema).

Per quanto riguarda i dispositivi (dischi rigidi, unità CD-ROM, penne USB, etc) occorre fare un piccola precisazione in Linux (come Unix), i dispositivi sono trattati come file. È possibile leggere e scrivere i dispositivi come se fossero dei file. Il modo attraverso il quale un dispositivo viene collegato ai sistemi GNU/Linux è l’utilizzo del comando mount, che associa un certo dispositivo ad un cosi detto mount ponit (ossia punto di montaggio) che rappresenta una cartella che identifica il dispositivo ed il suo contenuto.

All’avvio il sistema legge un elenco di istruzioni di montaggio contenute nel file /etc/fstab, che descrive quale dispositivo è montato corrispondentemente al mount point presente nella struttura del filesystem. Questo si applica ai dischi rigidi, ma pure ai dispositivi che sono considerati temporanei, come i CD-ROM e dischi floppy. Dato che questi sono rimovibili, possono anche non rimanere montati tutto il tempo. La procedura di smontaggio può essere fatta con un comando dedicato: umount.
Seguiteci anche su Facebook, Google Plus, Tumblr, Twitter e Telegram, per restare sempre in contatto con noi e con le nostre guide.



Cerca

Seguici

Live da Facebook
Live da Twitter
Seguici su Telegram
Canale InsiDevCode Telegram