Présentation
Chaque fois que vous démarrez une session shell sous Linux, le système parcourt les fichiers de configuration et configure l'environnement en conséquence. Les variables d'environnement jouent un rôle important dans ce processus.
Dans ce didacticiel, vous apprendrez à définir, afficher et désactiver les variables d'environnement sous Linux.
Prérequis
- Toute distribution Linux (Debian, Ubuntu, RHEL, CentOS…)
- Accès à la ligne de commande
- Privilèges Sudo
Que sont les variables d'environnement :une définition
Les variables d'environnement sont des variables qui contiennent les valeurs nécessaires pour configurer un environnement shell. Contrairement aux variables shell, les variables d'environnement persistent dans les processus enfants du shell.
Structurellement, les variables d'environnement et de shell sont les mêmes - les deux sont une paire clé-valeur, séparées par un signe égal.
VARIABLE_NAME=value
Si une variable a plusieurs valeurs, séparez-les par un point-virgule :
VARIABLE_NAME=value_1:value_2
Les variables qui contiennent des espaces sont écrites entre guillemets :
VARIABLE_NAME="Value text"
Variables d'environnement les plus courantes
Voici quelques variables d'environnement qu'un utilisateur moyen peut rencontrer :
PWD
– Répertoire de travail actuel.HOME
– L'emplacement du répertoire personnel de l'utilisateur.SHELL
– Shell actuel (bash, zsh, etc.).LOGNAME
– Nom de l'utilisateur.UID
– Identifiant unique de l'utilisateur.HOSTNAME
– Nom d'hôte de l'appareil sur le réseau.MAIL
– Répertoire de messagerie de l'utilisateur.EDITOR
– L'éditeur de texte par défaut du système Linux.TEMP
– Emplacement du répertoire pour les fichiers temporaires.
Comment vérifier les variables d'environnement
Afficher toutes les variables d'environnement
Utilisez le printenv
commande pour afficher toutes les variables d'environnement. Puisqu'il y a beaucoup de variables sur la liste, utilisez le less
commande pour contrôler la vue :
printenv | less
La sortie affichera la première page de la liste et vous permettra ensuite d'aller plus loin en appuyant sur Espace pour voir la page suivante ou Entrée pour afficher la ligne suivante :
Quittez la vue en appuyant sur Q
.
Rechercher une seule variable d'environnement
Pour vérifier une seule valeur de variable d'environnement, utilisez la commande suivante :
printenv VARIABLE NAME
Le HOME
la valeur de la variable est le chemin du dossier de départ :
Alternativement, affichez la valeur d'une variable en utilisant le echo
commande. La syntaxe est :
echo $[VARIABLE_NAME]
Rechercher des variables d'environnement spécifiques
Pour trouver toutes les variables contenant une certaine chaîne de caractères, utilisez la commande grep :
printenv | grep [VARIABLE_NAME]
Le résultat de la recherche pour USER
variable affiche les lignes suivantes :
Une autre commande que vous pouvez utiliser pour vérifier les variables d'environnement est set
. Cependant, cette commande inclura également des variables locales, ainsi que des variables et des fonctions shell.
Trouvez une variable d'environnement dans la liste qui contient toutes les variables et fonctions shell en utilisant set | grep
:
set | grep [VARIABLE_NAME]
Définir une variable d'environnement sous Linux
La façon la plus simple de définir une variable à l'aide de la ligne de commande est de saisir son nom suivi d'une valeur :
[VARIABLE_NAME]=[variable_value]
1. À titre d'exemple, créez une variable appelée EXAMPLE
avec une valeur de texte. Si vous tapez la commande correctement, le shell ne fournit aucune sortie.
2. L'ensemble set | grep
La commande confirme la création de la variable. Cependant, printenv
ne renvoie aucune sortie.
En effet, la variable ainsi créée est une variable shell.
3. Une autre façon de le confirmer est de taper bash
et démarrer une session shell enfant. Utilisation de l'echo
commande pour rechercher l'EXAMPLE
la variable ne renvoie plus de sortie :
Comment exporter une variable d'environnement
1. Si vous souhaitez transformer une variable shell en variable d'environnement, revenez au shell parent et export
avec la commande d'exportation :
export [VARIABLE_NAME]
2. Utilisez printenv
pour confirmer l'exportation réussie :
3. Si vous ouvrez une session shell enfant maintenant, echo
renverra la valeur de la variable d'environnement :
La variable d'environnement ainsi créée disparaît une fois que vous avez quitté la session shell en cours.
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 le définir pour l'utilisateur actuel ou pour tous les utilisateurs.
1. Pour définir des variables d'environnement permanentes pour un seul utilisateur, modifiez le .bashrc
fichier :
sudo nano ~/.bashrc
2. Écrivez une ligne pour chaque variable que vous souhaitez ajouter en utilisant la syntaxe suivante :
export [VARIABLE_NAME]=[variable_value]
3. Enregistrez et quittez le fichier. Les modifications sont appliquées après le redémarrage du shell. Si vous souhaitez appliquer les modifications pendant la session en cours, utilisez la commande source :
source ~/.bashrc
4. Pour définir des variables d'environnement permanentes pour tous les utilisateurs, créez un .sh
fichier dans /etc/profile.d
dossier :
sudo nano /etc/profile.d/[filename].sh
5. La syntaxe pour ajouter des variables au fichier est la même qu'avec .bashrc
:
6. Enregistrez et quittez le fichier. Les modifications sont appliquées à la prochaine connexion.
Comment supprimer une variable d'environnement
Pour désactiver une variable d'environnement, utilisez le unset
commande :
unset [VARIABLE_NAME]
Cette commande supprime définitivement les variables exportées via une commande de terminal.
Les variables stockées dans les fichiers de configuration sont également supprimées de la session shell en cours. Cependant, ils sont à nouveau définis lors de la prochaine connexion.
Pour annuler définitivement une variable que vous avez stockée dans un fichier, accédez au fichier et supprimez la ligne contenant la définition de la variable.