- 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 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 auslesen und/oder verändern.
Inhaltsverzeichnis
Unix und Unix-ähnliche Betriebssysteme
Kommandozeile
In vielen auf UNIX basierenden Betriebssystemen, etwa Linux oder BSD, 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 jeden 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 beinhaltet 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 Doppelpunkte „:“ getrennt. Das aktuelle Verzeichnis wird nicht durchsucht, da dies ein mögliches 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 Menge der Umgebungsvariablen pro System-Prozess gespeichert werden. Änderungen, die ein Prozess am Bestand der Variablen vornimmt, sind nur für ihn selbst und für Prozesse, die von ihm gestartet wurden (Child-Prozesse), gültig.
Weblinks
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, welche zu 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%, wobei für NAME der Variablenname eingesetzt wird. Der set-Befehl steht 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 Beinhaltet 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:
PATH Pfade die hier gelistet werden, werden nach Befehlen durchsucht die im aktuellen Verzeichnis nicht gefunden werden konnten 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 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.
Mögliche Probleme
Die geänderten Umgebungsvariablen werden innerhalb einer „Eingabeaufforderung“ (Shell) erst dann aktualisiert, wenn sie neu gestartet wird. 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.
Wikimedia Foundation.