environ
Table des matières
Retour à l'index
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.
Par convention, les chaînes dans environ sont de la forme
« nom=valeur ». Le nom est sensible à la casse et ne peut pas
inclure le caractère « = ». La valeur peut être n’importe laquelle
pouvant représenter une chaîne. Le nom et la valeur ne peuvent pas contenir
un octet NULL (« \0 ») puisqu’il est supposé terminer la chaîne.
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).
L’environnement initial de l’interpréteur de commandes est rempli de
différentes façons, telles que des définitions dans /etc/environment
pouvant être traitées par pam_env(8) pour tous les utilisateurs au moment
de la connexion (sur les systèmes utilisant pam(8)). De plus, divers
scripts d’initialisation d’interpréteur de commandes, tels que le script
/etc/profile pour tout le système et les scripts d’initialisation propres
à chaque utilisateur peuvent comporter des commandes ajoutant des variables
à l’environnement de l’interpréteur de commandes. Consultez le manuel de
l’interpréteur de commandes pour plus de détails.
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.
- USER
-
Le nom de l'utilisateur connecté (utilisé par des programmes de style
BSD). Il est défini lors de la connexion. Consultez la section NOTES
ci-après.
- LOGNAME
-
Le nom de l'utilisateur connecté (utilisé par certains programmes de style
System V). Il est défini lors de la connexion. Consultez la section NOTES
ci-après.
- HOME
-
Le répertoire de login d'un utilisateur. Il est défini lors de
l’enregistrement de l’utilisateur auprès du système. Consultez la section
NOTES ci-après.
- LANG
-
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_*.
- PATH
-
La séquence de préfixes de répertoires que sh(1) et beaucoup d’autres
programmes utilisent lors de la recherche d’un fichier exécutable indiqué
comme simple nom de fichier (c’est-à-dire un nom de chemin ne contenant pas
de barre oblique). Les préfixes sont séparés par des deux-points (:). La
liste est parcourue du début à la fin en recherchant le nom de chemin formé
par la concaténation d’un préfixe, d’une barre oblique et le nom de fichier
jusqu’à ce qu’un fichier ayant la permission d’exécution soit trouvé.
-
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é.
-
Similairement à PATH, il existe CDPATH qui est utilisé par certains
interpréteurs de commandes pour connaître le chemin de destination d'une
commande de changement de répertoire, MANPATH qui est utilisé par
man(1) pour trouver les pages de manuel, etc.
- PWD
-
Chemin absolu vers le répertoire de travail utilisé ; requis pour être
partiellement canonique (pas les composants . ou ..).
- SHELL
-
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.
- TERM
-
Le type de terminal utilisé pour les affichages.
- PAGER
-
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).
- EDITOR/VISUAL
-
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.
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 de l’environnement par des variables d'environnement avec le même
nom en capitales. Ainsi, CC peut être utilisé pour choisir le
compilateur C (et de même pour MAKE, AR, AS, FC, LD, LEX,
RM, YACC, etc.). Toutefois dans certaines utilisations
traditionnelles, de telles variables fournissent des options à certains
programmes plutôt qu'un chemin. Ainsi, un utilisateur a MORE et
LESS. De telles utilisations sont considérées fautives et doivent être
évitées dans les nouveaux programmes.
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 à
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- NOTES
-
- BOGUES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:36 GMT, September 19, 2025