BASH

I file di configurazione :
La shell puo' usare cinque files di configurazione, ma spesso nelle varie
distribuzioni non vengono usati tutti, d'altra parte vedremo che non e'
difficile crearsene di propri. I file sono:

/etc/profile
                        file globale
/etc/bashrc                        file globale
~/.bash_profile                file locale
~/.bashrc                                file locale
~/.bash_logout                    file locale

File globali contengono direttive di configurazione valide per tutti gli utenti mentre file locali, contengono direttive di configurazione valide solo per l'utente che possiede  la cartella nella directory /home che li contiene

/etc/profile
E' il file di configurazione globale che determina le variabili di ambiente e i programmi da eseguire
per ogni utente che manda in esecuzione la shell.
Per fare un paragone con il mondo Dos potrebbe essere qualcosa di molto simile al file autoexec.bat.

/etc/bashrc
E' un file di configurazione globale molto simile al precedente, per questo
motivo spesso non e' usato, contiene alias (collegamenti brevi a comandi molto
lunghi li vedremo in seguito), e pezzi di codice nel linguaggio di scripting
della shell che devono essere eseguiti alla partenza della shell. Tutto puo'
essere spostato senza problema nel file /etc/profile.


******TILDE ~ , nei sistemi Unix e' un collegamento breve alla directory base dell'utente *******


~/.bash_profile
E' un file di configurazione locale che contiene direttive di configurazione e variabili di ambiente specifiche dell'utente al quale appartiene la directory /home in cui si trova. Il file viene letto ed eseguito
successivamente a quelli globali e modifica o sovrascrive variabili che riguardano esclusivamente l'utente.

~/.bashrc
E' un file di configurazione locale che contiene direttive di configurazione come gli alias, o funzioni definite dall'utente. Il file viene letto ed eseguito successivamente a quelli globali, gli alias o le funzioni saranno specifici dell'utente e non influenzeranno nessun altro utente.
E' il corrispondente locale di /etc/bashrc.

~/.bash_logout
E' un file di configurazione locale che contiene comandi da eseguire quando l'utente esce dalla shell.
I comandi influenzano solo l'utente che possiede la cartella /home nella quale si trova.

Le Variabili


Il metodo piu' usato per archiviare temporeneamente uno o piu' valori consiste nell'usare le variabili, cioe' usare un'area di memoria del computer assegnandogli un nome a cui si possa far riferimento in seguito per recuperare
il valore assegnato.

Le variabili di ambiente sono quelle variabili create autonomamente dal sistema operativo e normalmente sono definite nel file '/etc/profile' , come per esempio SHELL, PS1, PS2 .

Le variabili locali sono quelle variabili definite dall'utente e sono generalmente definite nel file ~/.bashrc che si trova  nella /home dell'utente del quale possono influenzare l'ambiente.

La definizione di una variabile avviene in un modo intuitivo e elementare.

Consta di tre parti:   il nome della variabile seguito dall'operatore di  assegnamento "="  e il valore da assegnare, cioe':

'nome_variabile=valore_variabile'

Una volta definita la variabile la possiamo rendere disponibile ai programmi che l'utente usa con il
comando export :

'export nome_variabile'

Per accedere al valore di una variabile cioe' per recuperarne il valore dobbiamo far precedere al nome variabile il suffisso "$".

Per esempio per conoscere il valore della variabile SHELL possiamo digitare il comando:

'echo $SHELL'

che produrra' una stampa a video  :   /bin/bash


La variabile PATH


La prima variabile da configurare e' la variabile PATH che definisce le directory a cui possiamo accedere da qualsiasi punto del filesystem.

Per esempio potremmo avere un programma nella directory '/bin' chiamato mio_prog, se la directory '/bin' e' presente nella variabile PATH possiamo lanciare il programma da qualsiasi posizione nel filesystem, altrimenti
saremmo costretti o a digitare l'intero percorso '/bin/mio_prog' oppure portarci nella directory digitando prima 'cd /bin' e successivamente ' ./mio_prog .'

Il punto e la barra traversa (slash) che precedono il nome del programma dicono alla shell di cercare di eseguire quel file se ci sono i permessi adatti. La variabile PATH e' definita in /etc/profile e ha una sintassi leggermente diversa dal normale, ogni percorso di directory alla destra dell'operatore di assegnazione "=" e separata dal carattere ":" ,esempio:


 PATH=/bin:/usr/bin:/usr/local/bin

 export PATH

rendera' possibile mandare in esecuzione da qualsiasi punto del filesystem tutti gli eseguibili che si trovano nelle cartelle dichiarate nella variabile PATH. Se noi volessimo aggiungere altri valori alla variabile PATH potremmo digitare semplicemente:


 PATH=$PATH:/home/test/bin

 export PATH

che aggiungera' al valore gia' esistente della variabile PATH il nostro nuovo valore, infatti il nome variabile preceduto dal simbolo "$" verra' espanso con il contenuto originale della variabile cioe'

 /bin:/usr/bin:/usr/local/bin che

diventera' /bin:/usr/bin:/usr/local/bin:/home/test/bin.

Si puo' modificare il proprio path inserendo il comando precedente in ~/.bash_profile.

Prompt


La memoria della shell



La shell e' in grado di ricordare i comandi immessi dall'utente che normalmente sono salvati nel file ~/.bash_history e possono essere richiamati premendo i tasti freccia in su' e freccia in giu', questo comportamento puo' essere modificato configurando le variabili:

HISTSIZE
HISTFILE
HISTFILESIZE

E' da ricordare che per abitudine le variabili di ambiente vengono indicate usando lettere maiuscole a differenza delle locali per cui si usano le minuscole. Queste variabili sono definite in /etc/profile ma possono essere
sovrascritte in ~/.bash_profile.

HISTSIZE
Vero il numero massimo dei comandi da memorizzare nel file storico normalmente il valore preimpostato e' 500 o più comandi.

HISTFILE
Indica il file che deve essere usato per contenere i comandi digitati normalmente il valore preimpostato e' ~/.bash_history, puo' anche non essere impostato, lo storico si limitera' alla sessione di lavoro corrente.

HISTFILESIZE
Determina la grandezza fisica massima che puo' avere il file dello storico.


Gli alias

Gli alias si possono definire come comandi "accorciati". Se vogliamo chiamare un comando lungo in maniera piu' mnemonica possiamo assegnarlo ad un alias.

Se per esempio volessimo evitare di digitare ogni volta il comando:


ls -aF --color

potremmo assegnarlo nel file /etc/bashrc oppure ~/.bashrc nel seguente modo:


alias ls='ls -aF --color'

Possiamo definire quanti alias ci servono senza limiti.


<indice>     <avanti>