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>