COMANDI LINUX 6° PARTE

Personalizzazione ed uso della shell

Sono all’interno della mia home, su un utente appena creato su questo sistema, non esiste di piu’ che questo apparentemente sul sistema.

Facendo attenzione pero’ e digitando il comando : ls -a per mostrare quindi anche i file nascosti, posso vedere che ci sono diversi file:

.bash_history
.bash_logout
.bashhrc
.profile

Questi sono file di impostazioni, validi per la mia utenza, quindi sono file che contengono gia’ delle impostazioni, ad esempio .bash_logout, contiene degli script di logout e quindi cosa scrivere quando esco dalla mia consolle, mentre .bashhrc e .profile sono script di login e caricamento della shell e comunque questi sono script che vengono richiamati ogni volta per un particolare evento e ha delle impostazioni come ad esempio imèpostare delle variabili, lanciare dei comandi,oppure creare degli alias.

Ogni utenete possiede nella sua home questi file di base, sono detti USER WIDE ovvero valgono per l’utente e solo per lui sono validi.

Ci sono gli stessi file ma validi come SYSTEM WIDE, ovvero validi per tutto il sistema all’interno di /etc

La shell BASH ha delle impostazioni standard generali per tutti gli utenti, ma ogni utente puo’ avere una versione personalizzata della propria shell modificando opportunamente alcuni file di configurazione.

All’interno di questi file sono presenti delle variabili che contengono dei valori predefiniti. Una variabile e’ un’area di memoria alla quale viene assegnato uno specifico valore.

Tale area viene creata al momento del login e viene distrutta al momento del logout. Una variabile puo’ essere paragonata ad una scatola nera che puo’ contenere dei valori.

Ad esempio la variabile USER contiene il nome dell’utente che ha effettuato il login. Quando un utente effettua il login nel sistema, Linux crea una shell di login ed inizializza alcune variabili con dei valori predefiniti.

L’utente puo’ creare delle variabili personali e puo’ modificare alcune di quelle predefinite dal sistema.

Per convenzione le variabili della shell sono definite con nomi costituiti da lettere maiuscole. Ad esempio, la variabile HOME definisce il percorso della directory home dell’utente.

Le variabili vengono inizializzate dal sistema al momento del login da parte di un utente e vengono distrutte al momento del logout, cioe’ quando l’utente si scollega dal sistema.

Per visualizzare il contenuto di una variabile si puo’ eseguire il comando echo, seguito dal carattere $ e dal nome della variabile.

Ad esempio, un ipotetico utente mau, visualizzando la variabile HOME utilizzando il comando:

echo $HOME

produrra’ a video il percorso /home/mau. I file di configurazione della shell BASH sono 5:
/etc/profile
/etc/bashrc
/home/mau/.bash_profile
/home/mau/.bashrc
/home/mau/.bash_logout

le prime 2 sono generali per tutti gli utenti e le altre 3 sono specifiche per ogni utente e se vengono modificate ridefiniscono quelle generali.

Percio’ se un utente ‘mau’ modifica ad esempio il file .bash_profile presente nella sua directory home (/home/mau), tali modifiche saranno valide per lui ma non per tutti gli altri utenti che continueranno ad usare il file profile generale presente nella directory /etc.

Stesso discorso vale per il file bashrc. Il file profile presente nella directory /etc puo’ essere paragonato al file autoexec.bat del dos.

Questo file infatti contiene l’inizializzazione di alcune variabili di sistema e l’esecuzione di alcuni programmi di avvio. I file bashrc invece contiene gli alias ed alcune funzioni definibili dall’utente.

Un alias e’ un nome mnemonico che si puo’ dare ad un comando. Ad esempio il comando che visualizza tutti i file di una directory:

ls -lai

puo’ avere come alias il nome ‘elencafile’ oppure ‘lsa’ oppure ‘dir’ (per gli amanti del DOS) o un qualsiasi altro nome scelto dall’utente.

Un’altra differenza che contraddistingue il file profile dal file bashrc sta nel fatto che mentre il primo viene eseguito al momento del login da parte dell’utente, il secondo viene eseguito ogni volta che viene creata una shell o una subshell.

Quando l’utente effettua il login, viene creata una shell chiamata shell di login, percio’ viene eseguito prima il file profile e poi il file bashrc.

Quando un utente crea una subshell od una shell che non e’ di login (ad esempio apre una finestra Xterm) viene eseguito il file bashrc.

In un sistema Linux, oltre ai file di inizializzazione della shell attivati al momento del login, e’ presente anche un file attivato al momento del logout.

Una subshell viene creata automaticamente dal sistema ogni volta che si esegue un comando oppure intenzionalmente dall’utente lanciando il comando che crea la shell (che nel caso di shell BASH e’ ‘bash’).

Ogni volta che un utente effettua il logout e si scollega dal sistema, viene eseguito il file .bash_logout. In questo file sono presenti tutte le operazioni di chiusura che l’utente vuole eseguire.

Questo file non viene creato automaticamente come gli altri gia’ visti, percio’ occorre crearlo manualmente con un editor di testi qualsiasi (ad esempio vi).

In questo file puo’ essere contenuto ad esempio un messaggio di arrivederci con un comando tipo echo “Arrivederci”.

Riassumendo, non appena un utente effettua il login nel sistema:

1-viene automaticamente creata una shell di login
2-viene eseguito il file profile presente nella directory /etc che definisce le variabili generali
3-viene eseguito il file .bash_profile presente nella directory home dell’utente

4-viene eseguito il file bashrc presente nella directory /etc dove sono presenti gli alias dei comandi
5-viene eseguito il file .bashrc presente nella directory home dell’utente
6-non appena l’utente effettua il login dal sistema, viene eseguito il file .bash_logout.