Comprendre et configurer les variables d’environnement sous Linux et Unix

Sous les systèmes Linux et Unix, une variable d’environnement est une paire clé-valeur dynamique exploitée par le système d’exploitation et les programmes pour déterminer leur comportement ou localiser des ressources. Qu’il s’agisse de définir la langue du terminal avec LANG, le répertoire utilisateur avec HOME, ou la liste des dossiers contenant des exécutables avec PATH, leur maîtrise est indispensable à tout administrateur système.

Afficher et inspecter les variables actives

Avant de manipuler vos variables, plusieurs commandes permettent de consulter leur contenu actuel. Pour examiner l’ensemble des variables exportées dans votre session courante, exécutez simplement :

env ou printenv

Pour vérifier la valeur d’une variable précise, utilisez la commande echo préfixée du symbole dollar :

echo $PATH

Définir une variable temporaire avec export

Lorsque vous assignez une variable directement dans votre invite de commande (par exemple MON_APP=/opt/app), celle-ci n’est accessible que dans le sous-shell local. Elle ne sera pas transmise aux sous-processus lancés depuis ce terminal.

Pour la rendre disponible aux scripts et programmes enfants, vous devez recourir à l’instruction export :

export LC_ALL=en_US.UTF-8

Cette affectation reste néanmoins volatile : dès la fermeture de la console ou l’arrêt de votre session, la modification est perdue.

Ajouter un dossier au PATH

Le cas d’usage le plus fréquent consiste à ajouter un répertoire d’exécutables personnels au chemin de recherche global, évitant ainsi de devoir saisir le chemin absolu à chaque commande.

La variable PATH contient une série de répertoires séparés par deux-points (:). Pour ajouter un chemin sans écraser les dossiers existants, on concatène la nouvelle valeur à l’ancienne :

export PATH=$PATH:/opt/outils/bin

Dans certains cas, plutôt que de surcharger le PATH avec de multiples dossiers, il est souvent plus propre de créer un lien symbolique linux pointant directement vers un répertoire déjà standard comme /usr/local/bin.

Rendre les variables persistantes

Pour qu’une variable survive à un redémarrage ou soit active à chaque nouvelle connexion, elle doit être inscrite dans les fichiers d’initialisation du shell :

Configuration par utilisateur

Si vous souhaitez appliquer la variable uniquement à votre compte :

  • Éditez le fichier ~/.bashrc pour les sessions interactives (terminaux graphiques, SSH sans login shell).
  • Ajoutez votre instruction à la fin : export PATH=$PATH:/opt/outils/bin.
  • Appliquez immédiatement les changements sans vous déconnecter avec : source ~/.bashrc.

Configuration globale pour tous les utilisateurs

Sur les distributions modernes, modifier directement /etc/profile n’est plus la méthode recommandée car ce fichier peut être écrasé lors des mises à jour du système.

La bonne pratique consiste à déposer un script dédié dans /etc/profile.d/ :

  1. Créez un fichier tel que /etc/profile.d/mes_outils.sh.
  2. Insérez vos instructions export à l’intérieur.
  3. Attribuez les droits de lecture et d’exécution au fichier.

Pour valider la prise en compte sur une session distante, il suffit parfois de déconnecter une session en ligne de commande puis de vous réauthentifier.