Umgebungsvariable
aus Wikipedia, der freien Enzyklopädie
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 |
[Bearbeiten] Unix
[Bearbeiten] Kommandozeile
In vielen auf UNIX basierenden Betriebssystemen wie Linux oder BSD, werden Umgebungsvariablen beim Start einer Shell gesetzt. Ein Beispiel dafür ist die Datei /etc/profile, welche von Bourne-Shells zur Initialisierung gelesen wird. 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.
[Bearbeiten] 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 |
Der Pfad in der die persönlichen E-Mail Nachrichten des aktuellen Benutzers abgelegt werden | |
PATH | Diese Variable beinhaltet den Suchpfad. Sollte bei der Eingabe eines Befehlnamens kein Verzeichnis angegeben werden, durchsucht der Kommandointerpreter (die Shell) die in dieser Variable gespeicherten Pfade von Links nach rechts. Die Verzeichnisnamen werden durch : getrennt. Das aktuelle Verzeichnis wird nicht durchsucht, da dies ein mögliches Sicherheitsrisiko darstellt. |
[Bearbeiten] Änderung der Umgebungsvariablen
Umgebungsvariablen können folgendermaßen gesetzt und den anderen Prozessen innerhalb des Betriebssystems bekannt gemacht werden:
1. Setzen der Variable: | <Variablenname>=<Variableninhalt> |
---|---|
2. Bekanntmachen der Variable: | export <Variablenname> |
3. Abfrage der Variable: | echo $<Variablenname> |
[Bearbeiten] Prozessabhängigkeit
Unter Unix-ähnlichen System, wie etwa Linux, ist es ü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 Prozesse, die von ihm gestartet wurden (Child-Prozesse), gültig.
[Bearbeiten] MS-DOS
Unter MS-DOS (mit oder ohne einem 16-Bit Windows) und älteren Versionen von 32-Bit Microsoft Windows (95, 98, Me) werden die Umgebungsvariablen in der Datei AUTOEXEC.BAT, welche zu Systemstart ausgeführt wird, oder anderen Batch-Scripts gesetzt.
[Bearbeiten] Windows
[Bearbeiten] Kommandozeile
Um sich in der Kommandozeile den Wert einer Umgebungsvariable anzeigen zu lassen verwendet man echo %NAME%, wobei für NAME der Variable eingesetzt wird. Der set-Befehl steht als Kommandozeilen-Editor zur Verfügung. Er lässt sich auch sehr gut in Batch-Scripten verwenden. Der Befehl set als solcher listet alle 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 Variable eingesetzt wird. set /? gibt ausführliche Informationen zu den Funktionalitäten des Befehls.
[Bearbeiten] 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-Taste + Pause. Der Editor ist unter dem Register "Erweitert" und dort unter "Umgebungsvariablen" zu finden.
[Bearbeiten] 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 |
[Bearbeiten] 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 |
[Bearbeiten] Registrierung
Unter den neueren Versionen von Microsoft Windows (NT, 2000, XP und Server 2003) werden Umgebungsvariablen in der Registrierung gespeichert. Der Registrierungs-Pfad
HKEY_CURRENT_USER \ Environment
wird zur Speicherung von Umgebungsvariablen, welche nur den aktuellen Benutzer betreffen und
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment
für im Gesamtsystem gültige Umgebungsvariablen verwendet. Mit dem Befehl regedit lassen sich diese Pfade leicht durchsuchen.
[Bearbeiten] Mögliche Probleme
Die geänderten Umgebungsvariablen werden innerhalb einer Command-Shell erst dann aktualisiert, wenn die Command-Shell neu gestartet wird. Wird die Shell aus einem Windows Explorer heraus gestartet (z.B. mittels "Open Command Window here"), und ist der Switch "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.