env-variables
Variables d'environnement sous Linux : Comment lister, définir et gérer les variables d'environnement
- Introduction
Les variables d'environnement sous Linux sont des valeurs dynamiques stockées dans la mémoire système. Elles influencent le comportement des processus et des applications et spécifient les préférences utilisateur, les chemins d'accès système et les paramètres de configuration.
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.
Que sont les variables d'environnement ?
Les variables d'environnement sous Linux sont des paires clé-valeur qui définissent l'environnement d'exploitation des processus. Elles fournissent des informations de configuration essentielles, telles que les chemins d'accès aux fichiers, les informations relatives à l'utilisateur et les paramètres de comportement du système. Ces variables peuvent être propres au système ou à l'utilisateur et sont héritées par les processus enfants.
Un exemple de variable d'environnement est la variable PATH. Elle spécifie les répertoires dans lesquels le système recherche les exécutables. Pour voir la valeur d'une variable, utilisez la commande echo ou printenv :
echo $PATH
Créer une nouvelle variable
- Pour créer une nouvelle variable, utilisez la syntaxe ci-dessous :
VARIABLE_NAME=value
Si une variable a plus d'une valeur, séparez-les par un point-virgule :
VARIABLE_NAME=value_1:value_2
Utilisez des guillemets pour les variables contenant des espaces :
VARIABLE_NAME="Value text"
Types de variables d'environnement
Les variables d'environnement sous Linux peuvent être classées en fonction de leur portée et de leur persistance. Ces classifications déterminent qui peut accéder aux variables, où elles sont définies et combien de temps elles restent actives. Les principaux types sont :
-
System Environment Variables Variables globales qui s'appliquent à tous les utilisateurs et processus du système. Elles sont généralement définies dans des fichiers de configuration à l'échelle du système, tels que /etc/environment, /etc/profile ou /etc/profile.d/. Les modifications apportées à ces variables nécessitent des autorisations administratives et affectent l'environnement de tous les utilisateurs.
-
User Environment Variables
Elles sont propres à chaque utilisateur et sont stockées dans les fichiers de configuration de son profil, tels que ~/.bashrc, ~/.bash_profile ou ~/.zshrc. Les modifications apportées aux variables d'environnement de l'utilisateur n'affectent que l'environnement de l'utilisateur concerné et sont chargées lorsque l'utilisateur démarre une nouvelle session.
- Session Variables
Variables temporaires qui n'existent que pour la session shell en cours. Elles ne sont pas conservées après la fin de la session, sauf si l'utilisateur les ajoute à un fichier de configuration.
- Persistent Variables
Variables qui persistent au fil des sessions et des reboots. Elles sont généralement définies dans des fichiers de configuration tels que /etc/environment (à l'échelle du système) ou **~/.bashrc **(spécifique à l'utilisateur) pour garantir qu'elles sont automatiquement chargées à chaque démarrage d'une nouvelle session.
- Read-Only Variables
Variables immuables qui ne peuvent pas être modifiées ou annulées après avoir été définies. Elles sont créées à l'aide de la commande readonly. La commande garantit que leurs valeurs restent constantes pendant la session.
Variables d'environnement courantes sous Linux
Il existe plusieurs variables d'environnement prédéfinies sous Linux auxquelles les utilisateurs et les applications ont généralement recours. Vous trouverez ci-dessous certaines des plus fréquemment utilisées :
- PATH - Spécifie les répertoires dans lesquels le système recherche des fichiers exécutables.
- PWD - Répertoire de travail actuel.
- HOME - Emplacement du répertoire d'origine de l'utilisateur.
- USER - Enregistre le nom d'utilisateur de l'utilisateur actuellement connecté.
- SHELL - L'interpréteur de commandes par défaut de l'utilisateur (bash, zsh, etc.).).
- UID - Identifiant unique de l'utilisateur.
- HOSTNAME - Nom d'hôte du périphérique sur le réseau.
- LANG - Langue du système et paramètres de localisation.
- MAIL - Répertoire de courrier de l'utilisateur.
- EDITOR - Éditeur de texte par défaut du système Linux.
- TEMP - Répertoire des fichiers temporaires.
Comment lister les variables d'environnement sous Linux
Il est essentiel de pouvoir répertorier et afficher les variables d'environnement pour résoudre les problèmes et personnaliser le système et les programmes. Linux propose plusieurs méthodes pour répertorier les variables d'environnement, ce qui permet aux utilisateurs d'inspecter les paramètres globaux et ceux propres à une session.
Afficher toutes les variables d'environnement
Utilisez la commande printenv pour afficher toutes les variables d'environnement. Comme il existe de nombreuses variables dans la liste, utilisez la commande less pour contrôler l'affichage :
printenv | less
La sortie affiche la première page de la liste et vous permet d'aller plus loin en appuyant sur Espace pour voir la page suivante ou sur Entrée pour afficher la ligne suivante :
Quittez la vue avec q.
Rechercher des variables d'environnement spécifiques
Utilisez la syntaxe suivante pour vérifier une seule valeur de variable d’environnement :
printenv HOME
La valeur de la variable HOME est le chemin du dossier personnel.
- Trouver des variables avec echo
Vous pouvez également afficher la valeur d'une variable avec la commande echo. La syntaxe est la suivante :
echo $HOME
- Rechercher des variables à l'aide de chaînes
Si vous souhaitez rechercher toutes les variables contenant une certaine chaîne de caractères, dirigez la sortie printenv vers le grep
printenv | grep $USER
- Trouver des variables avec un ensemble
Une autre commande que vous pouvez utiliser pour vérifier les variables d'environnement est set. Cependant, cette commande inclura également les variables locales, ainsi que les variables et les fonctions shell.
Recherchez une variable d'environnement dans la liste qui contient toutes les variables et fonctions shell en canalisant la sortie de l'ensemble dans grep :
set | grep [VARIABLE_NAME]
Comment créer des variables d'environnement sous Linux
Créez des variables d'environnement sous Linux en définissant des paires clé-valeur qui stockent des données de configuration ou de session. Les sections ci-dessous montrent comment créer différents types de variables d'environnement sous Linux.
- Créer une variable d'environnement utilisateur
[VARIABLE_NAME]=[variable_value]
EXAMPLE="Hello World"
Dans cet exemple, nous avons créé une variable appelée EXAMPLE avec une valeur texte. Vous pouvez confirmer le succès avec :
set | grep EXAMPLE
Cependant, printenv ne renvoie aucune sortie car une variable créée de cette manière est une variable shell et non une variable d'environnement exportée.
Pour vérifier qu'il s'agit uniquement d'une variable shell, démarrez une session shell enfant en tapant bash. À l'intérieur du shell enfant, la variable n'existe pas.
L'utilisation de la commande echo pour rechercher la variable EXAMPLE ne renvoie désormais aucune sortie :
echo $EXAMPLE
Créer une variable d'environnement système
Les variables d'environnement système sont disponibles globalement pour tous les utilisateurs et processus. Leur création nécessite des privilèges d'administrateur et elles sont stockées dans des fichiers de configuration système.
- Utilisez un éditeur de texte tel que nano pour ouvrir le fichier /etc/environment en tant que sudo :
sudo nano /etc/environment
- Ajoutez le nom et la valeur de la variable à la fin du fichier. Utilisez le format suivant :
[VARIABLE_NAME]="value"
EXAMPLE="Bonjour le monde"
- Enregistrez le fichier et rechargez l'environnement :
source /etc/environment
Créer une variable d'environnement temporaire
Les variables temporaires n'existent que pendant la durée de la session shell en cours. Utilisez la commande export pour créer une variable d'environnement temporaire. La syntaxe est la suivante :
export [VARIABLE_NAME]="value"
## exemple:
export TEMP_VAR="Temporary Value"
Créer une variable d'environnement persistante
Les variables d'environnement persistantes sont conservées entre les sessions et les redémarrages. Pour créer une variable d'environnement persistante, ajoutez-la à un fichier de configuration :
Pour les variables spécifiques à l'utilisateur, ajoutez la commande export à ~/.bashrc, ~/.bash_profile ou ~/.zshrc, selon le shell que vous utilisez. Nous utiliserons bash :
echo 'export VARIABLE_NAME="value"' >> ~/.bashrc
Rechargez le fichier pour appliquer les modifications :
source ~/.bashrc
Comment exporter des variables d'environnement sous Linux
Exporter une variable d'environnement pour la rendre accessible aux processus enfants du shell actuel. Ce processus est essentiel lorsque vous souhaitez que les programmes ou les scripts lancés depuis le shell héritent de la variable.
Suivez les étapes ci-dessous pour exporter une variable d’environnement :
- Ouvrir un terminal et taper cette commande:
export [VARIABLE_NAME]="value"
# exemple:
export EXAMPLE="Exported Value"
- Confirmer l'export avec printenv :
printenv EXAMPLE
- Si vous ouvrez une session shell enfant maintenant, echo renvoie la valeur de la variable d'environnement :
echo $EXAMPLE
Comment supprimer les variables d'environnement sous Linux
Pour supprimer une variable d'environnement, utilisez la commande unset. La syntaxe est la suivante :
unset [VARIABLE_NAME]
# exemple
unset EXAMPLE
Conclusion
Cet article explique comment définir et désactiver les variables d'environnement sur un système Linux. Savoir comment définir les variables d'environnement vous aidera à configurer plus facilement les packages logiciels à l'avenir.