Scroll to navigation

environ(7) Miscellaneous Information Manual environ(7)

NOM

environ - Environnement utilisateur

SYNOPSIS

extern char **environ;

DESCRIPTION

La variable environ pointe sur un tableau de pointeurs de chaînes appelé « environnement ». Le dernier pointeur de ce tableau vaut NULL. Ce tableau est rendu disponible au processus par l’appel execve(2) quand un nouveau programme est démarré. Quand un processus enfant est créé à l’aide de fork(2), il hérite d’une copie de l’environnement de son parent.

By convention, the strings in environ have the form "name=value". The name is case-sensitive and may not contain the character "=". The value can be anything that can be represented as a string. The name and the value may not contain an embedded null byte ('\0'), since this is assumed to terminate the string.

Les variables d’environnement peuvent être placées dans l’environnement d’interpréteur de commande par la commande export pour sh(1) ou par la commande setenv pour csh(1).

The initial environment of the shell is populated in various ways, such as definitions from /etc/environment that are processed by pam_env(8) for all users at login time (on systems that employ pam(8)). In addition, various shell initialization scripts, such as the system-wide /etc/profile script and per-user initialization scripts may include commands that add variables to the shell's environment; see the manual page of your preferred shell for details.

Les interpréteurs de commandes de style Bourne gèrent la syntaxe


NOM=valeur commande

pour créer une définition de variable d’environnement uniquement dans le périmètre du processus qui exécute la commande. Plusieurs variables d’environnement, séparées par des espaces blancs, peuvent précéder la commande.

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).

Ce qui suit est une liste de variables d’environnement habituellement présentes sur un système. Cette liste est incomplète et inclut seulement les variables courantes vues par un utilisateur moyen dans leur routine quotidienne. Les variables d’environnement spécifiques à un programme ou une fonction de bibliothèque sont documentées dans la section ENVIRONNEMENT de leurs pages de manuel.

The name of the logged-in user (used by some BSD-derived programs). Set at login time; see section NOTES below.
The name of the logged-in user (used by some System-V derived programs). Set at login time; see section NOTES below.
A user's login directory. Set at login time; see section NOTES below.
Le nom de la régionalisation à utiliser pour les catégories de locale quand elles ne sont pas écrasées par LC_ALL ou une variable d'environnement plus spécifique telle que LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME. Consultez locale(7) pour plus de détails sur les variables d’environnement LC_*.
The sequence of directory prefixes that sh(1) and many other programs employ when searching for an executable file that is specified as a simple filename (i.a., a pathname that contains no slashes). The prefixes are separated by colons (:). The list of prefixes is searched from beginning to end, by checking the pathname formed by catenating a prefix, a slash, and the filename, until a file with execute permission is found.
En tant que caractéristique patrimoniale, un préfixe de longueur zéro (indiqué par deux deux-points adjacents ou un deux-points initial ou final) est interprété comme indiquant le répertoire de travail utilisé. Cependant, l’utilisation de cette fonctionnalité est obsolète et POSIX note qu’une application devrait utiliser un nom de chemin explicite pour être conforme (par exemple, « . ») pour indiquer le répertoire de travail utilisé.
Analogously to PATH, one has CDPATH, used by some shells to find the target of a change directory command, MANPATH used by man(1) to find manual pages, and so on.
Chemin absolu vers le répertoire de travail utilisé ; requis pour être partiellement canonique (pas les composants . ou ..).
Le nom de chemin absolu de l’interpréteur de connexion de l’utilisateur, défini au moment de la connexion. Consultez la section NOTES ci-après.
Le type de terminal utilisé pour les affichages.
L’utilitaire préféré de l’utilisateur pour afficher les fichiers texte. N’importe quelle chaîne acceptable comme opérande de chaîne de commande pour la commande sh -c est autorisée. Si PAGER est NULL ou n’est pas défini, alors les applications lançant un visionneur (pager) se rabattront sur un programme tel que less(1) ou more(1).
L’utilitaire préféré de l’utilisateur pour éditer les fichiers texte. N’importe quelle chaîne acceptable comme opérande de chaîne de commande pour la commande sh -c est autorisée.

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 gestion de la régionalisation. Consultez catopen(3), gettext(3) et locale(7).
  • TMPDIR modifie le préfixe de chemin d'accès des fichiers créés par tempnam(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 du chargeur et de l'éditeur de lien dynamique. Consultez aussi ld.so(8).
  • POSIXLY_CORRECT oblige certains programmes ou routines de bibliothèque à respecter scrupuleusement la norme POSIX.
  • Le comportement de malloc(3) est influencé par les variables MALLOC_*.
  • La variable HOSTALIASES fournit le nom d’un fichier contenant les alias à utiliser avec 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) et strftime(3). Consultez aussi tzselect(8).
  • TERMCAP donne des indications sur la manière de traiter un 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).

NOTES

Historiquement et selon l’habitude, environ doit être déclaré dans le programme de l’utilisateur. Cependant, par commodité (non standard) de programmation, environ est déclaré dans le fichier d’en-tête <unistd.h> si la macro de test de fonctionnalités _GNU_SOURCE est définie. Consultez feature_test_macros(7).

Les opérations PR_SET_MM_ENV_START et PR_SET_MM_ENV_END de prctl(2) peuvent être utilisées pour contrôler l’emplacement de l’environnement du processus.

Les variables HOME, LOGNAME, SHELL et USER sont définies quand l’utilisateur est changé à l’aide d’une interface de gestion de session, classiquement par un programme tel que login(1) à partir d’une base de données d’utilisateurs (telle que passwd(5)). Basculer vers le superutilisateur en utilisant su(1) peut aboutir à un environnement mixte où LOGNAME et USER sont conservés de l’ancien utilisateur. Consultez la page de manuel de su(1).

BOGUES

Il est clair qu'il y a ici un risque de 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.

There is also the risk of name space pollution. Programs like make and autoconf allow overriding of default utility names from the environment with similarly named variables in all caps. Thus one uses CC to select the desired C compiler (and similarly MAKE, AR, AS, FC, LD, LEX, RM, YACC, etc.). However, in some traditional uses, such an environment variable gives options for the program instead of a pathname. Thus, one has MORE and LESS. Such usage is considered mistaken, and to be avoided in new programs.

VOIR AUSSI

bash(1), csh(1), env(1), login(1), printenv(1), sh(1), su(1), tcsh(1), execve(2), clearenv(3), exec(3), getenv(3), putenv(3), setenv(3), unsetenv(3), locale(7), ld.so(8), pam_env(8)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

21 septembre 2025 Pages du manuel de Linux 6.16