Sous Linux, savoir comment définir et supprimer une variable d'environnement s est indispensable pour gérer vos hébergeurs.
Les variables d'environnement sont un ensemble de paires clé-valeur stockées sur votre Linux et utilisées par les processus afin de pouvoir effectuer des opérations spécifiques.
Un exemple très populaire est lorsque vous essayez de définir le fuseau horaire sur votre système Linux.
Vous devrez peut-être définir des variables d'environnement pour que l'heure de votre système change.
Les variables d'environnement peuvent également être utilisées dans des programmes shell ou dans des sous-shells afin d'effectuer diverses opérations (par exemple savoir si l'utilisateur courant est root ou non).
Dans ce tutoriel, nous allons voir comment vous pouvez définir , désactivé et énumérer toutes les variables d'environnement sur votre système. Nous allons également examiner des fichiers spécifiques qui peuvent vous aider à définir facilement des variables d'environnement.
Définir les variables d'environnement sur Linux à l'aide de l'exportation
Sous Linux, vous disposez de différentes manières de définir vos variables d'environnement selon que vous souhaitez les rendre persistantes ou non.
Le moyen le plus simple de définir des variables d'environnement consiste à utiliser la commande d'exportation.
$ export VAR="value"
En utilisant l'exportation, votre variable d'environnement sera définie pour la session shell en cours.
Par conséquent, si vous ouvrez un autre shell ou si vous redémarrez votre système, votre variable d'environnement ne sera plus accessible. Si vous avez besoin de variables d'environnement persistantes, vous pouvez vous référer à la section suivante.
Pour obtenir la valeur de votre variable d'environnement, vous pouvez utiliser la commande "printenv" avec la variable que vous recherchez.
$ printenv <variable>
Par exemple, étant donné l'exemple cité ci-dessus, vous exécuteriez la commande suivante.
$ printenv VAR
value
Alternativement, vous pouvez utiliser des pipes Linux afin d'obtenir la valeur de vos variables d'environnement.
Vous pouvez également utiliser la commande echo mais vous devez avoir un signe dollar avant le nom de la variable.
$ echo $VAR
value
Définir des variables d'environnement persistantes sous Linux
Comme vous l'avez vu dans la section précédente, les variables d'environnement n'étaient pas persistantes lors des redémarrages du shell.
Cependant, il existe un moyen de rendre vos modifications persistantes :en utilisant des fichiers système qui sont lus et exécutés dans des conditions spécifiques.
Utiliser le fichier .bashrc
Le moyen le plus courant de définir des variables d'environnement de manière persistante consiste à les ajouter au fichier ".bashrc".
Le fichier ".bashrc" est un script exécuté chaque fois que vous initialisez une session shell interactive .
Par conséquent, lorsque vous lancez un nouveau Terminal via l'interface GNOME ou si vous utilisez simplement une session screen, vous allez utiliser le fichier .bashrc.
Par exemple, ajoutez les entrées suivantes à votre fichier .bashrc.
$ export TZ="America/New_York"
Enregistrez votre fichier et utilisez la commande source pour recharger le fichier bashrc pour votre session shell actuelle.
$ source ~/.bashrc
Vous pouvez imprimer votre nouvelle variable d'environnement avec "printenv" et voir comment votre date a été définie sous Linux en modifiant TZ.
$ printenv TZ
America/New_York
$ date
Sat 19 Oct 2019 10:03:00 AM EDT
Génial, vos modifications sont désormais persistantes lors des rechargements du shell ou du système.
Utiliser .bash_profile
Alternativement, si vous envisagez de vous connecter à vos sessions via des "shells de connexion", vous pouvez également ajouter vos variables d'environnement directement dans le fichier .bash_profile.
$ export TZ="America/New_York"
$ source ~/.bash_profile
Utiliser etc/environnement
Dans la section précédente, nous avons vu comment définir des variables d'environnement pour les utilisateurs de votre système.
Cependant, vous souhaiterez peut-être appliquer des variables d'environnement spécifiques pour tout le monde. Dans ce cas, vous allez définir des variables d'environnement à l'échelle du système.
Pour définir des variables d'environnement à l'échelle du système sous Linux, vous devez exporter vos variables dans le fichier /etc/environment.
Par exemple, pour changer l'éditeur utilisé globalement, vous pouvez modifier la variable EDITOR dans le fichier d'environnement.
$ export EDITOR="vi"
Maintenant, essayez de vous connecter en tant qu'utilisateurs différents sur votre système, et vous verrez que la variable EDITOR est définie pour tout le monde sur le serveur.
[email protected]:~$ printenv EDITOR
vi
Génial! Vous avez réussi à définir vos variables d'environnement de manière persistante sur Linux.
Définir les variables d'environnement sur une seule ligne
Maintenant que vous connaissez les détails sur la façon de définir les variables d'environnement, vous pouvez utiliser ces raccourcis afin de les définir facilement.
# One line for .bashrc
$ echo "export VAR="value"" >> ~/.bashrc && source ~/.bashrc
# One line for bash_profile
$ echo "export VAR="value"" >> ~/.bash_profile && source ~/.bash_profile
# One line for /etc/environment
$ echo "export VAR="value"" >> /etc/environment && source /etc/environment
Désactiver les variables d'environnement sous Linux
Maintenant que vous avez défini de nombreuses variables d'environnement sur votre système, vous souhaiterez peut-être en désactiver certaines si vous ne les utilisez plus.
Sous Linux, il existe deux façons de supprimer les variables d'environnement :en utilisant la commande unset ou en supprimant les entrées de variables dans vos fichiers système.
Utilisation de la commande unset
Pour annuler la définition d'une variable d'environnement, utilisez la commande unset avec la syntaxe suivante
$ unset <variable>
Compte tenu des exemples cités ci-dessus, vous exécuteriez ces commandes
$ unset USERNAME
$ printenv USERNAME
<nothing>
Utilisation de la commande set -n
Alternativement, vous pouvez désactiver les variables d'environnement en utilisant la commande set avec le drapeau "-n".
$ set -n USERNAME
$ printenv USERNAME
<nothing>
Ensemble commun de variables d'environnement sous Linux
Maintenant que vous savez comment définir et annuler les variables d'environnement sous Linux, il est temps d'examiner l'ensemble commun de variables d'environnement que vous pouvez trouver sur votre système.
- UTILISATEUR :le nom d'utilisateur actuel de l'utilisateur utilisant le système ;
- EDITEUR :le programme exécuté pour effectuer des modifications de fichiers sur votre hôte ;
- ACCUEIL :le répertoire personnel de l'utilisateur actuel ;
- CHEMIN :une liste de répertoires séparés par des virgules dans lesquels le système recherche les commandes ;
- PS1 :la chaîne d'invite principale (pour définir l'affichage de l'invite du shell) ;
- PWD :le répertoire de travail courant ;
- _ :la dernière commande exécutée sur le système (par l'utilisateur)
- MAIL :le chemin d'accès à la boîte aux lettres de l'utilisateur actuel ;
- SHELL :le shell utilisé pour interpréter les commandes sur le système, il peut être très différent (comme bash, sh, zsh ou autres) ;
- LANG :l'encodage de langue utilisé sur le système ;
- DESKTOP_SESSION :le bureau actuellement utilisé sur votre hôte (GNOME, KDE)
- HISTFILESIZE :nombre de lignes de l'historique des commandes stockées dans le fichier historique ;
- HISTSIZE :nombre de lignes d'historique autorisées en mémoire ;
- UID :l'UID actuel de l'utilisateur
Définir la variable d'environnement PATH sous Linux
Sur les systèmes Linux, il est très courant de définir la variable d'environnement PATH afin que le système puisse localiser les commandes.
Pour afficher votre variable d'environnement PATH actuelle, exécutez la commande printenv
$ printenv PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Pour définir la variable d'environnement PATH, ajoutez une ligne d'exportation à votre fichier .bashrc et sourcez-le.
$ echo "export PATH="<path>:$PATH"" >> ~/.bashrc && source ~/.bashrc
$ printenv PATH
<path>:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Vous avez mis à jour avec succès votre variable d'environnement PATH sous Linux.
Conclusion
Dans le tutoriel d'aujourd'hui, vous avez appris que vous pouvez définir des variables d'environnement sous Linux de plusieurs manières :avec la commande d'exportation mais aussi en modifiant certains fichiers système pour les rendre persistants.
Vous avez également appris qu'il est possible de désactiver les variables d'environnement et comment mettre à jour facilement votre variable d'environnement PATH.
Si vous êtes intéressé par l'administration système Linux , nous avons plein de tutoriels sur le sujet dans notre catégorie dédiée.