Home > GNU/Linux, newbie > Guida per principianti a GNU/Linux: navigare nelle directory

Guida per principianti a GNU/Linux: navigare nelle directory

Copyright © 2004 Anna F. Leopardi | CC-by-nc-sa

Copyright © 2004 Anna F. Leopardi | CC-by-nc-sa

Una cosa che spesso i newbie del terminale non riescono a comprendere è la logica delle directory. Ad esempio una guida dice di “scompattare il file e spostarsi nella directory creata” e vanno nel panico. Oppure scaricano un file, lo mettono sulla Scrivania, poi aprono il terminale, danno il comando, ma si stupiscono perché non funziona.

Eppure non c’è nulla di più semplice. Per capire come funziona il tutto, basta rifarsi a quello che di norma facciamo quando apriamo il nostro file manager grafico (Nautilus per GNOME, Konqueror o Dolphin per KDE, Thunar per XFCE, ecc.)

Supponiamo di voler accedere alla foto del/della nostro/a fidanzato/a, localizzata nella cartella “Amore”, dentro la cartella “Immagini”. Apriamo Nautilus che di default si posiziona nella cartella home del nostro utente. Poi clicchiamo su “Immagini” e quindi su “Amore”. E lì troveremo la foto che ci interessa.

Lo stesso vale per il terminale: apriamo il terminale e siamo nella nostra home. Quindi diamo:

cd Immagini

e poi

cd Amore

per vedere i file contenuti diamo

ls

Insomma la logica è proprio la stessa.

E se vogliamo tornare indietro? Basta dare

cd ..

e saliamo alla directory superiore (cioè Immagini). Se diamo:

cd ..

una seconda volta torneremo alla directory home.

Se vogliamo andare sulla Scrivania, basta sapere che essa altro non è che una direcotry nella nostra home, il cui nome  è proprio “Scrivania” (con la S maiuscola) oppure “Desktop” (dipende dalla distribuzione che usiamo, ma in ogni caso basta dare ls per saperlo). Quindi:

cd Scrivania

Ma il terminale è più veloce della grafica. Ad esempio se vogliamo andare nella directory Amore che sta in Immagini, senza dare due volte il comando cd, possiamo dirgli direttamente la nostra destinazione:

cd Immagini/Amore

Notate come il prompt del terminale cambia indicandoci la directory dove siamo:

guido@guido-laptop:~/Immagini/Amore$

Il segno ~ indica la nostra directory home, quindi ~/Immagini/Amore vuol dire “Amore dentro Immagini dentro la home dell’utente).

Ovviamente se siamo in  Immagini/Amore e vogliamo andare in Immagini/Sfondi non possiamo dare un semplice cd Sfondi perché la directory Sfondi non è nella directory corrente.

Dobbiamo invece dare:

cd ..

cd Sfondi

oppure:

cd /home/nomeutente/Immagini/Sfondi

Ma come è strutturato l’albero delle directory nel suo complesso?

Il livello più alto è la directory radice (root) indicata con /.

Sotto di essa vi sono varie directory tra cui /home che contiene a sua volta le directory degli utenti. Ad esempio la mia è /home/guido che equivale per me a scrivere ~

Un’altra convenzione è che il punto (.) indica la directory corrente (quella in cui siamo in questo momento) mentre i due punti (..) indicano la directory superiore a quella corrente. Ecco perché cd .. ci riporta nella directory “padre” di quella attuale.

Ad esempio il salto tra Immagini/Amore e Immagini Sfondi avremmo potuto scriverlo anche così:

cd ../Sfondi

perché se siamo in Immagini/Amore allora il simbolo dei due punti (..) rappresenta Immagini, ovvero la directory padre di Amore (e anche di Sfondi)

Oltre a /home troviamo:

/bin: contiene i programmi essenziali per il sistema (tra cui la shell BASH e i comandi più comuni)

/sbin: contiene programmi utili per il sistema, anche se non indispensabili per il suo avvio (ad esempio contiene le utility per partizionare i dischi fissi).

/boot: contiene i file per l’avvio de sistema, quindi i file del bootloader (GRUB o LILO) e il kernel Linux.

/dev: contiene i file che rappresentano i dispositivi fisici presenti nel computer. Come negli altri sistemi Unix ance in GNU/Linux qualsiasi cosa è rappresentata virtualmente come un file. Approfondirò questo tema in seguito.

/etc: contiene i file di configurazione dei programmi di sistema (ad esempio Xorg e Apt).

/lib: contiene le librerie essenziali, come glibc di cui abbiamo già parlato.

/proc: contiene dei file virtuali (cioé non esistono davvero sul disco) che contengono informazioni sui processi in esecuzione e altre cose legate al kernel (come la gestione del riscarmio energetico)

/root: è la directory home dell’utente root.

/sys: simile a /proc, andrà piano piano a sostituirla

/tmp: directory dei file temporanei

/media e /mnt: contengono i punti di mount degli hard disk, vedremo in seguito a cosa serve precisamente.

/usr: contiene eseguibili e librerie non essenziali per l’avvio del sistema (quindi praticamente tutti i nostri programmi, ma anche Xorg, GNOME, ecc.)

/var: contiene altre cose tra cui i log del sistema e dei programmi

/opt: coniene programmi opzionali (ad esempio le versioni di sviluppo di programmi già installati in /usr ma che non vogliamo che si sovrappongano a queste ultime).

E’ importante comprendere bene che questa struttura è “virtuale”. Alcune directory non esistono sul disco rigido (ad esempio /dev, /proc e /sys) altre directory possino essere su partizioni diverse o addirittura su dischi diversi o persino su computer diversi (nel caso abbiamo attivato una condivisione in rete).

Questa virtualizzazione però ci permette di vedere tutto il sistema come se fosse composto da un unico albero di directory e file. Una “astrazione” che torna molto utile in fase di programmazione: difatti per variare il funzionamento del sistema basta leggere o scrivere su dei file. In fondo, come abbiamo visto, il sistema operativo serve a creare un ambiente virtuale per i programmi. Unix lo fa nel modo più elegante: tutto è un file, quindi per fare qualsiasi cosa basta leggere e scrivere su dei file.

Un esempio?

cat /proc/acpi/thermal_zone/THRM/temperature

e sappiamo la temperatura del processore, senza usare nessun programma particolare, ma solo il comando cat che serve a stampare a video il contenuto di uno o più file. Nel nostro caso il file che contiene l’informazione sulla temperatura del processore.

  1. Alanparly
    7 agosto 2008 alle 10:48

    Bravo, mi ci voleva un bel chiarimento su quste cose!
    Esaustivo come sempre, continua così!

  2. 7 agosto 2008 alle 11:16

    Ormai sono dipendente dal controllare i tuoi feed per leggere e soprattutto imparare il perchè del mondo GNU/Linux.

    Grazie

  3. caf-pow
    7 agosto 2008 alle 15:29

    molto utile, ma più o meno sapevo come muovermi, anche grazie all’ottimo periodico gratuito “Full circle magazine”

    comunque l’immagine che hai inserito non si vede, forse è dovuto al fatto che è su altervista e quindi vengono bloccati i link esterni.😉

  4. Bucky
    8 agosto 2008 alle 1:41

    non riesco a visualizzare l’immagine! una volta scaricata ed aperta mi da questo errore… possibile che sia solo io?
    vedo solo un quadratone bianco…

    Errore nell’interpretare il file JPEG (Not a JPEG file: starts with 0x47 0x49)

  5. 8 agosto 2008 alle 10:33

    ottimo articolo!

  6. cafpow
    8 agosto 2008 alle 10:58

    @bucky: come ho detto nel post precedente al tuo, è dovuto al blocco dei link esterni di altervista. Se svuoti la cache del tuo browser e inserisci nella barra degli indirizzi l’url dell’immagine, la dovresti vedere correttamente.

    comunque l’ho uppato su imageshack

  7. Diego
    8 agosto 2008 alle 12:08

    Bello, grazie, sono passato da poco a xubuntu e il tuo articolo mi ha aiutato a capire un paio di cose in più!

    @caf-pow: a che numero è arrivato il FCM?

  8. 8 agosto 2008 alle 14:17

    Pongo una domanda mooolto ingenua, ma forse tu mi puoi aiutare.
    Volevo comprarmi un ASUS eee 1000 che pare rispecchiare le mie esigenze, soprattutto perché mi muovo molto. Faccio bene? Pensavo di installare Linux, anche se non l’ho mai provato direttamente. Faccio bene? Considera che, come si vede, sono un neofita e ho bisogno di cose semplici e funzionali.

    Grazie! ! ! ! ! ! ! ! !

    Ciao, Tito.

  9. cafpow
    8 agosto 2008 alle 14:51

    Diego, Full circle è arrivato al numero 15 ma è per ora stato tradotto in italiano fino alla 13.

    fullcirclemagazine.org/downloads/

  10. Hyu
    8 agosto 2008 alle 21:55

    @Tito
    Per quanto riguarda gnu/linux sull’eee pc è la scelta migliore. L’alternativa comunque sarebbe windows xp, che andrebbe a succhiare molte più risorse (di base, per non parlare dell’antivirus, firewall, antitetanica, antirabbica ecc.) inoltre è un sistema operativo morto, la ms lo rilascia soltanto come preinstallato sui pc di fascia bassa per soffocare l’ascesa di gnu/linux in questo settore.
    gnu/linux richiede molte meno risorse e accessi all’hard disk. In più l’eee pc vanta una serie di distribuzioni specializzate apposta per facilitarti la vita.
    Questo solo attenendomi ai motivi tecnici, per quanto riguarda quelli filosofici questo ottimo blog ti dovrebbe offrire vari spunti di riflessione.

  11. guiodic
    8 agosto 2008 alle 22:10

    @Tito: ma il 1000h ha già Linux sopra e tra l’altro ha l’hd a stato solido (SSD) invece che quello magnetico.

    @others: adesso metto l’immagine corretta.

  12. 9 agosto 2008 alle 11:47

    Grazie mille per la dritta. E linux sia!!!!!!!!!!!!!!!!!!!!!!!!

  13. 11 agosto 2008 alle 13:48

    ma ha linux ubuntu?! è facile da usare, mi pare.. anche per un neofita come me!

  14. giosimar
    16 agosto 2008 alle 16:06

    no, ha xandros.
    però esistono almeno 3-4 distribuzioni adatte allo schermo dell’ eeepc, tra cui una qualcosa-ubuntu.

  15. 3 settembre 2014 alle 4:32

    You really make it seem so easy with your presentation but
    I find this matter to be actually something that I think I would never understand.
    It seems too complex and very broad for me. I am looking forward for your next
    post, I will try to get the hang of it!

  16. 7 settembre 2014 alle 2:12

    Yes! Finally someone writes about Inglewood dwi lawyer.

  1. 10 agosto 2008 alle 16:13
  2. 27 agosto 2008 alle 20:18
  3. 17 ottobre 2016 alle 5:45

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: