Environnement et configuration
La gestion des variables d'environnement dépend du shell utilisé. On suppose ici que vous utilisez le shell par défaut sous Linux/Ubuntu : bash. Ces variables servent à deux choses essentiellement :
- personnaliser son shell (par exemple la langue, les chemins vers les exécutables, ...)
- stocker des paramètres pour plus tard (l'ancien dossier courant par exemple)
L'ensemble de ces variables d'environnement sont disponibles avec la commande env
ou export
sans paramètre.
Création d'une variable d'environnement
Une variable d'environnement n'est rien d'autre qu'une variable d'un type spécial. Leur intérêt principal est d'être transmise aux shell enfant.
Testons ça dans un terminal :
- création d'une variable simple :
x="coucou"
- création d'un shell enfant :
bash
- on vérifie que
x
n'est pas une variable de ce shell :echo ${x}
- on sort du shell enfant :
exit
On Va maintenant promouvoir x
en variables d'environnement :
export x
On peut refaire les manipulation précédente et voir que x
est bien définie pour le shell enfant.
Sous bash on peut supprimer x de la liste des variables d'environnements par export -n x
.
Utilisation des variables d'environnements
Variables classiques
TBD y en a t il d'autres ?
$PATH
$PWD
$OLDPATH
(cd -
)$HOME
La commande cd
change la variable $PWD
du shell courant. Ce qui fait que cd
ne peut-être un fichier exécutable.
Pourquoi ?
solution
solution
Un fichier exécutable est crée dans un sous shell. Il ne peut donc modifier les variables de son shell parent.
Modification locale de l'environnement
On peut modifier l'environnement d'exécution d'une commande. Par exemple, pour avoir le manuel de man en anglais :
LANG=C man man
On modifie la variable pour le process qui exécutera la commande : comme c'est un process enfant, la variable du shell parent nest pas modifiée.