Capitolo 16. Gestione di File e Directory

Se siete poco esperti di Linux potreste sentirvi disorientati nella gestione dei file e delle directory.

Rilassatevi. Se avete esperienza nell'uso di altri sistemi operativi, "imparare Linux è un po' come imparare a guidare in un nuovo stato". Molte idee sono le stesse, ma anche se alcune differiscono leggermente.

Tratteremo parecchie di queste "regole di strada" in questo capitolo.

Ma c'è un componente del vostro nuovo sistema operativo senza il quale non potrete andare avanti: la shell. Abbiamo fatto parecchi riferimenti alla shell -- come "prompt di shell" o "bash".

Ora, è arrivato il momento di approfondire l'uso di questa applicazione. Ma prima, alcune nozioni storiche…

Shell, la Storia

Negli anni '60, quando Dennis Ritchie e Ken Thompson di AT&T stavano lavorando su UNIXTM, vollero creare uno strumento tramite il quale gli utenti potessero interagire con il sistema.

A quel tempo i sistemi operativi utilizzavano degli interpreti di comandi, che accettavano comandi dall'utente per poi interpretarli così da essere utilizzati dalla macchina.

Ma Ritchie e Thompson volevano qualcosa di più, qualcosa che potesse offrire migliori caratteristiche degli interpreti di comandi presenti a quei tempi.

Nacque la Bourne shell (conosciuta semplicemente come sh), creata da S.R. Bourne, per soddisfare gli obbiettivi dei creatori di UNIX.

Dopo la creazione della Bourne shell, furono sviluppati altri tipi di shell, come la C shell (csh) e la Korn shell (ksh).

Quando la Free Software Foundation volle una shell libera da royalty, gli sviluppatori cominciarono a lavorare ad un linguaggio all'interno della Bourne shell così come alcune caratteristiche più diffuse tra le shell disponibili in quei tempi.

Il risultato fu la Bourne Again Shell -- o bash.

Per ora, probabilmente, avrete visto la parola bash in messaggi di errori causati da una non corretta digitazione di un comando al prompt di shell (come in bash: un comando: command not found).

Nel Capitolo 15, quando abbiamo parlato di ridirezione e pipe, stavamo anche mostrando la potenza e la flessibilità della bash.

SuggerimentoSaperne di più sulla bash
 

Potrete imparare di più sulla bash leggendo la pagina man di bash. Al prompt di shell digitate man bash (oppure potete salvare il file come file di testo digitando il comando man bash | col -b > bash.txt, che poi potrete visualizzare con un editor come pico o un pager come less. Potete anche stampare il file con man bash | col -b | lpr, ma state attenti: è un file di grandi dimensioni. Se volete maggiori informazioni, O'Reilly & Associates ha pubblicato Learning the bash Shell, di Cameron Newham e Bill Rosenblatt.

Anche se il vostro sistema ha numerose shell differenti, la bash è la shell di default con Red Hat Linux.

Potreste pensare alla bash come una segretaria di ufficio che ha l'abitudine di tener nota di ciò che fate e di eseguire i vostri comandi velocemente. Questa assistente tiene anche "puntatori" su come vi piace personalizzare il vostro ambiente di lavoro.

I puntatori gestiti dalla bash vengono chiamati variabili d'ambiente.

La shell utilizza un "ambiente" allo stesso modo in cui noi utilizziamo un ambiente come la cucina. Lavoriamo nella cucina, sistemiamo le pentole, i contenitori e le spezie. Sappiamo dove sono i piatti, come funzionano le cose.

Lo stesso si può dire per la bash e il suo ambiente. C'è un ordine di base nella bash così come ci sarebbe in qualunque cucina. Per esempio, ci aspetteremmo di trovare le pentole in una cucina allo stesso modo in cui ci aspetteremmo di trovare particolari comandi nella bash.

Questa è l'idea dietro le variabili d'ambiente.

Fino a che la vostra assistente ha i puntatori giusti, esaudirà velocemente i vostri comandi.

Guardiamo le nostre variabili d'ambiente. Al prompt della shell scrivete:

env
	  

Ci sono un po' di "scorciatoie" utilizzate dalla bash , vero?

Ognuna di esse aiuta la bash a configurare l'ambiente per voi.

Tra le più importanti variabili d'ambiente c'è il PATH (percorso) -- che definisce ciò che viene chiamato default path (percorso predefinito).

La variabile d'ambiente PATH per il vostro account newuser potrebbe avere questo aspetto:

PATH=/usr/local/bin:/usr/X11R6/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/newuser/bin
	  

Sembra affollata, ma la definizione PATH è un'utilissima nota che punta alle posizioni nel filesysstem in cui sono presenti i programmi.

SuggerimentoUno standard per il PATH
 

Ricordate il riferimento precedente allo Standard sulla Gerarchia del Filesystem (si veda la la sezione Il filesystem nel Capitolo 15)? la variabile PATH viene configurata secondo questo standard, e i programmi vengono installati in directory in accordo con lo Standard sulla Gerarchia del Filesystem stesso. Il risultato è che la definizione PATH abiliterà la bash a cercare in modo automatico praticamente qualsiasi programma, assumendo che sia stato installato in accordo con lo Standard sulla Gerarchia del Filesystem.