Provided by: manpages-de_4.13-4_all bug

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 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.10  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>,     Helge     Kreutzmann
       <debian@helgefjell.de> und Mario Blättermann <mario.blaettermann@gmail.com> 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  die
       Mailingliste der Übersetzer.

Linux                                            13. August 2020                                      ENVIRON(7)