22/11/2024

Commandes et Système

Comment utiliser les variables d’environnement sous Linux ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à utiliser les variables d'environnement sous Linux. Sur les différents systèmes d'exploitation, les variables d'environnement jouent un rôle précieux, c'est donc une notion à connaître.

Une variable d'environnement est déclarée au niveau du système. Il s'agit d'une variable utilisée par des processus ou des applications afin de définir des chemins ou des raccourcis d'information. Le fait qu'elles soient accessibles par les différents processus est une différence notable en comparaison des variables définies dans le shell.

Cet article explique comment lister les variables d'environnement, mais également comment définir ou supprimer une variable d'environnement. J'utilise une machine sous Kali Linux, mais vous pouvez utiliser une autre distribution (Debian, Ubuntu, RHEL, Fedora, Rocky Linux, etc.).

Version originale : 13 décembre 2012

II. Les variables d'environnement les plus courantes

Que ce soit sous Linux ou Windows, il y a des variables d'environnement prédéfinies. Voici les plus courantes :

  • HOSTNAME : nom d'hôte
  • PWD : répertoire de travail actuel, c'est-à-dire le répertoire dans lequel on se situe (d'un point de vue du shell)
  • HOME : emplacement du répertoire personnel de l'utilisateur, que l'on appelle son "home"
  • SHELL : interpréteur de commandes actuel (bash, zsh, ...)
  • LOGNAME : nom de l'utilisateur actuellement connecté.
  • UID : identifiant unique de l'utilisateur (par exemple : 1000). Information visible dans le fichier /etc/passwd.

Cette liste n'est pas exhaustive et peut varier d'une distribution à une autre.

Remarque : la casse est importante dans le nom des variables !

Nous pouvons, sous Linux, voir les variables d'environnement qui sont présentes par défaut en entrant l'une des deux commandes suivantes :

printenv
env

Pour une meilleure visibilité s'il y a beaucoup de variables d'environnement, utilisez cette commande pour parcourir la liste progressivement :

printenv | less

Ce qui retourne, par exemple :

Lister les variables environnement Linux

Les variables d'environnement sont dynamiques, c'est à dire que leurs valeurs peuvent chacune changer en fonction de divers paramètres comme l'utilisateur, l'endroit où l'on se trouve sur le serveur, le langage que nous utilisons, etc.

À titre d'exemple, nous pouvons nous pencher sur la variable "$PWD" pour mieux comprendre le fonctionnement d'une variable d'environnement. Si nous nous rendons dans "/var" puis que nous regardons le contenu de la variable d'environnement "$PWD", nous aurons ce résultat :

cd /var
echo $PWD
Linux - Variable PWD - Exemple 1

Si maintenant nous nous rendons dans "/home" et que nous faisons la même chose, nous verrons que la variable n'a plus la même valeur !

cd /home
echo $PWD
Linux - Variable PWD - Exemple 2

En lisant cet article, vous venez de remarquer une chose : nous pouvons afficher le contenu d'une variable en précédent son d'un "$" et de la commande "echo". Nous pouvons aussi utiliser printenv. Ce qui donne :

echo $PWD
printenv PWD

Sur une machine Linux, chaque utilisateur peut avoir des variables d'environnement spécifiques, bien qu'il y ait des variables d'environnement déclarées au niveau de la machine.

III. Définir une variable d'environnement sous Linux

Pour définir une nouvelle variable, nous pouvons utiliser la syntaxe suivante :

NomVariable=ValeurVariable

Voici un exemple :

SCRIPTS=/home/kali/scripts/

Le problème, c'est que cette variable est accessible uniquement dans notre shell actuel. Autrement dit, elle n'est pas accessible par les autres processus, car c'est une simple variable shell. De ce fait, elle ne sera pas visible dans le résultat de la commande printenv.

Pour "transformer" la variable shell en variable d'environnement, nous devons utiliser la commande export. Ce qui donne :

export SCRIPTS=/home/kali/scripts/

Ainsi, elle sera présente dans la liste des variables d'environnement :

Créer variable environnement Linux avec export

À tout moment, nous pouvons afficher la valeur de cette variable :

echo $SCRIPTS

Elle retourne bien la valeur "/home/kali/scripts". On pourra alors utiliser cette variable dans un fichier de configuration, un script, etc...

Attention, il est important de préciser que cette variable d'environnement n'est disponible que pour la session en cours !

Comment faire pour créer une variable d'environnement persistante ? C'est ce que nous allons voir.

IV. Créer une variable d'environnement persistante sous Linux

Une variable d'environnement peut être persistante pour un seul utilisateur ou pour tous les utilisateurs de la machine. A vous de voir, selon vos besoins.

Pour que ce soit persistant pour votre utilisateur actuel, vous devez ajouter la commande export (identique à celle précisée précédemment) dans le fichier "/home/$USER/.bashrc" de l'utilisateur en cours. Vous pouvez éditer ce fichier nano ou vi...

nano /home/$USER/.bashrc

Puis, vous ajouter la ou les variables d'environnement de votre choix :

Variable environnement persistante bashrc linux

Le fichier ".bashrc" sera chargé lorsque le shell actuel sera relancé. Sinon, vous pouvez charger le fichier immédiatement avec cette commande :

source ~/.bashrc

Désormais, les variables d'environnement sont présentes dans votre session.

Pour créer une variable d'environnement pour tous les utilisateurs, ce qui est utile et nécessaire avec certaines applications (connecteur ODBC Oracle, par exemple), vous devez créer un fichier ".sh" dans le répertoire suivant :

/etc/profile.d/

Il contient déjà des fichiers. Vous pouvez ajouter le vôtre, par exemple :

sudo nano /etc/profile.d/var.sh
Variable environnement persistante pour tous les utilisateurs Linux

Il suffit d'ajouter la ligne "export" et le tour est joué !

V. Supprimer une variable d'environnement

La suppression d'une variable peut se faire avec la commande "unset" qui est faite pour effacer complètement une variable d'environnement (pour la session en cours !) :

unset $SCRIPTS

Pour supprimer une variable d'environnement de façon définitive, pensez à retirer sa déclaration dans le fichier ".bashrc" ou le fichier dans "profile.d"

On pourra ensuite vérifier que la variable a été correctement supprimée :

printenv

VI. Conclusion

Suite à la lecture de ce tutoriel, vous en savez beaucoup plus sur l'utilisation et le fonctionnement des variables d'environnement sur une machine Linux !

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

3 commentaires sur “Comment utiliser les variables d’environnement sous Linux ?

  • Pour supprimer une variable d’environnement il faut utilser:
    unset VAR et non unset $VAR.

    Répondre
  • Bounjour m: Florian BURNEL je suis on formation cybersécurité en CNAM et je besoin de site internet pour faire les conpitons ou netr pour le pratique svp

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.