Umgebungsvariable


Umgebungsvariable

Der Begriff Umgebungsvariable ist ein Begriff aus dem Bereich der Betriebssysteme von Computern. Eine Umgebungsvariable enthält beliebige Zeichenketten, die in den meisten Fällen Pfade zu bestimmten Programmen oder Daten enthalten, sowie bestimmte Daten, die von mehreren Programmen verwendet werden können.

Ein anderer Begriff für Umgebungsvariable ist auch globale Variable; allerdings ist dieser Begriff eher unüblich, da er in vielen Programmiersprachen in anderer Bedeutung verwendet wird.

Benutzer oder Anwendungen können Werte dieser Variablen lesen und/oder verändern.

Inhaltsverzeichnis

Unix und Unix-ähnliche Betriebssysteme

Kommandozeile

In vielen auf UNIX basierenden Betriebssystemen, etwa Linux oder BSD,[1] werden Umgebungsvariablen beim Start eines Kommandozeileninterpreters (Shell) gesetzt. Vordefinierte Umgebungsvariablen werden in der Regel beim Start einer Shell gemäß den Einträgen in einer oder mehreren Konfigurationsdateien automatisch gesetzt. In der Bourne-Shell ist dies beispielsweise die Datei /etc/profile. Zusätzlich benutzt die Shell eine im Heimatverzeichnis des Benutzers vorhandene Datei (z. B. .profile oder .cshrc), die benutzerspezifische Umgebungsvariablen enthält und vom Benutzer selbst angepasst werden kann. Diese vordefinierten Umgebungsvariablen kann man sich durch die Eingabe von env in der Shell auch ausgeben lassen.

Vordefinierte Umgebungsvariablen

Einige Umgebungsvariablen finden sich auf fast allen Unix-Systemen wieder. Beispiele hierfür sind:

HOME Der Pfad des persönlichen Verzeichnisses des aktuellen Benutzers
LOGNAME Der Name des aktuellen Benutzers
MAIL Der Pfad, in dem die persönlichen E-Mail-Nachrichten des aktuellen Benutzers abgelegt werden
PATH Diese Variable enthält den Suchpfad. Sollte bei der Eingabe eines Befehls kein Verzeichnis angegeben werden, durchsucht die Shell die in dieser Variable gespeicherten Pfade von links nach rechts. Die Verzeichnisnamen werden durch Semikolon „;“ getrennt. Das aktuelle Verzeichnis wird nicht durchsucht, da dies ein Sicherheitsrisiko darstellt.

Änderung der Umgebungsvariablen

Umgebungsvariablen können folgendermaßen gesetzt und den anderen Prozessen innerhalb des Betriebssystems bekannt gemacht werden:

Bei Bourne, bash und darauf aufbauenden Shells:

Setzen der Variable: <Variablenname>=<Variableninhalt>
Bekanntmachen der Variable: export <Variablenname>
Löschen der Variable: unset <Variablenname>

Bei csh, tcsh und darauf aufbauenden Shells:

Setzen und Bekanntmachen der Variable: setenv <Variablenname> <Variableninhalt>

Anzeige der Umgebungsvariablen

Bei allen Shells:

Abfrage der Variable: echo $<Variablenname>

Prozessabhängigkeit

Es ist üblich, dass die Umgebungsvariablen pro System-Prozess gespeichert werden. Änderungen, die ein Prozess an den Variablen vornimmt, sind nur für ihn selbst und für Prozesse, die von ihm gestartet wurden (Child-Prozesse), gültig.

MS-DOS

Unter MS-DOS und damit kompatiblen DOS-Varianten (mit oder ohne einem darauf laufenden 16-Bit-Windows, also Windows 1.x–3.x) und älteren Versionen von 32-Bit-Windows (also Windows 95/98/Me) werden die Umgebungsvariablen in der Datei AUTOEXEC.BAT, die beim Systemstart ausgeführt wird, oder anderen Batch-Dateien gesetzt.

Windows

Kommandozeile

Um sich in der Kommandozeile den Wert einer Umgebungsvariable anzeigen zu lassen, verwendet man echo %NAME% oder set NAME, wobei für NAME der Variablenname eingesetzt wird. Der set-Befehl steht ferner als Kommandozeilen-Editor zur Verfügung. Er lässt sich auch sehr gut innerhalb von Batch-Dateien verwenden. Der Befehl set als solcher listet alle gesetzten und somit verfügbaren Umgebungsvariablen auf. Möchte man eine Umgebungsvariable erstellen oder einer bestehenden einen neuen Wert zuweisen, nutzt man set NAME=WERT, wobei statt NAME der Name und statt WERT der künftige Wert der Variablen eingesetzt wird. set /? gibt ausführliche Informationen zu den Funktionalitäten des Befehls.

Grafische Oberfläche

Einen grafischen Editor zum direkten Bearbeiten der Umgebungsvariablen bietet der Befehl sysdm.cpl oder der Menüpunkt „Systemsteuerung – System“ oder die Tastenkombination Windows+Pause. Der Editor ist unter dem Register „Erweitert“ und dort unter „Umgebungsvariablen“ zu finden.

Dynamische Umgebungsvariablen

Einige Windows-Versionen stellen von sich aus dynamisch generierte Umgebungsvariablen zur Verfügung. Diese werden nicht fest gespeichert, und der Wert wird kurz vor der Ausgabe ermittelt. Beispiele solcher dynamischer Umgebungsvariablen sind:

CD Gibt das Verzeichnis aus, in dem sich der Abfragende gerade befindet
DATE Das aktuelle System-Datum
TIME Die aktuelle System-Zeit
ERRORLEVEL Den Fehlercode des zuletzt ausgeführten Befehls
RANDOM Generiert eine Zufallszahl zwischen 0 und 32767
CMDCMDLINE Enthält die Befehlszeile des aktiven Kommandointerpreters, siehe auch COMSPEC

Vordefinierte Umgebungsvariablen

Abhängig von der verwendeten Windows-Version stehen weitere, beim Systemstart oder beim Einloggen definierte Umgebungsvariablen bereit. Zum Beispiel:

Variable Windows XP Windows Vista/7
 %ALLUSERSPROFILE% (%PROGRAMDATA%) C:\Dokumente und Einstellungen\All Users C:\ProgramData
 %APPDATA% C:\Dokumente und Einstellungen\{username}\Anwendungsdaten C:\Users\{username}\AppData\Roaming
 %COMPUTERNAME% {computername} {computername}
 %COMMONPROGRAMFILES% C:\Programme\Gemeinsame Dateien C:\Programme\Common Files
 %COMMONPROGRAMFILES(x86)%  ?  ?
 %COMSPEC% C:\Windows\System32\cmd.exe C:\Windows\System32\cmd.exe
 %HOMEDRIVE% C:\ C:\
 %HOMEPATH% \Dokumente und Einstellungen\{username} \Users\{username}
 %LOCALAPPDATA% n/a C:\Users\{username}\AppData\Local
 %LOGONSERVER% \\{domain_logon_server} \\{domain_logon_server}
 %OS% Windows_NT Windows_NTw
 %PATH% C:\Windows\system32, C:\Windows, C:\Windows\System32\Wbem C:\Windows\system32, C:\Windows, C:\Windows\System32\Wbem
 %PATHEXT% .COM, .EXE, .BAT, .CMD, .VBS, .VBE, .JS, .WSF, .WSH .com, .exe, .bat, .cmd, .vbs, .vbe, .js, .jse, .wsf, .wsh, .msc
 %PROGRAMFILES% C:\Programme C:\Program Files
 %PROGRAMFILES(X86)%  ?  ?
 %PROMPT% $P$G $P$G
 %SystemDrive% C:\ C:\
 %SystemRoot% C:\Windows; (Windows 2000 und davor: C:\WINNT ) C:\Windows
 %TEMP% oder %TMP% C:\Windows\TEMP C:\Windows\TEMP
 %USERDOMAIN% {userdomain} {userdomain}
 %USERNAME% {username} {username}
 %USERPROFILE%  %SystemDrive%\Dokumente und Einstellungen\{username} C:\Users\{username}
 %WINDIR% C:\Windows C:\Windows
 %PUBLIC% n/a C:\Users\Public
 %PSModulePath% n/a  %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\
PATH Auflistung aller Pfade bzw. Verzeichnisse, die durchsucht werden sollen, wenn ein Befehl nicht im aktuellen Verzeichnis gefunden werden konnte
HOMEDRIVE Der Pfad des Startlaufwerks
HOMEPATH Der Pfad des persönlichen Verzeichnisses des aktuellen Benutzers
TEMP oder TMP Der Pfad des Verzeichnisses, in das Windows-Anwendungen temporäre Dateien zwischenspeichern
USERNAME Der Name des aktuellen Benutzers
SYSTEMROOT oder WINDIR Der Pfad des Windows System-Verzeichnisses
PROGRAMFILES Der Pfad des Programmordners

Registrierung

Unter den neueren auf NT basierenden Versionen von Windows (Windows NT/2000/XP/2003/Vista) werden Umgebungsvariablen in der Registrierung gespeichert. Der Registrierungspfad

 HKEY_CURRENT_USER\Environment

bzw. bei Windows XP (für z. B. HOMEDRIVE) und Windows Vista

 HKEY_CURRENT_USER\Volatile Environment

wird für Umgebungsvariablen verwendet, welche nur den aktuellen Benutzer betreffen. Der Pfad

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

hingegen dient zur Speicherung von Umgebungsvariablen, die im Gesamtsystem gültig sind. Mit dem Befehl regedit lassen sich diese Pfade leicht durchsuchen.

Verzögerung bei der Anwendung geänderter Variablen

Beim Start eines Prozesses (EXE-Datei) werden die aktuellen Umgebungsvariablen aus der Registry gelesen und dann „eingefroren“, der Prozess erhält also zu seiner Entstehung eine Kopie oder einen "Snapshot" der aktuellen Variablen. Später geänderte Umgebungsvariablen wirken sich daher nicht auf die laufenden Prozesse aus, sodass Prozesse wie eine laufende Shell („Eingabeaufforderung“) nichts davon mitbekommt. Sollen die Umgebungsvariablen in einer Shell verwendet werden, muss eine neue Instanz der Shell geladen werden. Es spielt dabei keine Rolle, ob eine bereits geöffnete Shell mit den alten Umgebungsvariablen vorher geschlossen wurde oder nicht. Es können dadurch zwei Shells mit unterschiedlichen Umgebungsvariablen ausgeführt werden.

Wird die Shell aus einem Windows-Explorer heraus gestartet (z. B. mittels „Open Command Window here“), und ist die Option „Ordnerfenster in einem eigenen Prozess starten“ in der Einstellung des Windows-Explorers aktiviert, so muss auch der Windows-Explorer neu gestartet werden, damit die geänderten Einstellungen sichtbar werden.

Einzelnachweise

  1. Erläuterungen zu Umgebungsvariablen unter Ubuntu-Linux

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Umgebungsvariable — Umgebungsvariable,   DOS Umgebungsvariable …   Universal-Lexikon

  • DOS-Umgebungsvariable —   (DOS Systemvariable), eine Variable, mit der sich die Einstellungen im DOS Umgebungsbereich setzen oder anzeigen lassen. In der Regel werden die Umgebungsvariablen beim Booten des Rechners und der Abarbeitung der Datei »autoexec.bat« definiert …   Universal-Lexikon

  • Systemvariable — Der Begriff Umgebungsvariable ist ein Begriff aus dem Bereich der Betriebssysteme von Computern. Eine Umgebungsvariable enthält beliebige Zeichenketten, die in den meisten Fällen Pfade zu bestimmten Programmen oder Daten enthalten, sowie… …   Deutsch Wikipedia

  • Umgebungsvariablen — Der Begriff Umgebungsvariable ist ein Begriff aus dem Bereich der Betriebssysteme von Computern. Eine Umgebungsvariable enthält beliebige Zeichenketten, die in den meisten Fällen Pfade zu bestimmten Programmen oder Daten enthalten, sowie… …   Deutsch Wikipedia

  • Cmd.exe — cmd.exe, Lorem ipsum anzeigend, mit dem Standardtitel unter Windows 2000, Eingabeaufforderung Basisdaten Entwickler: Microsoft Corpora …   Deutsch Wikipedia

  • Whoami — ist ein Unix Kommando, welches den Benutzernamen des den Befehl aufrufenden Benutzers ausgibt. Der Begriff leitet sich von der englischen Frage Who am I? (auf deutsch „Wer bin ich?“) ab. Gerade bei Mehrbenutzersystemen wie Unix und verwandten… …   Deutsch Wikipedia

  • Affen-Formular — Als Affenformular wird ein Programmieransatz der HTML Formularverarbeitung von Webseiten bezeichnet. Hierbei befinden sich das HTML Formular und die Gültigkeitsabfrage innerhalb eines Skriptes, und das Formular ruft sich daher beim Absenden immer …   Deutsch Wikipedia

  • Desktop-Environment — Unter einer Arbeitsumgebung (engl. work environment; auch Desktop Umgebung genannt) versteht man in der Informationstechnologie die für den menschlichen Benutzer des Computers zur Verfügung stehenden Werkzeuge für die Verrichtung einer Arbeit.… …   Deutsch Wikipedia

  • Desktop-Umgebung — Unter einer Arbeitsumgebung (engl. work environment; auch Desktop Umgebung genannt) versteht man in der Informationstechnologie die für den menschlichen Benutzer des Computers zur Verfügung stehenden Werkzeuge für die Verrichtung einer Arbeit.… …   Deutsch Wikipedia

  • Desktop Environment — Unter einer Arbeitsumgebung (engl. work environment; auch Desktop Umgebung genannt) versteht man in der Informationstechnologie die für den menschlichen Benutzer des Computers zur Verfügung stehenden Werkzeuge für die Verrichtung einer Arbeit.… …   Deutsch Wikipedia