Guida Linux: navigare all'interno delle directory


I simboli che identificano le directory

Le directory che compongono il filesystem di Linux possono essere esplorate utilizzando due o tre comandi basilari la cui conoscenza e' veramente obbligatoria. Prima di vedere tali comandi pero', occorre apprendere alcune convenzioni tipiche degli ambienti Unix ma acquisite successivamente anche negli ambienti DOS. In ambiente Linux (ma anche Unix e DOS) la directory corrente e' rappresentata da simbolo '.' (punto), mentre la directory a livello immediatamente superiore e' rappresentata dai simboli '..' (punto punto senza spazi). La directory iniziale, cioe' la directory che contiene tutte le altre sottodirectory e' rappresentata dal simbolo '/' (barra o slash). Occorre fare attenzione a non confondere il carattere '/' (slash) dal carattere '\' (backslash). Non sono la stessa cosa! Sulla tastiera infatti sono presenti entrambi: il carattere utilizzato in ambiente Linux e' '/', cioe' quello che si trova sopra il numero 7 della tastiera. Questo a differenza del DOS che, come sanno i vecchi utilizzatori di PC, utilizza il carattere '\' (anche Windows usa il carattere '\'). La directory genitore di tutte le altre directory, cioe' la directory '/' e' detta anche directory root. Per specificare una directory che si trova all'interno di un'altra directory occorre indicare il path (o pathname), cioe' il percorso completo, separando le due directory con il simbolo '/'. Ad esempio, per specificare la directory 'Ricette' che si trova all'interno della directory 'Cucina', occorre scrivere:

/Cucina/Ricette

Dove il primo / indica che il percorso parte dalla directory principale o root (/) ed il secondo indica che la directory Ricette si trova all'interno della directory Cucina. Qualora all'interno della directory Ricette fosse presente una terza sottodirectory, sarebbe presente un altro carattere /. Ad esempio, per specificare la directory 'Secondi' che si trova all'interno della directory Ricette che a sua volta si trova all'interno della directory Cucina, occorre scrivere:

/Cucina/Ricette/Secondi

Attenzione: in questi esempi il primo carattere di ogni directory e' maiuscolo; occorre ricordarsi che Linux e' case sensitive percio' la directory Cucina e' una directory diversa dalla directory cucina! Se nel PC e' presente la directory Cucina, specificando un path come questo:

/cucina/Ricette

si otterrebbe un messaggio di errore, in quanto Linux non sarebbe in grado di trovare una directory 'cucina' perche' il primo carattere digitato e' minuscolo, mentre sul PC e' presente una directory Cucina con il primo carattere maiuscolo. Il messaggio di errore ottenuto da Linux e' in inglese, ma il significato e': 'file non trovato'.

I comandi basilari

Per esplorare le directory di Linux occorre conoscere 2 o 3 comandi basilari: il primo e' senza dubbio il comando PWD. PWD sta per Print Working Directory, cioe' stampa la directory corrente. Attenzione: generalmente i comandi Linux sono composti da caratteri minuscoli, percio' il nome corretto del comando e' pwd. Digitando PWD otterremo il solito messaggio di errore in quanto non esiste un file di nome PWD. Digitando il comando pwd e premendo invio, il sistema rispondera' visualizzando il nome della directory di lavoro, cioe' della directory in cui ci si trova. Il secondo comando basilare da conoscere e' il comando LS. LS sta per LiSt directory, cioe' elenca il contenuto della directory e serve per visualizzare l'elenco dei file contenuti all'interno di una directory. Il terzo comando da conoscere assolutamente e' il comando CD. CD sta per Change Directory, cioe' cambia directory, e serve per spostarsi da una directory all'altra. Ogni comando Linux e' in realta' un programma che accetta anche dei parametri. I parametri servono per specificare delle opzioni aggiuntive. Alcuni comandi come ad esempio cd, prevedono dei parametri obbligatori. Il comando cd serve per spostarsi all'interno di un'altra directory, ma per far cio' occorre specificare la directory verso la quale ci si vuole spostare. Ad esempio, supponendo una situazione del genere:

/cucina/ricette/secondi

Se ci si trova all'interno della directory /cucina, per entrare all'interno della directory secondi, occorrera' digitare:

cd ricette/secondi

dove ricette/secondi e' il nome della directory di arrivo, ed e' anche il parametro obbligatorio da specificare per il comando cd. Combinando i comandi pwd e cd, possiamo verificare l'operato di entrambi. Vediamo un esempio:

pwd (comando digitato)

/cucina/ricette (risposta del sistema)

cd secondi (comando digitato)

pwd (comando digitato)

/cucina/ricette/secondi (risposta del sistema)

Nell'esempio appena visto, il comando pwd visualizza il nome della directory corrente (/cucina/ricette), successivamente il comando cd permette di posizionarsi sulla directory /cucina/ricette/secondi. Infine il comando pwd mostra nuovamente la situazione, visualizzando il nome della directory che abbiamo raggiunto. Dopo aver digitato un comando occorre ovviamente premere il tasto INVIO. E' possibile spostarsi da una directory all'altra utilizzando i caratteri '/', '.' e '..'. Ad esempio, se ci si trova all'interno della directory secondi e si vuole tornare nella directory immediatamente superiore, si puo' digitare il comando cd con il parametro '..' e cioe':

cd ..

come abbiamo visto prima infatti, '..' rappresenta la directory che si trova al livello immediatamente superiore. Attenzione: tra cd e .. occorre lasciare uno spazio, altrimenti il sistema visualizzerebbe un messaggio di errore. Cosi' facendo infatti, il sistema andrebbe infatti a cercare un comando di nome 'cd..' che ovviamente non esiste. Inserendo uno spazio tra cd e .. il sistema e' in grado di capire che cd e' il comando da eseguire e .. e' il parametro da passare al comando. Cd e' un comando ma e' anche un programma come abbiamo visto. Il programma cd quindi, ricevendo .. come parametro, ci portera' alla directory che si trova al livello immediatamente superiore. Per cambiare directory, e' possibile usare il path (percorso) relativo o quello assoluto. Gli esempi appena visti usano il path relativo. Nel caso precedente, la directory 'secondi' si trova all'interno della directory 'ricette' che a sua volta si trova all'interno della directory 'cucina'. La directory cucina infine, si trova all'interno della directory root (radice), cioe' la directory '/'. Supponendo di essere posizionati all'interno della directory /, per indicare la directory secondi occorrera' digitare: cucina/ricette/secondi. Supponendo di essere posizionati all'interno della directory cucina, occorrera' digitare: ricette/secondi. Supponendo di essere posizionati all'interno della directory ricette, occorrera' scrivere: secondi. In altre parole, la directory nella quale ci si trova (directory corrente o di lavoro) viene considerata dal sistema come punto di partenza e pertanto non e' necessario digitarne il nome. Supponendo pero' di essere posizionati all'interno di una directory esterna al path /cucina/ricette/secondi, ad esempio la directory /documenti/lettere/carla per indicare la directory secondi, occorrera' usare il path assoluto, il che significa che sara' necessario specificare il percorso completo della directory secondi e cioe': /cucina/ricette/secondi. Esempi:

Ci si trova posizionati all'interno della directory /documenti/lettere/carla:

/documenti/lettere/carla

utilizzando il path assoluto, per raggiungere la directory secondi occorrera' digitare il comando:

cd /cucina/ricette/secondi

utilizzando il path relativo occorrera' invece digitare:

cd ../../../cucina/ricette/secondi

cosa significa? Semplice: partendo dalla directory carla, occorrera' specificare al sistema che si desidera raggiungere la directory immediatamente superiore a carla (cioe' lettere) digitando '../'. Dalla directory lettere poi occorrera' raggiungere documenti la quale, essendo immediatamente superiore alla directory lettere, che a sua volta e' immediatamente superiore a carla, verra' specificata digitando '../../'. Dalla directory documenti occorrera' raggiungere la directory root, cioe' /, ma la directory root e' superiore a documenti che e' superiore a lettere che e' superiore a carla, pertanto occorrera' digitare: ../../../. Infatti ogni '../' fa risalire di un livello. Una volta raggiunta la directory root digitando ../../../, occorrera' scendere nuovamente, prendendo pero' il ramo cucina e non quello documenti. Quindi occorrera' digitare: ../../../cucina. Da cucina, per raggiungere ricette si digitera': ../../../cucina/ricette. Infine da ricette, per raggiungere secondi: ../../../cucina/ricette/secondi, cioe' il percorso completo partendo da carla. Il path relativo pertanto e' il percorso che occorre fare per raggiungere un punto X partendo da un punto Y. Poiche' si parte da Y, il percorso indicato e' relativo a Y. Il percorso assoluto al contrario, parte sempre dalla root, percio' e' assoluto. Cio' significa che specificando il path assoluto si raggiunge la directory voluta indipendentemente da dove ci si trova. Digitando cd senza alcun parametro si potra' tornare alla propria home directory che, nel caso di un ipotetico utente pippo sara' generalmente /home/pippo. Infine digitando 'cd -' si potra' tornare invece alla directory precedente. Quanto esposto puo' sembrare contorto e difficile da capire, ma in realta' e molto semplice ed esercitandosi un po' verra' automatico digitare il path di una directory usando i vari comandi Linux. A questo punto non rimane che illustrare il terzo comando fondamentale per navigare all'interno delle directory, e cioe' il comando LS, utile per visualizzare il contenuto di una directory. Con qualsiasi comando e' possibile indicare una directory usando il path assoluto o relativo ed il comando ls non e' certo un'eccezione. Ad esempio, supponendo di essere posizionati all'interno della directory carla, digitando il comando ls /cucina, sara' possibile visualizzare il contenuto della directory cucina:

/documenti/lettere/carla_

/documenti/lettere/carla ls /cucina

primi secondi antipasti miaricetta ristoranti

il comando ls cucina visualizzera' il contenuto della directory cucina, cioe' i file primi, secondi ed antipasti. In realta' primi secondi ed antipasti sono delle directory mentre miaricetta e ristoranti sono dei semplici file di testo, ma, come abbiamo visto, una directory non e' altro che un tipo speciale di file ed il comando ls non fa distinzioni tra i tipi di file. Il comando ls visualizzera' qiundi qualsiasi file, sia esso un file di testo, un file directory od un qualsiasi altro tipo di file. Il comando ls, come qualsiasi altro comando, accetta i caratteri . e .., percio' per visualizzare il contenuto della directory nella quale ci si trova, si potra' digitare:

ls .

in quanto '.' rappresenta la directory corrente. Allo stesso modo per visualizzare il contenuto della directory immediatamente superiore si potra' digitare:

ls ..

in realta' non e' necessario digitare ls . per visualizzare il contenuto della directory corrente, in quanto se non specificata alcuna directory, il sistema utilizzera' la directory corrente. Percio' il comando ls da solo e senza altri parametri visualizza il contenuto della directory in cui ci si trova:

ls

quindi i comandi seguenti producono lo stesso risultato:

ls

ls .

In tutti questi esempi visti fino ad ora, per motivi di semplicita' non sono stati illustrati i possibili parametri utilizzabili dai comandi pwd, cd ed ls. Il comando ls ad esempio accetta un incredibile numero di parametri. Ad ogni modo i parametri piu' usati verranno illustrati successivamente nei prossimi capitoli. Un altro piccolo particolare che e' stato omesso negli esempi precedenti e che verra' omesso anche in futuro e' il prompt di Linux. Ecco infatti un reale esempio di comando ls:

mau@localhost mau ]$_

mau@localhost mau ]$ ls
miofile
appunti
lettere
immagini
indirizzi
maurizio
mau@localhost mau ]$_

'dove mau@localhost mau ]$' e' il prompt mentre '_' e' il cursore lampeggiante. Ovviamente dopo aver digitato qualsiasi comando per eseguirlo realmente occorre premere il tasto INVIO: anche questo particolare e' stato omesso dandolo per scontato. ;o)

 

Torna all'indice

Copyright (c) 2002 M. Silvestri