Variable d'environnement
Un article de Wikipédia, l'encyclopédie libre.
En informatique, les variables d’environnement sont des variables dynamiques utilisées par les différents processus d’un système d’exploitation (Windows, Unix ...etc.).
On parle aussi de variables d'environnement CGI pour un serveur HTTP.
[modifier] Affichage de la liste des variables d'environnement
[modifier] Sur Windows
La commande set sans aucun paramètre permet de lister la plupart des variables d’environnement.
Les variables %ERRORLEVEL%, %DATE%, %TIME%, %CD%, %RANDOM% ne sont pas affichées par la commande set (NB : le rôle de ces variables est expliqué dans les paragraphes suivants).
[modifier] Sur Unix
- env (commande)
- La commande env sans aucun paramètre permet de lister les variables dites d’environnement.
- La variable $? n'est pas affichée par la commande env. Cela correspond au code retour de la dernière commande effectuée.
- set (instruction du shell)
- Dans les shell usuels d'Unix/linux, l'instruction set permet d'afficher à la fois les variables d'environnement et les autres variables.
[modifier] Modification d’une variable d’environnement
[modifier] Sur 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 permanante il faut:
-Modifier l'autoexec.bat avec la commande set sous windows 98.
-Ajouter ou modifier la clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment ou HKEY_CURENT_USER\Environement\ sous windows 2000/xp/2003
Il est aussi possible de modifier les variables d'environnement sous l'objet system du panneaux de configuration.
[modifier] Sur Unix
Pour modifier une variable d’environnement (attention, seulement cela ne marche que sur le processus en cours)
PATH=$PATH :./
- Si le processus en cours lance un autre processus (via un appel à la fonction fork), ce nouveau processus n’héritera pas des variables d’environnement sauf si elles sont exportables (commande export).
- La commande env permet de lancer un processus en positionnant des valeurs d’environnement. Exemple :
env LD_LIBRARY_PATH=/var/lib ./configure
[modifier] Variable d’environnement windows
[modifier] Paramètres liés au profil utilisateur
[modifier] %ALLUSERSPROFILE%
Indique le répertoire du profil commun à tous les utilisateurs.
Exemple de valeurs :
‘’C:\Documents and settings\All Users’’
Attention : Ne pas confondre avec le profil par défaut
‘’C:\Documents and settings\Default User’’
[modifier] %APPDATA%
Exemple de valeurs :
‘’C:\Documents and settings\Dupont\Application Data’'
Il contient les données d’application de l’utilisateur connecté
[modifier] %HOMEPATH%
Exemple de valeur
‘’C:\Documents and settings\Dupont’’
[modifier] %USERNAME%
%USERNAME% contient le nom de l’utilisateur connecté (exemple : Dupont).
[modifier] %USERPROFILE%
%USERPROFILE% indique le chemin du répertoire contenant la ruche HKEY_CURRENT_USER de l’utilisateur connecté (fichiers NTUSER.DAT et NTUSER.INI)
[modifier] %CD%
La variable %CD% n'est pas affichée par la commande env, elle donne le chemin du répertoire courant.
[modifier] %COMPUTERNAME%
Contient le nom de l’ordinateur
[modifier] %ComSpec%
Voir variables d’environnement positionnées par le gestionnaire de session (smss.exe)
[modifier] %DATE% et %TIME%
Les variables %DATE% et %TIME% ne sont pas affichées par la commande env. Ils donnent la date et l'heure.
[modifier] %ERRORLEVEL%
La variable %ERRORLEVEL% n'est pas affichée par la commande env, elle donne le code retour de la dernière commande exécutée. C'est l'équivalent de la variable $? d'Unix.
C'est une commande indispensable pour faire des shell sophistiqués sous Windows (fichiers d'extension .BAT)
Deux exemples de code
if errorlevel 2 goto no_such_file IF ERRORLEVEL 2 SET CODE_ERREUR=2
Voir Syntaxe du errorlevel dans un batch
[modifier] %FP_NO_HOST_CHECK
Voir variables d’environnement positionnées par le gestionnaire de session (smss.exe)
[modifier] %HOMEDRIVE%
Valeur par défaut
C:\
[modifier] %LOGONSERVER% et %USERDOMAIN%
Si l’utilisateur est connecté pour un domaine,
- %LOGONSERVER% indique le nom du contrôleur de domaine utilisé pour l’authentification, précédé de ‘’\\’’. Exemple :
‘’\\ctrl_dom’’
- %USERDOMAIN% indique le nom du domaine
Si l’utilisateur est connecté pour un groupe de travail (workgroup),
- %LOGONSERVER% et indique la même chose que %COMPUTERNAME%, précédé de ‘’\\’’. Exemple :
\\PCDupont
- %USERDOMAIN% indique la même chose que %COMPUTERNAME%
[modifier] %NUMBER_OF_PROCESSORS%
Voir variables d’environnement positionnées par le gestionnaire de session (smss.exe)
[modifier] %OS%
Voir variables d’environnement positionnées par le gestionnaire de session (smss.exe)
[modifier] %Path%
Voir PATH
[modifier] %PATHEXT%
Voir variables d’environnement positionnées par le gestionnaire de session (smss.exe)
[modifier] Variable d’environnement dont le nom commence par PROCESSOR_*
Pour %PROCESSOR_ARCHITECTURE%, %PROCESSOR_IDENTIFIER%, %PROCESSOR_LEVEL%,%PROCESSOR_REVISION%, voir variables d’environnement positionnées par le gestionnaire de session (smss.exe)
[modifier] %ProgramFiles%
Cette variable d’environnement indique le chemin du répertoire des programmes installés de Windows.
Sa valeur par défaut est :
‘’C:\Program Files’’
[modifier] %PROMPT%
Sa valeur par défaut est
$P$G
[modifier] %RANDOM%
La variable %RANDOM% n'est pas affichée par la commande env, elle génère un nombre pseudo-aléatoire.
[modifier] %SESSIONNAME%
Exemple de valeur
Console
[modifier] %SystemDrive%
Valeur par défaut
‘’C:\’’
[modifier] %SystemRoot%
Voir %SystemRoot%
[modifier] Les 2 répertoires de fichiers temporaires
%TMP% et %TEMP%
[modifier] %WinDir%
Analogue à %systemRoot%
[modifier] %JAVA_HOME%
voir variables d’environnement positionnées par le gestionnaire de session (smss.exe)
[modifier] Variable d’environnement Unix
Exemple de variables d'environnement sous Unix
[modifier] $?
La variable $? n'est pas affichée par la commande env. Cela correspond au code retour de la dernière commande effectuée.
[modifier] $_
La variable $_ indique le nom du dernier fichier traité par la dernière commande.
[modifier] Répertoires $HOME, $PWD, $OLDPWD
- La variable $HOME contient le chemin absolu vers le home de l'utilisateur connecté.
- La variable $PWD contient le chemin absolu vers le répertoire courant (permet de savoir où on est dans l'arborescence).
- La variable $OLDPWD contient le chemin absolu vers le répertoire courant précédent (permet de savoir d'où on vient).
[modifier] $LANG et $LANGUAGE
La variable $LANG est utilisée par les différents programmes pour déterminer la langue des messages à afficher. Par exemple :
a@localhost ~]LANG=fr ls fff ls: fff: Aucun fichier ou répertoire de ce type a@localhost ~]LANG=en ls fff ls: fff: No such file or directory
Ces différentes traductions se trouvent dans les fichiers .mo des sous-répertoires de /usr/share/locale .
La variable $LANG sert aussi à vim pour déterminer l'encodage à utiliser. Supposons le fichier.txt contenant comme seule ligne 'été' encodée en utf-8. Pour éditer ce fichier avec vi dans la konsole il faut poser 'export LANG=fr.UTF8' et s'assurer que l'encodage de la konsole soit fixée à utf-8 ( Configuration->Encodage). Si l'encodage de la konsole est fixé à iso 8859-1, vim affichera 'été'. Si la variable $LANG ne précise pas l'encodage utf-8, par exemple $LANG=fr, mais que l'encodage de la konsole est à utf-8, vi affichera 'été', mais la position du curseur ne suivra pas bien. En effet, bien que la konsole affiche trois caractères, vim en compte cinq (essayez d'aller à la fin de la ligne avec $, le curseur ira trop loin).
[modifier] $LD_LIBRARY_PATH
A compléter
[modifier] X11
- $DISPLAY
Exemple de valeur
:0.0
-
- Le premier chiffre est le numéro de serveur X11
- Le deuxième est le numéro de terminal
- $TERM
Exemple de valeur
xterm
[modifier] Variables d'environnement lié à GNOME
[modifier] $COLORTERM
Exemple de valeur
- gnome-terminal
[modifier] $DESKTOP_SESSION
Exemple de valeur:
default
[modifier] $DESKTOP_STARTUP_ID
A compléter
[modifier] $GDM_XSERVER_LOCATION et $GDMSESSION
[modifier] $GNOME_DESKTOP_SESSION
Exemple de valeur
Default
[modifier] $GNOME_KEYRING_SOCKET
Exemple de valeur
/tmp/keyring-24TGGU/socket
[modifier] Variables d'environnement liées à KDE
A compléter
[modifier] GTK
- $GTK_RC_FILES
[modifier] $LC_ALL
A compléter
[modifier] SSH
- $SSH_AGENT
- $SSH_AUTH_SOCK
[modifier] $LOGNAME, $USER et $USERNAME
A compléter
[modifier] $SHELL
$SHELL indique l'interpréteur shell utilisé par défaut. La valeur habituelle sous linux est
/bin/bash
Sur certaines versions d'Unix, c'est un shell plus primitif qui est installé par défaut. Pour avoir la liste des shell sous Unix, voir catégorie:Shell Unix.
[modifier] Autres variables
- $PATH
- $SHLVL, le niveau d'init, voir init de Unix System V
- $LS_COLORS
- $SESSION_MANAGER
- $XAUTHORITY
- $WINDOWID
[modifier] Les variables autres que celles d'environnement
Pour les variables internes, voir (en) Variables
Il existe des variables qui ne font pas partie des variables d'environnement. Par exemple, sur la version Sarge de la distribution debian, il peut y avoir :
- Variables liées au shell
- $BASH, $BASH_VERSINFO, $BASH_VERSION
- $HISTFILE, $HISTFILESIZE et $HISTSIZE : paramètres de l'historique des commandes shell
- $SHELLOPTS
- $COLUMNS et $LINES' valeurs par défaut : 80 et 24 (c'est-à-dire 80 lignes et 24 colonnes)
- $DIRSTACK
- $EUID
- $GROUPS
- Variables en rapport avec l'architecture logicielle ou matérielle
- $IFS Internal Field Separator
- $MAILCHECK ; valeur par défaut : 60
- $OPTERR et $OPTIND ; valeurs par défaut : 1
- $PIPESTATUS
- $PPID Parent Process IDentifier
- Variables liées au prompt
- $PROMPT_COMMAND
- $PS1, $PS2 et $PS4