Linux & Open Source - Questa è una piccola "visita guidata" ad alcune delle più importanti "variabili d'ambiente" (environment variables) di Bash, la shell di default delle distribuzioni GNU/Linux moderne.
HOME: directory home dell'utente corrente. Il comando cd ~, o semplicemente cd equivale a cd $HOME, così come echo $HOME equivale a echo ~.
IFS: variabile speciale, conosciuta anche come Internal Field Separator, che contiene separatori di campi. Il suo valore di default è <spazio><tab><newline>. Non cambiatela.
PATH: una lista di percorsi, separati da due punti (:), in cui la shell va a cercare comandi e applicazioni. Comandi situati in directory diverse da quelle specificate in PATH devono essere richiamati con il loro percorso assoluto.
PS1: contiene il prompt che compare appena effettuiamo un login ad una console testuale, o appena apriamo un terminale testuale in X. È trattata nel dettaglio in questo articolo.
PS2: prompt testuale secondario, lo potete vedere con echo \. (Premete Invio per tornare al prompt primario.) Serve ad indicare all'utente che la shell richiede ulteriori input per poter completare la riga di comando. Può essere molto utile per spezzare una lunga linea di comando in più righe, di modo da renderla più comprensibile, e si può modificare esattamente allo stesso modo di PS1. (Esistono anche PS3 e PS4, ma non le tratterò qui.)
BASH: il percorso completo usato per eseguire la shell Bash in uso. È equivalente all'invocazione di readlink /proc/$(echo $$)/exe.
COLUMNS: il numero di colonne presente nel terminale testuale in uso.
HISTSIZE: il numero massimo di comandi memorizzabili nella cronologia della shell e richiamabili con freccia su, freccia giù, pgup o pgdown. Il valore di default è 500. Si può diminuire senza problemi per risparmiare spazio in RAM, o azzerare per questioni di sicurezza.
HOSTNAME: il nome di rete del computer in cui si è effettuato il login.
LINES: il numero di linee nel terminale testuale in uso.
MACHTYPE: l'architettura hardware, come definita da glibc e gcc, su cui Bash è in esecuzione. Equivale alla lettura di echo ${BASH_VERSINFO[5]} o a gcc -dumpmachine su macchine dove sia installato un ambiente di compilazione. (L'output di echo $MACHTYPE e gcc -dumpmachine potrebbe differire in alcune distribuzioni.)
OLDPWD: l'ultima directory in cui siete stati, in ordine cronologico, prima di quella corrente.
PPID: l'ID del processo genitore di Bash. Potete vedere quale programma ha generato l'istanza corrente di Bash con readlink /proc/$PPID/exe (o con cat /proc/$PPID/cmdline).
PWD: la directory in cui siete ora.
RANDOM: un valore pseudocasuale intero compreso tra 0 e 32767. Se alla variabile viene assegnato un valore esso funge da seme per il randomizzatore di Bash.
SHLVL: il "livello" della presente istanza di Bash. Viene incrementato man mano che vengono innestate ulteriori shell Bash sopra quella originaria. Se non viene modificato manualmente permette di capire quante shell sono state innestate nello stesso terminale.
UID: l'user ID dell'utente corrente. Ha lo stesso effetto di id -u.
USER: il login name dell'utente corrente. Ha lo stesso effetto di whoami.