Muoversi nel sistema: cd

Ogni qual volta volete muovervi nella directory, la sola cosa che dovete digitare è:

cd
	  

Proseguite, provando ad inserirlo in una finestra Xterm.

Non è successo molto vero? Questo perchè non avete detto al sistema dove volete andare.

Quando andate in un supermercato o a far visita a dei parenti in campagna, dovete sapere come arrivare da un punto ad un altro e quindi dovete conoscere il percorso giusto.

Come in ogni cosa nella vita, il percorso -- o, pathname -- è fondamentale per decidere la direzione da prendere. Nel caso del vostro sistema Linux (così come nel mondo DOS/Windows), avete bisogno di un percorso per muovervi da una directory ad un'altra.

Riproviamo. Aprite una finestra Xterm. Verificate la vostra posizione con il comando pwd. Digitando il comando sulla vostra finestra comparirà:

[newuser@localhost newuser]$ pwd
/home/newuser
[newuser@localhost newuser]$
	  

Ora che sapete dove siete, provate a digitare il seguente comando.

cd home
	  

Che cosa è successo? Sapete che c'è una directory chiamata home, e avete digitato il percorso. Perciò perchè appare no such file or directory ?

Significa che il vostro percorso è incompleto.

Provate a digitare:

cd /home
	  

Ora avete cambiato le directory e vi siete spostati dalla vostra directory di login nella sottodirectory chiamata home.

Figura 15-2. Pathname completi determinano dei percorsi assoluti

La differenza è nel carattere slash.

Proviamo a pensare alla ragione per cui un semplice carattere (slash) faccia una così grande differenza.

Quando avete visto che eravate in /home/newuser, stavate guardando il percorso assoluto -- o il path intero dalla directory di root. Questo significa che la directory newuser si trova due directory "sotto" alla root, che rappresenta il primo livello nella gerarchia delle directory

Perciò quando digitate:

cd /home
	  

dite al calcolatore "vai alla directory root, poi vai nella directory chiamata home, che è una directory di livello inferiore rispetto a root." Dovete specificare un percorso assoluto per andare nella directory home.

Ora, se digitate:

cd /
	  

otterrete un prompt simile a questo:

[newuser@localhost /]$
	  

Il solo carattere slash significa che siete nella root. Quando siete nella root, non potete salire di più nel vostro sistema (lo stesso concetto è valido per DOS/Windows).

Per ritornare indietro nella vostra directory di login dalla directory di root, utilizzando il percorso assoluto, digitate:

cd /home/newuser
	  

Siete a casa.

Usare il percorso assoluto è solo un modo per spostarsi tra le varie directory. Un metodo alternativo per spostarsi da una directory all'altra è quello di usare il percorso relativo (come in Figura 15-3).

Ritorniamo alla directory di root:

cd /
	  

Ora tornate indietro alla vostra directory di login usando un percorso relativo:

cd home/newuser
	  

Notate che il carattere / manca? Questo è possibile perchè la directory di root è la base della directory home, il che significa che la directory home è un gradino più in basso rispetto alla directory root. Dal momento che home è il padre della directory newuser, queste due directory sono separate dal carattere /.

Se siete nella vostra directory di login, potete spostarvi verso la directory home, digitando:

cd ..
	  

Il percorso relativo descrive la directory nella quale volete muovervi in termini relativi rispetto la vostra directory corrente.

Figura 15-3. I nomi dei percorsi sono relativi alla posizione corrente

Quando avete digitato cd .., avete chiesto al sistema "sali una directory". La prima directory superiore, alla vostra directory di login, è home.

SuggerimentoCosa sono le parent directory?
 

Quando si parla di una directory contenente altre directory, potete fare riferimento a questa come parent directory. Nel nostro caso, home è la directory superiore di newuser.

Utilizzando i due punti (..) quando usate il comando cd significa che volete spostarvi nella directory padre. Provate ad utilizzare un singolo punto. Digitate:

cd .
	  

Cosa è successo? Non molto. Questo perchè usando un singolo punto (.) significa spostarsi nella directory corrente.

La differenza tra percorso assoluto e percorso relativo può essere a volte molto sottile.

Ritornando all'esempio del centro commerciale, se volete seguire delle direzioni utilizzando percorsi assoluti, farete qualcosa del tipo:

"Prendere le chiavi. Salire in macchina. Avviare la macchina. Mettersi nella direzione giusta. Guidare fino all'angolo…"

…e così via, fino a che non siete finalmente dentro al vostro negozio di scarpe preferito nel centro commerciale.

Quando state utilizzando un percorso relativo, dite al sistema qualcosa tipo:

"Il negozio è ad un paio di chilometri da qui, nel centro commerciale."

È un esempio esagerato, ma rende l' idea: nel momento in cui sapete dove andare, potete utilizzare un percorso relativo per muovervi.

SuggerimentoIl percorso è assoluto o relativo?
 

Un percorso è assoluto se il primo carattere è /; altrimenti, è un percorso relativo.

Attualmente siete nella directory home, la directory padre della vostra directory di login. Digitate:

cd ..
	  

e vi troverete nella directory root.

Utilizzando un percorso relativo, vi sposterete nella vostra directory di login digitando:

cd home/newuser
	  

Non sembra molto differente dal percorso assoluto, non trovate? Notate, che non ci sono slash davanti a home. In termini pratici è come dire "scendete di una directory, a home, poi andate a newuser, nella directory home ."

SuggerimentoTornate velocemente alla vostra directory di login
 

Ogni qual volta desiderate tornare velocemente nella vostra directory di login, digitate cd e premete Enter ovunque siate nel sistema finirete nella vostra directory di login.

Questa non vuole essere niente di più di una dimostrazione.

Dalla vostra directory di login, digitate:

cd ../../etc/X11
	  

Ora, vi trovate nella directory X11, che contiene le directory ed i file di configurazione del sistema X Window.

NotaNota Bene
 

Potete sempre digitare pwd per sapere dove vi trovate. E potete ritornare nella vostra directory di login con il comando cd.

Date un'occhiata al vostro ultimo comando cd. Quello che dite al vostro sistema, "sali nella directory superiore, poi ancora nella directory superiore (che corrisponde alla directory root), poi vai nella directory etc e quindi nella directory X11".

Utilizzando un percorso assoluto, potete arrivare alla directory X11 più rapidamente. Digitate:

cd /etc/X11
	  

NotaDove siete?
 

Assicuratevi sempre di sapere quale sia la directory di lavoro prima di muovervi con un percorso relativo verso un'altra directory o file. Invece non vi dovete preoccupare della vostra posizione nel filesystem, quando utilizzate un percorso assoluto per muovervi in un'altra directory.

Ora che avete fatto pratica, guardate che succede quando vi spostate nella directory di root.

cd /root
	  

Oops… non siete collegati come root, perciò "non avete i permessi" per accedere a tale directory.

Vietare l'accesso agli altri utenti (o directory di login) è una delle soluzioni che il vostro sistema Linux mette a disposizione per prevenire errori accidentali o azioni di malintenzionati. Troverete maggiori informazioni in merito alle "proprietà" ed ai permessi più avanti in questo capitolo.

Volete veramente collegarvi come root? Allora avete bisogno del comando su. Digitate questa serie di comandi:

[newuser@localhost newuser]$ su 
Password:your root password 
[root@localhost newuser]#cd /root 
[root@localhost /root]#
	  

Inserita la password di root, vedrete i cambiamenti nel prompt, che vi mostrerà il vostro nuovo stato di superuser: l'account di root ha davanti al prompt la parola root e alla fine il carattere "#" (come mostrato nella Figura 15-4).

Figura 15-4. Diventare Root

Ora potete spostarvi nella directory di login di root, perchè avete i privilegi di root.

Per disconnettervi, digitate semplicemente exit al prompt.

[root@localhost /root]# exit
exit
[newuser@localhost newuser]$
	  

SuggerimentoRiassunto
 

Per cambiare la directory utilizzando un percorso assoluto, digitate cd /directory/directory; per cambiare directory utilizzando un percorso relativo, digitate cd directory per spostarvi in una directory sottostante, cd directory/directory per spostarvi due directory più in basso, etc.; per spostarvi da qualsiasi punto nel vostro filesystem alla vostra directory di login, digitate cd; per andare nella directory precedente rispetto a quella dove vi trovate, digitate cd .. Utilizzate . per far riferimento alla vostra directory corrente.