Menu Fermer

Comment définir les variables d’environnement sous Linux

Dans un article précédent, je présentais les variables d’environnement de Linux.
Lorsque vous installez un nouveau logiciel dans Linux, il peut être nécessaire d’ajouter de nouvelles variables d’environnement.

Ainsi, pour un administrateur, il est important de savoir comment définir une variable d’environnement.

Dans ce tutoriel, vous apprendrez à définir, afficher et désactiver les variables d’environnement sous Linux.

Comment définir les variables d'environnement sous Linux

Quelles sont les commandes pour gérer les variables d’environnement

Il existe plusieurs commandes permettant de lister et de définir les variables d’environnement sous Linux :

  • env – Cette commande vous permet d’exécuter un autre programme dans un environnement personnalisé sans modifier l’environnement actuel. Lorsqu’elle est utilisée sans argument, elle imprime une liste des variables d’environnement actuelles
  • printenv – Cette commande affiche toutes les variables d’environnement ou celles qui sont spécifiées
  • set – La commande définit ou annule les variables de l’interpréteur de commandes. Lorsqu’elle est utilisée sans argument, elle affiche une liste de toutes les variables, y compris les variables d’environnement et de l’interpréteur de commandes, ainsi que les fonctions de l’interpréteur de commandes
  • unset – La commande supprime les variables de l’interpréteur de commandes et de l’environnement
  • export – La commande définit les variables d’environnement

Comment lister les variables d’environnement dans Linux

Afficher les variables d’environnement avec printenv

Utilisez la commande printenv pour afficher toutes les variables d’environnement. Comme la liste comporte de nombreuses variables, utilisez la commande less pour contrôler l’affichage :

printenv | less

La sortie affichera la première page de la liste et vous permettra d’aller plus loin en appuyant sur Espace pour voir la page suivante ou sur Entrée pour afficher la liste des variables d’environnement.

Comment lister les variables d'environnement dans Linux

Afficher toutes les variables d’environnement avec set

Les commandes printenv et env n’impriment que les variables d’environnement. Si vous souhaitez obtenir une liste de toutes les variables, y compris les variables d’environnement, de l’interpréteur de commandes et les fonctions de l’interpréteur de commandes, vous pouvez utiliser la commande set :

set | less
Comment lister les variables d'environnement dans Linux

Afficher toutes les variables d’environnement avec export

La commande export est utilisée pour définir des variables.
Toutefois, sans argument, elle liste les variables d’environnement.

export

Si vous désirez en plus lister les fonctions, ajoutez l’option -p :

export -p
Comment lister les noms de variables et fonctions avec la commande export

Recherche d’une seule variable d’environnement

Pour vérifier la valeur d’une seule variable d’environnement, utilisez la commande suivante :

Quittez la vue en appuyant sur Q.

printenv <NOM_VARIABLE>

La valeur de la variable EDITOR qui correspond à l’éditeur de texte par défaut :

printenv EDITOR

Vous pouvez spécifier plusieurs variables séparée par un espace. Par exemple, pour obtenir la valeur des variables EDITOR, USER et HOME :

printenv EDITOR USER HOME
Recherche d'une seule variable d'environnement dans Linux

Vous pouvez également afficher la valeur d’une variable à l’aide de la commande echo. La syntaxe est la suivante

echo $<NOM_VARIABLE>

Par exemple :

echo $HOME
Recherche d'une seule variable d'environnement dans Linux

Recherche de variables d’environnement spécifiques

Pour trouver toutes les variables contenant une certaine chaîne de caractères, utilisez la commande grep :

printenv | grep <NOM_VARIABLE>

La sortie de la recherche pour la variable USER affiche les lignes suivantes :

Recherche de variables d'environnement spécifiques dans Linux

Utilisation de la commande printenv avec grep pour rechercher la variable USER
Une autre commande que vous pouvez utiliser pour vérifier les variables d’environnement est set. Toutefois, cette commande inclura également les variables locales, ainsi que les variables et les fonctions de l’interpréteur de commandes.

Trouvez une variable d’environnement dans la liste qui contient toutes les variables et fonctions de l’interpréteur de commandes en utilisant set | grep :

set | grep <NOM_VARIABLE>

Comment définir une variable d’environnement sous Linux

Variable d’environnement du shell

La manière la plus simple de définir une variable à l’aide de la ligne de commande est de taper son nom suivi d’une valeur :

<NOM_VARIABLE>=<valeur_variable>

À titre d’exemple, créez une variable appelée EXEMPLE avec une valeur texte. Si vous tapez la commande correctement, l’interpréteur de commandes ne fournit aucune sortie.
La commande set | grep confirme la création de la variable. Cependant, printenv ne renvoie aucune sortie.

Comment définir une variable d'environnement sous Linux

Cela s’explique par le fait que la variable créée de cette manière est une variable de l’interpréteur de commandes.

Une autre façon de le confirmer est de taper bash et de démarrer une session shell enfant. L’utilisation de la commande echo pour rechercher la variable EXAMPLE ne renvoie aucune information :

Comment définir une variable d'environnement sous Linux

Avec la commande export

  • Si vous souhaitez transformer une variable de l’interpréteur de commandes en une variable d’environnement, revenez à l’interpréteur de commandes parent et exportez-la à l’aide de la commande export de Linux :
export <NOM_VARIABLE>
  • Utilisez printenv pour confirmer la réussite de l’exportation :

Comment définir une variable d’environnement sous Linux de manière permanente

Si vous souhaitez qu’une variable persiste après la fermeture de la session shell, vous devez la définir en tant que variable d’environnement de manière permanente. Vous pouvez choisir de la définir pour l’utilisateur actuel ou pour tous les utilisateurs.

  • Pour définir des variables d’environnement permanentes pour un seul utilisateur, modifiez le fichier .bashrc :
sudo nano ~/.bashrc
  • Écrivez une ligne pour chaque variable que vous souhaitez ajouter en utilisant la syntaxe suivante :
export <NOM_VARIABLE>=<valeur variable>
Comment définir une variable d'environnement sous Linux de manière permanente
  • Enregistrez et quittez le fichier. Les modifications sont appliquées après le redémarrage de l’interpréteur de commandes. Si vous souhaitez appliquer les modifications pendant la session en cours, utilisez la commande source :
source ~/.bashrc
  • Pour définir des variables d’environnement permanentes pour tous les utilisateurs, créez un fichier .sh dans le dossier /etc/profile.d :
sudo nano /etc/profile.d/<nom de fichier>.sh
  • La syntaxe pour ajouter des variables au fichier est la même que pour le fichier .bashrc :
  • Enregistrez et quittez le fichier. Les modifications sont appliquées lors de la prochaine connexion.
Comment définir une variable d'environnement sous Linux de manière permanente

Comment désactiver une variable d’environnement

Pour désactiver une variable d’environnement, utilisez la commande unset :

unset <NOM_VARIABLE>

Cette commande supprime définitivement les variables exportées par une commande de terminal.

Les variables stockées dans les fichiers de configuration sont également supprimées de la session shell en cours. Toutefois, elles sont à nouveau définies lors de la prochaine connexion.

Pour annuler définitivement une variable stockée dans un fichier, allez dans le fichier et supprimez la ligne contenant la définition de la variable.