Overview

Dans ce tutoriel, vous apprendrez à définir les variables d’environnement dans Ubuntu, CentOS, Red Hat, fondamentalement toute distribution Linux pour un seul utilisateur et globalement pour tous les utilisateurs. Vous apprendrez également comment lister toutes les variables d’environnement et comment annuler (effacer) les variables d’environnement existantes.

Les variables d’environnement sont couramment utilisées dans le shell Bash. C’est également un moyen courant de configurer les services et de gérer les secrets des applications web.

Il n’est pas rare que des informations spécifiques à l’environnement, comme les points de terminaison et les mots de passe, par exemple, soient stockées en tant que variables d’environnement sur un serveur. Elles sont également utilisées pour définir les emplacements de répertoire importants pour de nombreux paquets populaires, comme JAVA_HOME pour Java.

Définir une variable d’environnement

Pour définir une variable d’environnement, on utilise la commande export. Nous donnons à la variable un nom, qui est ce qui est utilisé pour y accéder dans les scripts shell et les configurations, puis une valeur pour contenir toutes les données nécessaires dans la variable.

export NAME=VALUE

Par exemple, pour définir la variable d’environnement pour le répertoire d’accueil d’une installation manuelle d’OpenJDK 11, nous utiliserions quelque chose de similaire à ce qui suit.

export JAVA_HOME=/opt/openjdk11

Pour sortir la valeur de la variable d’environnement à partir du shell, nous utilisons la commande echo et faisons précéder le nom de la variable du signe dollar ($).

echo $JAVA_HOME

Et tant que la variable a une valeur, elle sera sortie en écho. Si aucune valeur n’est définie, alors une ligne vide sera affichée à la place.

Désactivation d’une variable d’environnement

Pour désactiver une variable d’environnement, ce qui supprime complètement son existence, nous utilisons la commande unset. Le simple fait de remplacer la variable d’environnement par une chaîne vide ne la supprimera pas, et dans la plupart des cas, cela risque de causer des problèmes avec les scripts ou l’application qui attendent une valeur valide.

La syntaxe suivante est utilisée pour annuler une variable d’environnement

unset VARIABLE_NAME

Par exemple, pour annuler la variable d’environnement JAVA_HOME, nous utiliserions la commande suivante.

unset JAVA_HOME

Lister toutes les variables d’environnement définies

Pour lister toutes les variables d’environnement, nous utilisons simplement la commande set sans aucun argument.

set

Un exemple de sortie ressemblerait à quelque chose de similaire à ce qui suit, qui a été tronqué par souci de brièveté.

BASH=/bin/bashBASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=(="0") BASH_ARGV=() BASH_CMDS=() BASH_COMPLETION_VERSINFO=(="2" ="8") BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=(="5" ="0" ="3" ="1" ="release" ="x86_64-pc-linux-gnu") BASH_VERSION='5.0.3(1)-release' COLUMNS=208 DIRSTACK=() EUID=1000 GROUPS=() HISTCONTROL=ignoreboth HISTFILE=/home/ubuntu/.bash_history HISTFILESIZE=2000 HISTSIZE=1000 HOME=/home/ubuntu HOSTNAME=ubuntu1904 HOSTTYPE=x86_64 IFS=$' \t\n' LANG=en_US.UTF-8 LESSCLOSE='/usr/bin/lesspipe %s %s' LESSOPEN='| /usr/bin/lesspipe %s' LINES=54

Variables d’environnement persistantes pour un utilisateur

Lorsqu’une variable d’environnement est définie depuis le shell à l’aide de la commande export, son existence prend fin lorsque les sessions de l’utilisateur se terminent. Ceci est problématique lorsque nous avons besoin que la variable persiste à travers les sessions.

Pour rendre un environnement persistant pour l’environnement d’un utilisateur, nous exportons la variable à partir du script de profil de l’utilisateur.

  1. Ouvrir le profil de l’utilisateur actuel dans un éditeur de texte
    vi ~/.bash_profile
  2. Ajouter la commande d’exportation pour chaque variable d’environnement que vous voulez faire persister.
    export JAVA_HOME=/opt/openjdk11
  3. Sauvegarder vos modifications.

L’ajout de la variable d’environnement au profil bash d’un utilisateur seul ne l’exportera pas automatiquement. Cependant, la variable sera exportée la prochaine fois que l’utilisateur se connectera.

Pour appliquer immédiatement tous les changements à bash_profile, utilisez la commande source.

source ~/.bash_profile

Exporter une variable d’environnement

Exporter est une commande shell intégrée à Bash qui est utilisée pour exporter une variable d’environnement afin de permettre aux nouveaux processus enfants d’en hériter.

Pour exporter une variable d’environnement, vous exécutez la commande export tout en définissant la variable.

export MYVAR="my variable value"

On peut afficher une liste complète des variables d’environnement exportées en exécutant la commande export sans aucun argument.

export
SHELL=/bin/zshSHLVL=1SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.1pB5Pry8Id/ListenersTERM=xterm-256colorTERM_PROGRAM=vscodeTERM_PROGRAM_VERSION=1.48.2

Pour afficher toutes les variables exportées dans le shell actuel, vous utilisez le drapeau -p avec export.

export -p

Définir des variables d’environnement globales permanentes pour tous les utilisateurs

On peut créer une variable d’environnement permanente qui persiste après un redémarrage en l’ajoutant au profil par défaut. Ce profil est chargé par tous les utilisateurs du système, y compris les comptes de service.

Tous les paramètres globaux du profil sont stockés sous /etc/profile. Et bien que ce fichier puisse être édité répertoire, il est en fait recommandé de stocker les variables d’environnement globales dans un répertoire nommé /etc/profile.d, où vous trouverez une liste de fichiers qui sont utilisés pour définir les variables d’environnement pour l’ensemble du système.

  1. Créer un nouveau fichier sous /etc/profile.d pour stocker la ou les variables d’environnement globales. Le nom de la devrait être contextuel afin que les autres puissent comprendre son but. Pour les démonstrations, nous allons créer une variable d’environnement permanente pour HTTP_PROXY.
    sudo touch /etc/profile.d/http_proxy.sh
  2. Ouvrir le profil par défaut dans un éditeur de texte.
    sudo vi /etc/profile.d/http_proxy.sh
  3. Ajouter de nouvelles lignes pour exporter les variables d’environnement
    export HTTP_PROXY=http://my.proxy:8080

    export HTTPS_PROXY=https://my.proxy:8080

    export NO_PROXY=localhost,::1,.example.com

    .

  4. Enregistrez vos modifications et quittez l’éditeur de texte

Conclusion

Ce tutoriel a couvert la façon d’activer et de désactiver les variables d’environnement pour toutes les distributions Linux, de Debian à Red Hat. Vous avez également appris à définir des variables d’environnement pour un seul utilisateur, ainsi que pour tous les utilisateurs.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *