environ(7) Environnement utilisateur

SYNOPSIS

extern char **environ;

DESCRIPTION

La variable environ pointe sur un tableau de pointeurs de chaînes que l'on nomme « environnement ». Le dernier pointeur de ce tableau vaut NULL. (Cette variable doit être déclarée dans les programmes utilisateurs, mais elle est déclarée dans le fichier d'en-tête <unistd.h> avec libc4 et libc5, ou bien avec glibc si _GNU_SOURCE est définie.) Ce tableau de chaînes de caractères est fourni au processus par l'appel exec(3) qui démarre le processus.

Par convention, ces chaînes sont de la forme « nom=valeur ». Des exemples classiques sont :

USER
Le nom de l'utilisateur connecté (utilisé par des programmes de style BSD).
LOGNAME
Le nom de l'utilisateur connecté (utilisé par certains programmes de style System V).
HOME
Le répertoire de login d'un utilisateur, mis en place par login(1) depuis le fichier passwd(5).
LANG
Le nom de la localisation à utiliser pour les catégories non indiquées par LC_ALL ou une variable d'environnement spécifique telle que LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME, consultez locale(5).
PATH
Une liste de répertoires que sh(1) et de nombreux autres programmes utilisent pour trouver un fichier dont le chemin est incomplet. Les répertoires sont séparés par des « : ». (De même, il existe CDPATH qui est utilisé par certains interpréteurs de commandes pour connaître le chemin de destination d'une commande cd, MANPATH utilisé par man(1) pour trouver les pages de manuel, etc.)
PWD
Le répertoire de travail actuel, renseigné par certains interpréteurs de commandes.
SHELL
Le nom de fichier de l'interpréteur de commandes de l'utilisateur.
TERM
Le type de terminal utilisé pour les affichages.
PAGER
L'application préférée de l'utilisateur pour afficher du texte.
EDITOR/VISUAL
L'application préférée de l'utilisateur pour modifier des textes.

D'autres noms peuvent être inscrits dans l'environnement par la commande export avec la syntaxe « nom=valeur » sous sh(1), ou par la commande setenv avec csh(1). Des arguments peuvent aussi être insérés dans l'environnement lors d'un exec(3). Un programme C peut manipuler son environnement avec les fonctions getenv(3), putenv(3), setenv(3) et unsetenv(3).

Remarquez que le comportement de nombreux programmes ou routines de bibliothèque est influencé par la présence ou la valeur de certaines variables d'environnement. En voici quelques exemples :

Les variables LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES, etc. influencent la localisation, consultez locale(5).

TMPDIR modifie le préfixe de chemin d'accès des fichiers créés par tmpnam(3) et d'autres fonctions, et le répertoire temporaire utilisé par sort(1) et d'autres programmes.

LD_LIBRARY_PATH, LD_PRELOAD et d'autres variables LD_* modifient le comportement de l'éditeur de lien dynamique.

POSIXLY_CORRECT oblige certains programmes ou routines à respecter scrupuleusement la norme POSIX.

Le comportement de malloc(3) est influencé par les variables MALLOC_*.

La variable HOSTALIASES fournit le nom du fichier d'alias consulté par gethostbyname(3).

TZ et TZDIR gèrent les informations sur les fuseaux horaires utilisées par tzset(3) et donc par les fonctions comme ctime(3), localtime(3), mktime(3), strftime(3). Consultez aussi tzselect(8).

TERMCAP donne des indications sur la manière de traiter le terminal (ou donne le nom d'un fichier contenant ces spécifications).

COLUMNS et LINES indiquent aux applications la taille de la fenêtre, éventuellement avec préséance sur la taille réelle.

PRINTER ou LPDEST indiquent l'imprimante à utiliser. Consultez lpr(1).

Etc.

BOGUES

Il est clair qu'il y a un risque concernant la sécurité. De nombreuses commandes système peuvent être induites en erreur par un utilisateur qui fournirait des valeurs inhabituelles pour IFS ou LD_LIBRARY_PATH.

Il y a aussi un risque de pollution de l'espace des noms. Des programmes comme make et autoconf permettent la surcharge des noms d'utilitaires par défaut par des variables d'environnement avec le même nom en majuscules. Ainsi, on peut utiliser CC pour choisir le compilateur C (et de même MAKE, AR, AS, FC, LD, LEX, RM, YACC, etc.). Toutefois dans certains cas, ces variables fournissent des paramètres à certains programmes plutôt qu'un nom d'utilitaire. Ainsi, il existe MORE, LESS, ou GZIP. De telles utilisations sont considérées comme des erreurs, et doivent être évitées dans les nouveaux programmes. Les auteurs de gzip devraient penser à renommer leur option GZIP_OPT.

COLOPHON

Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <[email protected]> ou par un rapport de bogue sur le paquet manpages-fr.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».