/ (directory root)
|_ /home
|_ /usr
|_ /lib
|_ /etc
|_ /tmp
|_ /var
|_ /boot
|_ /dev
|_ /mnt
|_ /proc
|_ /opt
Directory / : la directory radice.
La root directory ( / ) è la directory delle directories : in / potrete trovarvi praticamente tutto, navigare in / significherebbe esplorare qualsiasi parte del sistema. Nella directory / troverete altre directories di sistema, ad esempio /usr, o ancora /lib, o ancora /proc… andando avanti nell’utilizzo del vostro sistema operativo, noterete che quasi nessuna applicazione crea altre cartelle direttamente in /: leggendo ancora, capirete dove vanno a finire i files che voi installate, e capirete che nulla viene copiato direttamente in / per una pura e semplice questione d’ordine.
La directory / è accessibile digitando cd / da terminale, oppure scrivendo / nella barra degli indirizzi del nostro file manager. Vediamo ora chi può fare cosa sulla root:
malefika@malefika-laptop:~$ stat /
File: `/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 806h/2054d Inode: 2 Links: 22
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-06-15 00:44:47.589780828 +0200
Modify: 2010-05-18 00:33:55.055206962 +0200
Change: 2010-05-18 00:33:55.055206962 +0200
Vediamo un po’ di tradurre cosa c’è scritto:le prime due linee ci dicono che il file si chiama /, è “grande” 4096 bytes (come ogni directory) e occupa 8 blocchi. E’ presente sul device che si chiama 806h/2054d (un modo come un altro per intendere il mio disco rigido), è collegata all’i-node 2 e ha in sè 20 directories (il numero di links meno due, si escludono dot – cartella corrente e dot dot – cartella padre).
I permessi associati ad essa sono d rwx r-x r-x : la d sta per directory, i primi trè rwx sono i permessi di lettura,scrittura ed esecuzione per l’utente proprietario, i successivi r-x sono i permessi di lettura ed esecuzione per il gruppo, e successivamente appaiono i permessi di lettura ed esecuzione per gli altri. Ciò ci dice che chiunque può leggere e scrivere su / (permessi di lettura ed esecuzione), ma soltanto il proprietario potrebbe eliminarla (permessi di scrittura). Il proprietario di / è l’utente con identificativo 0, quindi il root, e il gruppo proprietario è il gruppo con identificativo 0, il gruppo root.
Riassunto in trè parole, la directory / è alla base del sistema.
Parlando in termini Windowsiani, a livello più o meno logico / potrebbe essere il corrispettivo di C:\
Directory /home: le directories utente.
Ogni utente ha la sua directory personale (la cosiddetta home directory utente), e tutte le directories personali si trovano, per default, nella directory /home (che è modificabile o eliminabile soltanto dall’utente root). Se, ad esempio, il vostro nome utente è malefika, la vostra directory personale sarà /home/malefika.
In ogni directory personale saranno presenti le directories Documenti, Immagini, Desktop e via discorrendo di ciascun utente.
Ogni directory personale è di proprietà dell’utente: i permessi sulle directories personali variano di sistema in sistema, in generale però queste possono essere lette,modificate e cancellate dall’utente proprietario (e dall’utente root, che può tutto) e visualizzate in sola lettura da tutti gli altri. Discorso a parte va fatto per la directory utente del root, presente direttamente in /root, a cui solo e soltanto il root può accedere.
malefika@malefika-laptop:~$ stat /home
File: `/home'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 806h/2054d Inode: 131076 Links: 4
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-06-15 09:41:32.593622661 +0200
Modify: 2010-06-15 09:41:17.433622701 +0200
Change: 2010-06-15 09:41:17.433622701 +0200
malefika@malefika-laptop:~$ stat /home/malefika
File: `/home/malefika'
Size: 12288 Blocks: 24 IO Block: 4096 directory
Device: 806h/2054d Inode: 131487 Links: 59
Access: (0755/drwxr-xr-x) Uid: ( 1000/malefika) Gid: ( 1000/malefika)
Access: 2010-06-15 08:53:17.912589362 +0200
Modify: 2010-06-15 08:53:16.258834298 +0200
Change: 2010-06-15 08:53:16.258834298 +0200
malefika@malefika-laptop:~$ stat /root
File: `/root'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 806h/2054d Inode: 393222 Links: 11
Access: (0700/drwx------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-04-29 14:28:14.000000000 +0200
Modify: 2010-05-31 23:31:40.360829028 +0200
Change: 2010-05-31 23:31:40.360829028 +0200
Windowsianamente parlando, la directory /home è una sorta di C:\Documents And Settings o, seguendo l’architettura di Windovs Vista/Seven, C:\Users.
La directory /usr: il jolly.
Qui c’è da fare un discorso un po’ più articolato. Nella directory /usr ci sono – per semplificare molto il discorso – i files di sistema che possono essere condivisi in un sistema distribuito tramite NFS (tante macchine che usano lo stesso sistema operativo), e tutte le informazioni relative ai programmi installati sul sistema (nonchè i programmi stessi) :
* in /usr/bin potremo trovare i files binari (le applicazioni)
* in /usr/lib potremo trovare i files di libreria per il funzionamento dei programmi installati
* in /usr/games potremo trovare tutti i files necessari al funzionamento dei giochi
* in /usr/include potremo trovare gli header di libreria (per la compilazione delle applicazioni)
* in /usr/share troveremo, di solito, i dati relativi alle varie applicazioni, tra cui le pagine di manuale (una specie di C:\Programmi\File Comuni)
* in /usr/sbin troveremo, di solito, i programmi che permettono di agire sul sistema soltanto da superutente
* in /usr/src troveremo i sorgenti dei programmi (anche se, di norma, vi si trovano soltanto i sorgenti del kernel)
Per spiegarvi a cosa serve /usr/local, però, devo andare un po’ indietro nel tempo: prima non esistevano i pacchetti autoinstallanti per linux, e tutte le installazioni andavano eseguite con un processo di compilazione manuale. Aggiornare un pacchetto spesso era piuttosto pericoloso perchè si sarebbe potuti incorrere in errori: nella directory /usr/local (quasi identica a /usr) venivano spostati i pacchetti che non dovevano essere aggiornati tramite rete per nessuna ragione, nonchè tutto ciò che non poteva (nè doveva) essere condiviso con altre macchine: praticamente qualsiasi cosa dovesse essere installata soltanto localmente e non aggiornata.
Ah, piccolo appunto: tutti gli eseguibili presenti in /usr/bin, /usr/local/bin, o /usr/sbin sono eseguibili da terminale senza specificare il path assoluto.
La directory /usr (e tutte le sue sottodirectory) sono accessibili da tutti, ma modificabili soltanto dall’utente root.
In pratica, la directory /usr è qualcosa del tutto simile a C:\Windows.
Le directories /lib, /etc, /tmp, /var e /boot
La directory /lib contiene, in pratica, un’altra parte delle librerie di sistema.La directory /etc , invece, contiene tutte le impostazioni relative agli applicativi di sistema (ad esempio la configurazione del server X, la configurazione del desktop manager, la configurazione di rete e firewall, la configurazione del controllo energetico e via dicendo). La directory /tmp è quella atta a memorizzare tutti i files temporanei. Nella directory /var vengono scritte le informazioni generate dai programmi in esecuzione, come ad esempio informazioni su data di inizio e fine esecuzione, dump di crashes, logs e quant’altro (celeberrima è la directory /var/log). Nella directory /boot, invece, sono presenti tutti i files relativi all’avvio del sistema. Tutte le directories sovracitate, di default, sono visualizzabili da tutti e modificabili soltanto dal superutente. Un consiglio personale: non metteteci le mani a meno che non sappiate esattamente cosa state facendo, pena seri problemi (o addirittura l’inutilizzabilità) del sistema.
La directory /dev
Come vi ho detto all’inizio dell’articolo, in Linux anche le periferiche hardware vengono viste come files: files speciali, ma pur sempre files. Ed è proprio nella directory /dev che potremo trovare i files relativi a tutte le periferiche hardware che potrebbero essere presenti sul sistema. In /dev troveremo files quali tty – i terminali grafici, cdrom – il lettore cd, hdX – gli hard disks, audio – la/le periferica/e audio, sda – i dischi SCSI , ram – i ramdisks, input – le periferiche quali tastiere e mouse e tanti altri tipi di files ancora!
Celeberrimo è il /dev/null, un file speciale che rappresenta un…”dispositivo nullo” , e ha la particolarissima caratteristica di fare l’esatto contrario dell’operazione di memorizzazione: memorizzare qualsiasi cosa su /dev/null significa perdere quella cosa.
La directory è visualizzabile da tutti ma modificabile soltanto dall’utente root. Solito consiglio: non metteteci le mani.
La directory /mnt: le periferiche di memorizzazione
Quando volete visualizzare,ad esempio, il contenuto di una chiavetta USB, di un CD/DVD o ancora di un hard disk che non sia quello su cui è presente / …allora, sotto Linux, sarete costretti a montare la periferica. Questa è un’operazione che prima andava necessariamente fatta a mano con i privilegi di root, e, per ogni periferica montata, solitamente si creava una sottodirectory nella directory /mnt: /mnt era il posto da cui accedere a tutte le periferiche montate sul sistema (una sorta di Risorse Del Computer in Windows, vah, molto generalizzato). La maggior parte delle distribuzioni oggi permettono di utilizzare l’automount e di montare quindi automaticamente le periferiche connesse al sistema: sebbene la cartella /mnt sia comunque rimasta, queste distribuzioni – di norma – caricano le periferiche montate altrove (ad esempio Ubuntu le carica in /media).
La directory /proc
Ehehe…e io come vi spiego cos’è la directory proc senza scendere nel tecnico? :) Mettiamola così: ogni processo in esecuzione sulla nostra linuxbox occupa chiaramente delle risorse di sistema (periferiche di input e output, zone di memoria, files e quant’altro), e Linux, per gestire tali processi, usa una sorta di filesystem che,però, non prende spazio sulla memoria di massa ma è totalmente caricato in ram: questo filesystem si materializza proprio nella directory /proc. Infatti, navigando un po’ in quella cartella, scoprirete tante directory quanti sono i processi correntemente in esecuzione sul nostro sistema (alcuni nomi directory sono i nomi dei processi, altri possono esssere pid). Per visualizzare le informazioni contenute in ogni sottodirectory, dovrete essere utenti root. Solita raccomandazione: non toccate nulla lì dentro.
Ultima ma non di minore importanza: la directory /opt
La directory /opt, in teoria, serve per l’installazione dei “grandi programmi”, quelli che prevedevano molti files a loro carico e che non hanno bisogno soltanto di un file binario (o pochi altri files sparsi per il sistema) per funzionare, ma di moltissimi files: per preservare un certo ordine nel sistema, oltre che per evitare fastidiose e lunghe ricerche, si preferisce installare questi programmi di grandi dimensioni, con tutti i loro files annessi e connessi, in una sottodirectory dedicata di /opt. La directory /opt viene anche utilizzata come directory di installazione dei programmi non gestiti dal gestore di pacchetti della nostra distribuzione… o di norma dovrebbe essere così. Anche /opt può essere vista, in parte, un po’ come la directory C:\Programmi.
Queste sono le cose base da sapere per affacciarsi con convinzione al mondo Linux. Spero di essere stato chiaro, e per ogni ulteriore chiarimento potrete sempre contattarmi! :)
Articolo tratto da qui
0 commenti:
Posta un commento