11.07.2015 Views

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.1. L’INTERFACCIA A LINEA DI COMANDO. 59La variabile PATH è di importanza particolare perché è direttamente connessa ad una dellefunzionalità della shell su cui finora abbiamo sorvolato dandola per scontata: quella del cosiddettopath search, cioè del fatto che essa vi permette di associare un nome scritto sulla linea dicomando ad un programma da lanciare. In genere 15 questo nome deve corrispondere al nome delfile che contiene il programma che la shell deve eseguire. In sostanza, come visto nell’esempioiniziale di sez. 2.1.3, voi potete sempre scrivere solo il nome del file al posto del pathname completo:se cioè volete leggere una pagina di manuale, basterà scrivere man e non sarà necessariospecificare /usr/bin/man.Si può fare così perché la shell esegue automaticamente una ricerca nel cosiddetto PATH deicomandi; cioè dato un nome sulla linea di comando la shell cerca un file da eseguire con quelnome nella lista di directory contenute nella variabile d’ambiente PATH. Se volete evitare questocomportamento, ad esempio perché il programma che volete lanciare non è in una di quelledirectory e non sarebbe trovato, è necessario specificare, sia in forma assoluta che relativa, unpathname per accedere al comando; 16 per questo in genere per lanciare un comando (o unoscript) nella directory corrente si usa la sintassi:piccardi@monk:~/Truelite$ ./comandoLa variabile PATH ha la forma di una lista di pathname di directory, separati fra loro da uncarattere di due punti, 17 . Un esempio del valore di questa variabile potrebbe essere il seguente:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/gamescome è presa dalla definizione standard per un utente comune su Debian. Si noti come inquesto caso siano indicate solo le directory che, nella standardizzazione del filesystem illustratain sez. 1.2.3, contengono i programmi di uso per l’utente; sono pertanto assenti 18 directorycome /sbin, /usr/sbin, ecc. che usualmente vengono inserite dentro PATH soltanto perl’amministratore.Si tenga conto che PATH è comunque modificabile dall’utente, che può personalizzarla apiacere, ed aggiungere un’altra directory, come ad esempio la directory corrente che di normanon vi è mai inclusa. 19 Il dubbio casomai può essere sul come farlo senza doversi riscrivere tuttoda capo il contenuto precedente; per questo ci viene di nuovo in auto la sintassi della riga dicomando per cui è possibile ridefinire una qualunque variabile con una espressione del tipo:piccardi@anarres:~/Truelite$ PATH=$PATH:./dove di nuovo si è usato la capacità della shell di espandere il valore delle variabili, che funzionaanche all’interno della sintassi usata per assegnare le stesse. Si noti come una riga del generenon esegua nessun programma, limitandosi ad utilizzare esclusivamente le funzionalità interne15 vedremo a breve come si possono creare dei comandi personalizzati attraverso l’uso degli alias, nel qual casoil nome può essere del tutto arbitrario.16 la shell riconosce questo quando nel nome del comando compare il carattere “/” che indica una directory.17èun formato comune usato nelle variabili di ambiente tutte le volte che si deve specificare una lista di directoryin cui effettuare ricerche, lo reincontreremo spesso, ad esempio in sez. 3.1.2 per le directory dove sono mantenutele librerie di sistema.18 questo è il motivo per cui alcuni comandi “non funzionano” quando chiamati da utente normale, in realtànon è che non funzionano, solo non vengono trovati i relativi programmi, che potrebbero tuttavia essere eseguitiugualmente (con privilegi ridotti ovviamente) usando un pathname assoluto o inserendo le directory in cui sitrovano all’interno di PATH.19 questa scelta ha una ragione precisa: se tenete dentro PATH la directory corrente un altro utente potrebbemettere nelle directory cui ha accesso una versione “opportunamente” modificata di un comando di sistema, cheverrebbe eseguita al posto dell’originale, col rischio di guai seri qualora ciò avvenisse per l’amministratore; èvero che si inserisce la directory corrente in coda a PATH i comandi standard hanno la precedenza, ma qualcunopotrebbe sempre creare un programma la e aspettarvi al varco per un comune errore di battitura di ls ...

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!