BEZEICHNUNG¶
environ - Umgebung des Benutzers
ÜBERSICHT¶
extern char **environ;
BESCHREIBUNG¶
Die Variable
environ zeigt auf die »Umgebung«, ein Feld von
Zeigern auf Zeichenketten. Der letzte Zeiger in diesem Feld hat den Wert NULL.
(Diese Variable muss im Anwenderprogramm deklariert werden, ist aber für
Glibc, Libc4 und Libc5 in der Header-Datei
<unistd.h> definiert
(für Glibc muss außerdem
_GNU_SOURCE definiert sein)). Die
Umgebung wird dem Prozess von dem
exec(3)-Aufruf, der den Prozess
gestartet hat, verfügbar gemacht.
Konventionsgemäß haben Zeichenketten in
environ die Form »
Name=
Wert«. Häufige Beispiele sind:
- USER
- Der Name des angemeldeten Benutzers (wird von einigen
Programmen aus der BSD-Welt ausgewertet).
- LOGNAME
- Der Name des angemeldeten Benutzers (wird von einigen
Programmen aus der System-V-Welt ausgewertet).
- HOME
- Das Anmeldeverzeichnis eines Benutzers, wird von
login(1) aus der Datei passwd(5) entnommen.
- LANG
- Der Name einer Locale (eines Gebietsschemas), die für
Locale-Kategorien angewendet werden soll. Die Locale kann durch
LC_ALL oder spezielle Umgebungsvariablen wie LC_COLLATE,
LC_CTYPE, LC_MESSAGES, LC_MONETARY,
LC_NUMERIC, LC_TIME überschrieben werden (vgl.
locale(5)).
- PATH
- Die Folge von Verzeichnisnamen, in denen sh(1) und
viele weitere Programme nach Dateien mit unvollständigen Namen
suchen. Die einzelnen Bestandteile/Präfixe werden durch ' :'
getrennt. (Gleichermaßen benutzen einige Shells CDPATH, um das
Ziel eines cd-Befehls zu finden, man(1) sucht in
MANPATH nach Handbuchseiten, usw.)
- PWD
- das aktuelle Arbeitsverzeichnis; gesetzt von einigen
Shells
- SHELL
- Der Pfadname der Login-Shell des Benutzers. (Mit dieser
Shell arbeitet der Benutzer nach seiner Anmeldung.)
- TERM
- Der Terminaltyp, für den Ausgaben aufbereitet
werden.
- PAGER
- das vom Benutzer bevorzugte Programm für die Anzeige
von Textdateien
- EDITOR/VISUAL
- das vom Benutzer bevorzugte Programm für die
Bearbeitung von Textdateien
Der Umgebung können weitere Namen hinzugefügt werden. Dazu benutzt man
für die
sh(1) den Befehl
export und
»Name=Inhalt«, für die
csh(1) gibt es den
setenv-Befehl. Argumente können auch beim Aufruf von
exec(3) an die Umgebung weitergegeben werden. C-Programme können
ihre Umgebung mit den Funktionen
getenv(3),
putenv(3),
setenv(3) und
unsetenv(3) beeinflussen.
Bitte beachten Sie, dass das Verhalten vieler Programme und Bibliotheksroutinen
vom Vorhandensein oder dem Inhalt bestimmter Umgebungsvariablen beeinflusst
wird. Eine willkürliche Auswahl:
Die Variablen
LANG,
LANGUAGE,
NLSPATH,
LOCPATH,
LC_ALL,
LC_MESSAGES usw. beeinflussen die Handhabung der Locale,
vgl.
locale(5).
TMPDIR beeinflusst die Pfadangabe für
tmpnam(3) beim Anlegen
von Dateien, das temporäre Verzeichnis von
sort(1) usw.
LD_LIBRARY_PATH,
LD_PRELOAD und andere
LD_* Variablen
beeinflussen das Verhalten des dynamischen Laders/Linkers.
POSIXLY_CORRECT veranlasst bestimmte Programme und Bibliotheksroutinen,
sich an die POSIX-Vorgaben zu halten.
Das Verhalten von
malloc(3) wird von
MALLOC_*-Variablen gesteuert.
Die Variable
HOSTALIASES enthält den Namen der Datei, in der die
Alias-Namen für
gethostbyname(3) stehen.
TZ und
TZDIR stellen Informationen über Zeitzonen für
tzset(3) bereit und dadurch auch für Funktionen wie
ctime(3),
localtime(3),
mktime(3) und
strftime(3).
Siehe auch
tzselect(8).
TERMCAP informiert darüber, wie bestimmte Terminals angesteuert
werden müssen (oder enthält den Namen einer Datei, die diese
Informationen bereitstellt).
COLUMNS und
LINES informieren Programme über die
Größe des Fensters und setzen damit vielleicht die tatsächliche
Größe außer Kraft.
PRINTER oder
LPDEST können den gewünschten Drucker
angeben, siehe
lpr(1).
Usw.
FEHLER¶
Es ist offensichtlich, dass es hier ein Sicherheitsproblem gibt. Schon mancher
Systembefehl hat den Pfad der Tugend verlassen, weil ein Benutzer
ungebräuchliche Werte für
IFS oder
LD_LIBRARY_PATH
angegeben hat.
Es besteht auch die Gefahr der »Verschmutzung des Namensraums«.
Programme wie
make und
autoconf erlauben Überschreiben der
Namen von Standard-Dienstprogrammen aus der Umgebung mit ähnlich
benannten Variablen in Großbuchstaben. So verwendet man
CC, um den
gewünschten C-Compiler zu wählen (und analog
MAKE,
AR,
AS,
FC,
LD,
LEX,
RM,
YACC, usw.).
Aber in einigen traditionellen Nutzungen gibt eine Umgebungsvariable keinen
Pfadnamen, sondern Programmoptionen an. So gibt es
MORE,
LESS
und
GZIP. Diese Verwendung wird als falsch verstanden angesehen und
sollte für neue Programme vermieden werden. Die Autoren von
gzip
sollten erwägen, ihre Option in
GZIP_OPT umzubenennen.
SIEHE AUCH¶
bash(1),
csh(1),
login(1),
sh(1),
tcsh(1),
execve(2),
clearenv(3),
exec(3),
getenv(3),
putenv(3),
setenv(3),
unsetenv(3),
locale(5)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard
Schauer <Martin.E.Schauer@gmx.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird
KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.