Directory principali su Linux

Directory

 

Ogni sistema operativo ha le sue cartelle principali, contenenti i file di sistema o file utente e ognuna di queste directory ha un suo scopo principale. Oggi vedremo insieme l'utilità di ognuna di queste cartelle.


INTRODUZIONE
In un sistema basato su Linux ne possiamo trovare svariate nella nostra directory root /, per vederle basta aprire un terminale e scrivere:

 

ls /

 

e avremo il seguente output:

 

mainFolder

 

In sostanza la directory principale è / che come detto poco fa si chiama “root”, essa, come si è potuto notare dall'output, si divide in altre sotto directory.

Ma procediamo con ordine e iniziamo a esaminare dalla prima cartella.


Bin
Questa cartella, come possiamo notare dando il comando:

 

ls /bin

 

contiene i programmi binari più comuni. Essa è solo un link alla cartella /usr/bin.


Boot
In questa directory troviamo il kernel e il bootloader con tutti i suoi file.
Questa è una delle più importanti, in quanto permette di avviare il sistema operativo.
Noi di Tux Maniacs, durante l'installazione del sistema operativo, consigliamo di mettere questa directory in una partizione a parte di dimensioni di almeno 500MB e di fare un backup utilizzando il comando dd in questo modo:

 

dd if=/partizione_boot_sdxy of=/file_di_backup

 

In modo tale che alla prima frittata del bootloader che facciamo, abbiamo un suo backup e quindi basterà solo ricopiarlo nella sua partizione utilizzando sempre l'utility dd, e fidatevi capita più spesso di quanto possiamo immaginare!
Per la cronaca il programma dd si trova nella diretory /bin.

Vi ricordo che il comando dd fa una copia bit a bit del file di input (if) nel file di output (of).


Dev
In questa directory sono presenti tutti i file che fanno da interfaccia all'hardware del nostro computer, ad esempio il nostro hard disk è identificato dal file “sda” e le sue partizioni sono sda1, sda2 e così via, quindi nel caso del backup della partizione di boot, andremo a fare una copia di questo file.

Proviamo a fare un esperimento.
L'output del terminale è preso dal file /dev/stdout, chiamato “standard output”. Se avete già programmato in C, questo file vi è famigliare, in quanto la funzione printf, per stampare a video, manda tutto a questo file, che a sua volta le stampa su terminale. Quindi se noi scriviamo:

 

echo "ciao mondo" > /dev/stdout

 

la stringa “ciao mondo” verrà stampata su terminale.


Etc
Questa è la cartella dei file di configurazione del sistema operativo, qui possiamo trovare ad esempio il file delle partizioni montante all'avvio /etc/fstab, quindi se vogliamo montare un nostro dispositivo all'avvio basta editare questo file.
Possiamo trovare anche il file con tutti gli utenti del sistema in /etc/passwd mentre le password (criptate ovviamente) le troviamo nel file /etc/shadow.
Se invece vogliamo far partire un programma all'avvio del sistema basta mettere uno script nella cartella /etc/init.d/.

Un'altro file interessante è /etc/hosts, qui ci sono salvati vari indirizzi ip con un loro alias, infatti aprendolo possiamo notare che all'indirizzo “127.0.0.1” c'è “localhost” ossia il nostro computer. Se da terminale diamo:

 

ping localhost

 

vedremo che inizierà a pingare il nostro computer! Quindi se il nome localhost non ci piace possiamo anche cambiarlo, ad esempio come qui sotto


hosts

 


Ora possiamo pingare il nostro computer digitando “ping mio-computer”.

 

Home
Questa è la directory più conosciuta, in quanto qui risiedono tutte le home directory degli utenti.
Anche per questa directory noi di Tux Maniacs consigliamo di creare una partizione a parte, in quanto più facile poi recuperare eventualmente i dati in caso di inaccessibilità al sistema.
All'interno della nostra home directory possiamo trovare anche dei file di configurazione come .bashrc, che viene letto ogni volta che noi apriamo una shell, in questo file ad esempio possiamo inserire degli alias oppure un qualche comando da far eseguire all'avvio della shell, per esempio se vogliamo che ci saluti basta aggiungere echo ciao! alla fine di questo file.
Possiamo trovare anche altri file di configurazione come ad esempio .bash_history che semplicemente memorizza tutti i comandi da noi eseguiti.


Lib
Qui, come si può intuire dal nome, si possono trovare tutte le librerie condivise del sistema operativo e usate da molti programmi, ad esempio quando installiamo qualche programma, è possibile che ci venga chiesto di installare anche delle librerie da cui esso dipende, e banalmente vengono installate all'interno di questa directory.


Lost+found
Non so voi, ma io mi sono sempre chiesto: ma a che diamine serve questa cartella? Beh, dopo qualche ricerca ho scoperto che quando qualche file si frigge a causa del disco, essi vengono recuperati e inseriti all'interno di questa directory.


Mnt o media
Quando noi colleghiamo qualche supporto esterno con l'usb, esso viene montato all'interno di questa cartella, quindi quando siamo all'interno di una cartella che sta dentro il nostro usb, siamo anche all'interno di questa directory.


Opt
Quando noi installiamo qualche software, ma non dai repository ufficiali, esso viene installato all'interno di questa directory, in modo tale da separarli da programmi installati dai reposirory ufficiali.


Proc
Qui sono presenti delle directory e dei file con informazioni sul sistema operativo, ad esempio se vogliamo vedere tutti i moduli del kernel caricati basta dare questo comando:

 

cat /proc/modules

 

Oppure se vogliamo vedere tutti i dispositivi montati sul computer basta dare:

 

cat /proc/mounts

 

Qui dentro possiamo trovare informazioni anche sui processi attualmente in esecuzione.


Root
Tra gli utenti abbiamo anche “root”, che è il più importante in quanto amministratore del sistema, e la sua home directory non è insieme alle altre, ma è nella directory /root. Non ha nulla di differente rispetto a una directory normale oltre che al nome stesso della cartella.

 

Sbin
Qui possiamo trovare file binari eseguibili, ma a differenza della cartella /bin, questi sono file binari del sistema.

 

Srv
Qui troviamo file che possono essere al servizio di altri sistemi. Non ci avremo a che fare molto spesso con questa directory.

Sys
In questa directory non troveremo altro che file di sistema con informazioni.

Tmp
Come in ogni sistema operativo non può certo mancare la directory dove inserire i file temporanei.

Usr
Questa è un'altra directory molto importante, dove ci possiamo trovare molti file e directory. Dando il comando

 

ls /usr

 

possiamo notare che sono presenti varie directory come ad esempio “bin”, questa è esattamente la cartella che contiene i file eseguibili delle directory /bin e /sbin illustrate prima. In sostanza se installiamo qualcosa è molto probabile che il file eseguibile finisca qui dentro.
Se programmate in C, allora date anche un'occhiata alla directory /usr/include, che contiene molti file header da poter usare nei propri programmi.

Qui troviamo anche un'altra directory che ci è famigliare ossia /usr/lib, che contiene esattamente i file che ha la directory /lib, infatti /lib non è altro che un collegamento a questa directory.

Nella directory /usr/local vengono inseriti tutti i programmi che non fanno parte della distribuzione, in sostanza programmi che andremo a installare in seguito.
In poche parole all'interno di /usr troveremo file e programmi che sono disponibili a tutti gli utenti.

 

Var
All'interno di questa directory troviamo ad esempio file di log o altri file variabili. Se avete un server, il vostro sito web lo inserirete nella directory /var/www.

Conclusioni
Ora sappiamo in generale a cosa servono e cosa c'è dentro alle principali directory del sistema operativo Linux, così la prossima volta non dobbiamo più impazzire per cercare un semplice file!

 

Fonti:
- Immagini Joel Garia;
- Cartelle e sistemi dei file;

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento