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.
Table des matières
- 1 Quelles sont les commandes pour gérer les variables d’environnement
- 2 Comment lister les variables d’environnement dans Linux
- 3 Comment définir une variable d’environnement sous Linux
- 4 Comment définir une variable d’environnement sous Linux de manière permanente
- 5 Comment désactiver une variable d’environnement
- 6 Liens
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.
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
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
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
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 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 :
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.
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 :
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>
- 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é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.