environ

ENVIRON(7)                  Linux-Programmierhandbuch                 ENVIRON(7)



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 in der
       Header-Datei <unistd.h> definiert, falls das »feature test macro«
       _GNU_SOURCE definiert ist). Die Umgebung wird dem Prozess von dem
       exec(3)-Aufruf, der den Prozess gestartet hat, verfügbar gemacht. Wenn
       ein Kindprozess mit fork(2) erstellt wird, erbt es eine Kopie der
       Umgebung seines Elternprozesses.

       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 und LC_TIME überschrieben
              werden (siehe locale(7) für weitere Details über die
              Umgebungsvariablen LC_*).

       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 Anmelde-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

       Namen können in die Umgebung der Shell mit dem Befehl export von sh(1)
       oder dem Befehl setenv von csh(1) gelegt werden.

       Die anfängliche Umgebung der Shell wird auf verschiedenen Arten
       aufgebaut, wie Definitionen aus /etc/environment, die (auf Systemen, die
       pam(8) einsetzen) durch pam_env(8) für alle Benutzer zum Anmeldezeitpunkt
       verarbeitet wird. Zusätzlich können verschiedene
       Shell-Initialisierungsskripte, wie das systemweite Skript /etc/profile
       oder benutzerbezogene Initialisierungsskripte Befehle enthalten, die
       Variablen zu der Umgebung der Shell hinzufügen. Lesen Sie dafür die
       Handbuchseite Ihrer bevorzugten Shell für weitere Details.

       Bourne-artige Shells unterstützen die Syntax

           NAME=Wert Befehl

       um eine Umgebungsvariablendefinition zu erstellen, deren Geltungsbereich
       nur den Prozess, der Befehl ausführt, umfasst. Mehrere
       Variablendefinitionen, getrennt durch Leerraumzeichen, können Befehl
       vorangestellt werden.

       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. Zu den Beispielen gehören:

       *  Die Variablen LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES
          und so weiter beeinflussen die Handhabung der Locale, vgl. catopen(3),
          gettext(3) und locale(7).

       *  TMPDIR beeinflusst die Pfadangabe für tempnam(3) beim Anlegen von
          Dateien und 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).

ANMERKUNGEN
       Die Aktionen prctl(2) PR_SET_MM_ENV_START und PR_SET_MM_ENV_END können
       zur Steuerung des Orts der Umgebung des Prozesses verwandt werden.

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), env(1), login(1), printenv(1), sh(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)

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.08 des Projekts
       Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie
       Fehler gemeldet werden können sowie die aktuelle Version dieser Seite
       finden sich unter https://www.kernel.org/doc/man-pages/.


ÜBERSETZUNG
       Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard
       Schauer <Martin.E.Schauer@gmx.de>, Dr. Tobias Quathamer
       <toddy@debian.org> und Helge Kreutzmann <debian@helgefjell.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>.



Linux                            13. August 2020                      ENVIRON(7)