Chi arriva da Windows cerca le lettere delle unità, C: e D:, e non le trova. Su Linux tutto parte da un'unica radice, /, e ogni disco, chiavetta o partizione viene «appeso» in qualche punto di questo albero. La disposizione delle cartelle segue una convenzione, il Filesystem Hierarchy Standard (FHS), rispettata a grandi linee da quasi tutte le distribuzioni. Conoscerla significa sapere dove cercare una configurazione, un log o un programma senza tirare a indovinare.
Una sola radice, molti punti di montaggio
Quando colleghi una chiavetta USB, il sistema la rende accessibile in una cartella, per esempio /media/anna/CHIAVETTA. Quella cartella si chiama punto di montaggio. Lo stesso vale per un secondo disco interno, che potrebbe essere montato in /data, o per una cartella di rete. Per l'utente è tutto un unico albero: è il kernel a sapere che sotto /data i file stanno fisicamente su un altro dispositivo.
Il comando findmnt o il più semplice df -h mostrano cosa è montato e dove.
Le cartelle principali
| Cartella | Contenuto |
|---|---|
/etc |
file di configurazione del sistema |
/home |
cartelle personali degli utenti |
/root |
cartella personale dell'amministratore |
/usr |
programmi, librerie e documentazione installati |
/var |
dati variabili: log, cache, code di stampa, database |
/tmp |
file temporanei, spesso svuotati al riavvio |
/boot |
kernel e file necessari all'avvio |
/dev |
file speciali che rappresentano i dispositivi |
/proc e /sys |
finestre virtuali sullo stato del kernel |
/opt |
software di terze parti installato come pacchetto unico |
/mnt e /media |
punti di montaggio temporanei e per supporti rimovibili |
/etc: dove vive la configurazione
Quasi tutta la configurazione del sistema è in /etc, in file di testo leggibili. Qualche esempio:
/etc/hostnamecontiene il nome della macchina;/etc/hostsassocia nomi a indirizzi IP prima ancora del DNS;/etc/fstabelenca i filesystem da montare all'avvio;/etc/passwde/etc/groupdescrivono utenti e gruppi, mentre le password cifrate stanno in/etc/shadow, leggibile solo dall'amministratore;- le cartelle come
/etc/ssh/o/etc/nginx/raccolgono la configurazione dei singoli servizi.
Poiché è tutto testo, una buona abitudine è fare una copia di un file prima di modificarlo, per esempio sudo cp /etc/fstab /etc/fstab.bak. Un errore in /etc/fstab può impedire l'avvio, e avere la versione precedente a portata di mano accorcia molto il recupero.
/usr: i programmi installati
Nonostante il nome ricordi «user», /usr contiene il software di sistema in sola lettura: /usr/bin gli eseguibili, /usr/lib le librerie, /usr/share documentazione, icone e dati condivisi. Su molte distribuzioni recenti /bin e /sbin sono semplici collegamenti a /usr/bin e /usr/sbin, una semplificazione chiamata «usr merge».
C'è poi /usr/local, riservata al software installato a mano dall'amministratore, al di fuori del gestore di pacchetti. Tenere separate le due cose evita che un aggiornamento sovrascriva un programma compilato in proprio e viceversa.
/var: ciò che cambia nel tempo
In /var finiscono i dati che crescono e variano durante il funzionamento:
/var/logcontiene i registri di sistema e dei servizi;/var/cachele cache, comprese quelle dei pacchetti scaricati;/var/liblo stato persistente dei programmi, per esempio i database di molti servizi;/var/spoolle code di lavori in attesa, come stampe e posta.
Quando un server esaurisce lo spazio su disco, /var è il primo posto da controllare: un log che cresce senza rotazione o una cache mai ripulita sono cause frequenti.
/home e i file nascosti
Ogni utente ha una cartella in /home. Dentro, oltre a Documenti e Scaricati, ci sono molti file e cartelle nascosti, con il nome che inizia con un punto: .bashrc per la shell, .config/ per le impostazioni dei programmi, .local/share/ per i loro dati, .cache/ per le cache. Quando un'applicazione si comporta in modo strano, rinominare la sua cartella in .config e riavviarla è spesso il modo più rapido per verificare se il problema sta nella configurazione dell'utente.
Tenere /home su una partizione separata permette di reinstallare il sistema senza toccare i dati personali.
/dev, /proc e /sys: file che non sono file
In /dev ogni dispositivo è rappresentato da un file: /dev/sda è il primo disco SATA o USB, /dev/nvme0n1 il primo SSD NVMe, /dev/null un pozzo senza fondo in cui scartare l'output indesiderato.
/proc e /sys non occupano spazio su disco: il kernel genera il loro contenuto al momento della lettura. cat /proc/cpuinfo descrive il processore, cat /proc/meminfo la memoria, e ogni processo ha una cartella /proc/PID con informazioni sul suo stato. Molti comandi di diagnostica, come ps e free, leggono proprio da qui.
Cosa non toccare
Alcune regole prudenti: non cancellare file in /usr, /boot o /var/lib per liberare spazio, perché appartengono ai pacchetti e al loro stato; non modificare a mano /etc/shadow; non scrivere direttamente su un file in /dev che rappresenta un disco, a meno di sapere esattamente cosa si sta facendo. Per liberare spazio esistono strumenti appositi, come la pulizia della cache del gestore di pacchetti e la rotazione dei log.
In sintesi
- Linux ha un'unica radice
/; dischi e chiavette vengono montati in cartelle dell'albero. - La configurazione sta in
/etc, i programmi in/usr, i dati variabili e i log in/var. /usr/locale/optospitano il software installato fuori dal gestore di pacchetti./proce/syssono generati dal kernel e mostrano lo stato del sistema in tempo reale.- Prima di modificare un file in
/etcfanne una copia; non cancellare file di sistema per fare spazio.