Variable d'environnement - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Modification d’une variable d’environnement

Sur DOS et Windows

Pour modifier une variable d’environnement (attention, cela ne marche que sur le processus en cours)

      set path=%path% ;c:\WINDOWS\System32\wbem      

Pour modifier une variable d'environnement d'une manière permanente il faut:

  • Modifier l'autoexec.bat avec la commande set sous DOS ainsi que tous les dérivés.
  • Ajouter ou modifier la clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment ou HKEY_CURENT_USER\Environment\ sous windows 2000/xp/2003

Il est aussi possible de modifier les variables d'environnement sous l'objet système du panneau de configuration.

Sur Unix

Pour modifier une variable d’environnement (attention, cela ne marche que sur le processus en cours)

      PATH=$PATH:./      
  1. Si le processus en cours lance un autre processus (via un appel à la fonction fork), ce nouveau processus héritera des variables d’environnement mais pas des variables du shell. Une variable du shell peut devenir une variable d'environnement avec la commande export.
  2. La commande env permet de lancer un processus en positionnant des valeurs d’environnement. Exemple :
      env LD_LIBRARY_PATH=/var/lib ./configure      

Pour modifier une variable d'environnement de façon permanente, on peut ajouter une ligne dans le fichier d'initialisation de son shell (~/.bashrc pour Bash, ~/.zshrc pour Zsh)) pour assigner et exporter la variable. Voici un exemple minimal de ~/.bashrc :

       # Source global definitions       if [ -f /etc/bashrc ]; then             . /etc/bashrc       fi       # User specific aliases and functions       export LANG=fr_CA.UTF8      

Le script d'initialisation du shell est personnel à l'utilisateur. Il est exécuté à chaque fois qu'on se connecte (soit directement soit par ssh) et à chaque fois qu'on ouvre une nouvelle console.

Pour que l'assignation de la variable profite à tous les utilisateurs, on peut l'ajouter (à condition d'avoir les droits) dans le fichier d'initialisation global du shell (/etc/profile pour Bash).

Variables d'environnement communes à Windows et Unix

pour l'emplacement des exécutables

La variable contient la liste des répertoire(s) dans lesquels vont être recherchés les fichiers exécutables. On retrouve cette variable sous Windows (%PATH%) et sous Unix et Linux ($PATH).

Exemple

Vous vous placez dans un répertoire quelconque de votre système (via la commande cd).

Si vous tentez de taper toto.exe dans la console (ou le terminal) il ne sera pas exécuté car /opt/toto/bin n'est pas dans le PATH.

Par contre, si vous tapez /opt/toto/bin/fichier_ex cela fonctionnera, mais c'est plutôt long à écrire.

Il est donc nécessaire d'ajuster la variable d'environnement PATH.

Sous Unix/Linux : $PATH

Sous Unix et Linux, cette variable est utilisée seulement pour l'emplacement des exécutables (binaire ou script shell). Pour les bibliothèques logicielles, d'autres variables sont utilisées (exemple : $LD_LIBRARY_PATH).

Visualiser le $PATH
      echo $PATH      

On peut aussi utiliser la commande :

      printenv PATH      
Séparateur de $PATH : ":"

Le séparateur est le deux-points (:).

Modifier temporairement le $PATH

Avec le shell bash

      export PATH=$PATH:/opt/toto/bin      

Cette modification n'est que temporaire (pour la session en cours).

Modifier le $PATH de manière permanente

Il faut donc rendre permanente la modification du PATH en mettant la ligne suivante dans le fichier ~/.bashrc.

      export PATH=$PATH:/opt/toto/bin      
Le piège du répertoire courant

Sous Unix, pour exécuter un fichier qui est dans le répertoire courant, on est en général obligé de préfixer la commande par « ./ », ce qui permet d'indiquer que le fichier est dans le répertoire courant.

Cette particularité étonne les utilisateurs qui ont l'habitude de Windows (ou de l'ancien MS-DOS) où on peut appeler directement un programme qui est dans le répertoire courant.

Cependant, il s'agit là d'une mesure de sécurité : à titre d'exemple, si un intrus malveillant parvient à placer un programme néfaste nommé ls dans le répertoire courant, ce programme sera exécuté dès que vous souhaiterez lister le répertoire (au lieu de la commande ls se trouvant normalement dans le répertoire /bin/, qui lui se trouve dans le PATH, mais qui n'est modifiable que par l'administrateur du système).

Si malgré tout l'utilisateur souhaite retrouver cette « ergonomie » de Microsoft, il faut qu'il rajoute le chemin « ./ » dans son PATH :

       PATH=$PATH:./      
Le $PATH de base dans le profil

La valeur de base de $PATH, pour tous les login, est défini dans le profil : fichier Shell /etc/profile.

Sous Mac OS X

Visualiser le $PATH

(En Bourne shell)

      echo $PATH      
Séparateur de $PATH : ":"

Le séparateur est le deux-points (:).

Modifier temporairement le $PATH
      export PATH="$PATH:/opt/toto/bin"      

Cette modification n'est que temporaire (pour la session en cours).

Modifier le $PATH de manière permanente

Il faut rendre permanente la modification du PATH en rajoutant la ligne suivante dans le Profil utilisateur (c'est-à-dire le shell ~/.profile ou ~/.bash_profile selon le type de terminal vous utilisez).

      export PATH="$PATH:/opt/toto/bin"      

Il est aussi possible de modifier directement le PATH du fichier /etc/profile (il faut utiliser sudo ou être en root).

Sous Windows : %PATH%

Sous Windows, la variable PATH est utilisée pour l'emplacement des exécutables (*.exe et autres) et des bibliothèques logicielles (DLL).

Visualiser le %PATH%

Dans une invite de commande, lancez la commande :

      set path      

ou

      echo %PATH%      
Séparateur de %PATH% : point-virgule

Le séparateur est le caractère point-virgule : « ; ».

Modifier temporairement %PATH%

Dans une invite de commande, utilisez

      set PATH=%PATH%;c:\opt\toto\bin      

Cette modification n'est que temporaire (pour l'invite de commande en cours).

Modifier le %PATH% de manière permanente

Deux manières sont possibles :

1- Il faut modifier la variable d'environnement PATH : Panneau de configuration / Système / Avancé / Variables d'environnement / variables système : Variable Path ⇒ Modifier. Exemple : ajouter ;C:\Batch pour indiquer que Windows doit chercher dans C:\Batch pour trouver une application ou un .bat

2- Utiliser une commande MS-DOS (qui est plus pratique pour une utilisation dans un script). Voici un exemple d'utilisation :

→ Le but étant d'ajouter C:\Lotus\Notes à la variable d'environnement PATH de manière permanente.

       REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /d "%PATH%;C:\Lotus\Notes" /f      

Options de REG ADD

/f (force) permet d'éviter que le système vous demande si vous être sûr de votre modification.
/v (value) : indique la clé
/d (data) : indique la valeur de la clé

NB : Il est nécessaire de redémarrer la machine pour que le système prenne en compte la modification.

NB2 : Si vous exécutez à nouveau cette commande, alors après le redémarrage, vous aurez deux fois « ;C:\Lotus\Notes » dans votre path !

Base de registre et %PATH%

La variable %PATH% est définie dans la base de registre, avec d'autres variables d'environnement par le SMSS.exe (gestionnaire de session), très exactement c'est la valeur PATH dans

       HKEY_Local_Machine\SYSTEM\CurrentControlSet\Control\Session Manager\Environment      

Variables d'environnement liées à Java

JAVA_HOME

Cette variable d'environnement n'est définie que si Java est installé sur l'ordinateur correspondant.

JAVA_HOME indique le répertoire contenant l'arborescence des fichiers nécessaires pour la machine virtuelle Java (classe, bibliothèques logicielles, etc.). Voir chargeur de classe Java.

Pour le cas particulier de Windows, voir variables d’environnement positionnées par le gestionnaire de session (smss.exe).

Autres variables liées à java

  • La variable d'environnement CLASSPATH définit l'emplacement des packages java, notamment pour le démarrage de la Machine virtuelle Java
  • La variable d'environnement JRE_HOME définit l'emplacement de l'Environnement d'exécution Java.
Page générée en 0.089 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise