7.8. I file di avvio della shell Bash

Il programma di shell /bin/bash (a cui faremo riferimento come “la shell” da ora in poi) usa una collezione di file di avvio per creare un ambiente in cui funzionare. Ogni file ha uno specifico uso e può influenzare login e ambienti interattivi in modi differenti. I file nella directory /etc forniscono configurazioni globali. Se esiste un file equivalente nella propria home directory, questo sovrascriverà le definizioni globali.

Una shell login interattiva viene fatta partire dopo un login portato a termine con successo, usando /bin/login, leggendo il file /etc/passwd. Una shell non-login interattiva viene fatta partire da linea di comando (p.e. [prompt]$/bin/bash). Una shell non interattiva di solito è presente quando è in esecuzione uno shell script. Non è interattiva perché sta processando uno script e non aspetta un input dell'utente tra i vari comandi.

Per maggiori informazioni vedere info bash - Nodi: Bash Startup Files e Interactive Shells.

I file /etc/profile e ~/.bash_profile sono letti quando una shell viene invocata come login shell interattiva

Un /etc/profile di base creato di seguito definisce alcune variabili ambiente necessarie per il supporto del linguaggio nativo. Definendole appropriatamente si ottiene:

Questo script definisce anche la variabile ambiente INPUTRC che permette alla Bash e a Readline di usare il file /etc/inputrc creato prima.

Sostituire [ll] con le due lettere del codice della propria lingua (es. “en”) e [CC] con le due lettere del codice del proprio paese (es. “GB”). Potrebbe anche essere necessario specificare (ed è attualmente la forma preferita) la propria codifica dei caratteri (es. “iso8859-1”) dopo un punto (cosi che il risultato sia “en_GB.iso8859-1”). Usare il seguente comando per maggiori informazioni:

man 3 setlocale

La lista di tutti le localizzazioni supportate dalle Glibc possono essere ottenute dal seguente comando:

locale -a

Una volta determinati i settaggi locali appropriati, creare il file /etc/profile:

cat > /etc/profile << "EOF"
# Begin /etc/profile

export LC_ALL=[ll]_[CC]
export LANG=[ll]_[CC]
export INPUTRC=/etc/inputrc

# End /etc/profile
EOF
[Nota]

Nota

Il “C” (predefinito) e “en_US” (raccomandati per utenti inglesi/americani) locali possono differire.

Configurare il layout della tastiera, il font per lo schermo e le variabili di ambiente relative alla località sono i soli passi per l'internazionalizzazione necessari per supportare localizzazioni che usino una codifica ordinaria a byte singolo e una direzione di scrittura da sinistra a destra. Casi più complessi (incluse localizzazioni basate su UTF-8) richiedono passi e patch aggiuntivi, perché molte applicazioni tendono a non funzionare correttamente in tali condizioni. Questi passi e patch non sono incluse nel libro e tali localizzazioni non sono supportate da LFS in nessun modo.