Avanti Indietro Indice

4. Lezione 4 - Una gita guidata

È il momento di intraprendere la nostra gita. La tabella seguente fornisce una lista di alcuni luoghi interessanti da esplorare. Questa lista non è esaustiva, ma si dimostrerà un'avventura interessante. Per ognuna delle directory elencate sotto, dare i comandi seguenti:

Di seguito sono elencate alcune delle directory più interessanti e il loro contenuto:

DirectoryDescrizione
/

La directory root dove inizia il file system. Nella maggior parte dei casi la directory root contiene solo sottodirectory.

/boot

Questa directory è dove sono tenuti il kernel di Linux e il "boot loader". Il kernel è un file chiamato vmlinuz.

/etc

La directory /etc contiene i file di configurazione per il sistema. Tutti i file in /etc dovrebbero essere file di testo. Tra questi file, quelli interessanti sono:

/etc/passwd

Il file passwd contiene le informazioni essenziali per ogni utente. È in questo file che gli utenti sono definiti.

/etc/fstab

Il file fstab contiene una tabella di dispositivi che vengono montati all'avvio del sistema. Questo file definisce i drive dei dischi.

/etc/hosts

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

/etc/init.d

Questa directory contiene gli script che fanno partire vari servizi di sistema normalmente all'avvio del sistema.

/bin, /usr/bin

Queste due directory contengono la maggior parte dei programmi per il sistema. La directory /bin contiene i programmi essenziali richiesti dal sistema per funzionare, mentre /usr/bin contiene le applicazioni per gli utenti del sistema.

/sbin, /usr/sbin

Le directory sbin contengono i programmi per l'amministrazione del sistema, in maggior parte usati dal super-utente.

/usr

La directory /usr contiene una varietà di cose che supportano le applicazioni degli utenti. Alcune sottodirectory di rilievo:

/usr/share/X11

File di supporto per il sistema X Window

/usr/share/dict

I dizionari per il controllo ortografico. Scommetto che non sapevate che Linux avesse il controllo ortografico. Vedi look e aspell.

/usr/share/doc

Vari file di documentazione in numerosi formati.

/usr/share/man

Le pagine di manuale sono tenute in questa directory.

/usr/src

File del codice sorgente. Se avete installato il pacchetto del codice sorgente del kernel, in questa directory troverete l'intero codice sorgente del kernel di Linux.

/usr/local

/usr/local e le sue sottodirectory sono usate per l'installazione di software e altri file per l'uso sulla macchina locale. Ciò vuol dire in realtà che il software che non è parte della distribuzione ufficiale (che usualmente \ messo in /usr/bin), viene messo in questa directory.

Quando trovate dei programmi interessanti da installare sul vostro sistema, dovrebbero essere installati in una delle directory di /usr/local. Spesso, la directory da scegliere è /usr/local/bin.

/var

La directory /var contiene file che cambiano mentre il sistema è in esecuzione. Questa include:

/var/log

Directory che contiene i file di registro [file con estensione .log], che vengono aggiornati mentre il sistema è in esecuzione. Per monitorare la salute del sistema, di tanto in tanto dovreste consultare i file di questa directory.

/var/spool

Questa directory è usata per contenere i file che sono messi in coda per alcuni processi, come i messaggi di mail e i job di stampa. Quando una mail di un utente arriva sul sistema locale (assumendo che si abbia una mail locale), i messaggi sono inizialmente memorizzati in /var/spool/mail.

/lib

Le librerie condivise (simili alle DLL di quell'altro sistema operativo) sono tenute in questa directory.

/home

/home è la directory in cui gli utenti tengono i loro lavori personali. In generale, questo è l'unico posto dove è dato il permesso di scrittura agli utenti. Ciò rende tutto più ordinato e pulito :-)

/root

Questa è la home directory del super-utente.

/tmp

/tmp è una directory in cui i programmi possono scrivere i loro file temporanei.

/dev

La directory /dev è una directory speciale, in quanto non contiene in realtà file nel senso usuale. Piuttosto, contiene dispositivi disponibili al sistema. In Linux (come in Unix), i dispositivi sono trattati come file. Si può leggere e scrivere sui dispositivi come se fossero dei file. Per esempio /dev/fd0 è il primo lettore dei dischi floppy, /dev/sda (/dev/hda su sistemi più vecchi) è il primo disco fisso. Tutti i dispositivi riconosciuti dal kernel sono rappresentati in questa directory.

/proc

Anche /proc è una directory speciale. Questa directory non contiene file. A dire il vero, la stessa directory non esiste realmente, è interamente virtuale. La directory /proc contiene tanti piccoli spioncini per sbirciare dentro il kernel stesso. In questa directory c'è un gruppo di voci identificate da un numero, che corrispondono a tutti i processi in esecuzione sul sistema. Inoltre, ci sono numerose voci identificate da un nome che permettono l'accesso all'attuale configurazione del sistema. Molte di queste voci possono essere visualizzate. Provate a visualizzare /proc/cpuinfo. Questa voce vi informerà di come il kernel "vede" la propria CPU.

/media, /mnt

Infine, eccoci a /media, una directory normale che è usata in un modo speciale. La directory /media è usata per i punti di mount. Come abbiamo imparato nella lezione 2 ( Navigazione), i differenti dispositivi fisici di memorizzazione (come i dischi fissi) sono innestati all'albero del file system in varie posizioni. Questo processo di innestare un dispositivo all'albero del file system è chiamato montaggio. Affinché un dispositivo sia disponibile, prima deve essere montato.

Quando il sistema si avvia, legge una lista di istruzioni di montaggio nel file /etc/fstab, che descrive quale dispositivo è montato al relativo punto di mount nell'albero delle directory. Questo riguarda i dischi fissi, ma si possono avere anche dispositivi che sono considerati temporanei, come CD-ROM, thumb drives e floppy disk. Dato che questi dispositivi sono rimovibili, non rimangono sempre montati. La directory /media è usata dai meccanismi di montaggio automatico dei dispositivi presente nelle moderne distribuzioni Linux orientate al desktop. Su sistemi che richiedono un montaggio manuale di dispositivi rimovibili, la directory /mnt fornisce un posto conveniente per montare questi dispositivi temporanei. Spesso vedrete le directory /mnt/floppy e /mnt/cdrom. Per vedere quali dispositivi e mount point sono usati, digitate mount.

Directory interessanti e il loro contenuto

4.1 Una strana specie di file...

Durante la nostra gita avrete probabilmente notato una strana specie di voci di directory, in particolare nelle directory /boot e /lib. Producendo una lista con il comando ls -l, dovreste vedere qualcosa di simile a questo:

   lrwxrwxrwx     25 Jul  3 16:42 System.map -> /boot/System.map-2.0.36-3
   -rw-r--r-- 105911 Oct 13  1998 System.map-2.0.36-0.7
   -rw-r--r-- 105935 Dec 29  1998 System.map-2.0.36-3
   -rw-r--r-- 181986 Dec 11  1999 initrd-2.0.36-0.7.img
   -rw-r--r-- 182001 Dec 11  1999 initrd-2.0.36.img
   lrwxrwxrwx     26 Jul  3 16:42 module-info -> /boot/module-info-2.0.36-3
   -rw-r--r--  11773 Oct 13  1998 module-info-2.0.36-0.7
   -rw-r--r--  11773 Dec 29  1998 module-info-2.0.36-3
   lrwxrwxrwx     16 Dec 11  1999 vmlinuz -> vmlinuz-2.0.36-3
   -rw-r--r-- 454325 Oct 13  1998 vmlinuz-2.0.36-0.7
   -rw-r--r-- 454434 Dec 29  1998 vmlinuz-2.0.36-3

Notate i file System.map, module-info e vmlinuz. Avete visto la strana notazione dopo il nome dei file?

Questi tre file sono chiamati collegamenti simbolici. I collegamenti simbolici sono uno speciale tipo di file che punta ad un altro file. Con i collegamenti simbolici è possibile avere nomi multipli per un singolo file. Ecco come funziona: ogni volta che al sistema è dato un nome di file che è un collegamento simbolico, esso viene reso corrispondente al file a cui sta puntando.

A che cosa serve? Questa funzionalità è molto utile. Considerate la lista delle directory precedente (che è la directory /boot di un vecchio sistema Red Hat 5.2). Questo sistema ha installate diverse versioni del kernel Linux, e lo si può vedere dai file vmlinuz-2.0.36-0.7 e vmlinuz-2.0.36-3. Questi nomi di file indicano che entrambe le versioni 2.0.36-0.7 e 2.0.36-3 sono installate. Siccome i nomi dei file contengono la versione, è facile vedere le differenze quando si fa la lista dei file nella directory. Tuttavia, questo potrebbe creare confusione ai programmi che dipendono da un nome fisso per il file del kernel. Questi programmi potrebbero aspettarsi che il kernel sia chiamato semplicemente "vmlinuz". Questo è il bello del collegamento simbolico: attraverso la creazione di un collegamento simbolico chiamato vmlinuz, che punta a vmlinuz-2.0.36-3, si risolve il problema.

Per creare collegamenti simbolici, usate il comando ln.


Avanti Indietro Indice