Umgebungs-Variablen (Environment-Variablen) werden unter Linux (genauso wie auch unter anderen Systemen) benutzt, um z.B. Suchpfade zu Programmbinaries zu definieren. Ebenso sind unter Linux noch viele andere Variablen für alle erdenklichen Zwecke in Benutzung.
Wo man diese Variablen definiert, ist vom beabsichtigten Zweck abhängig. Entweder definiert man Variablen temporär. Die Variablendefinition ist somit nur bis zum nächsten Neustart gültig. Sollen Variablen bei jedem Systemstart automatisch gesetzt werden, kann man diese in den entsprechenden Dateien eintragen. Die Syntax ist jedoch immer gleich:
VARIABLE=0815
Mit dem Kommando echo kann man sich den Variableninhalt ausgeben lassen:
echo $VARIABLE 0815
Das Kommando export sorgt dafür, dass die Variable nicht nur in der aktuellen Shell, sondern auch in den von Ihr aufgerufenen Programmen zur Verfügung steht:
export VARIABLE
Man kann das alles auch in eine einzige Zeile packen:
export VARIABLE=0815
Wie gesagt, gelten solche Variablen nur für die aktuelle Sitzung. Variablen lassen sich jedoch auch dauerhaft definieren:
Systemweite Änderung für alle Benutzer siehe Datei /etc/profile.
Bei Debian gilt auch /etc/environment.
Änderung nur für einen oder wenige Benutzer siehe Datei ~/.profile (~/ = Homeverzeichnis des Benutzers).
Environment-Variablen werden bei der Prozessgenerierung vererbt, d.h. Kindprozesse bekommen eine Kopie des Environments des Vaterprozesses und vererben dies auch wieder an ihre Kinder weiter.
PATH erweitern
Angenommen, wir wollen /usr/local/progdir zusätzlich im Suchpfad haben - dann dort reinschreiben an einer passenden Stelle:
PATH=$PATH:/usr/local/progdir export PATH
Damit wird zuerst eine Variable PATH definiert, die am Anfang den Wert der seitherigen PATH-Variable, gefolgt von einem Doppelpunkt und dem dann am Schluss angehängten /usr/local/progdir enthält. Mit dem export-Kommando der Shell wird dann diese Variable in's Environment geschrieben.
.bashrc ist übrigens auch möglich, aber unnötig aufwendig, weil dort enthaltene Befehle ja bei jedem Start einer bash ausgeführt werden. Da die Environment-Variablen ja aber eh vererbt werden, ist dies nur einmal bei der Login-Shell notwendig, alle darunter gestarteten Bash-Prozesse erben dann die Settings.
Proxy definieren
export http_proxy=http://mein.proxy.firma
Analog funktioniert das auch mit ftp_proxy.
Environment anzeigen
printenv [Variable ...]
gibt den Wert aller bzw. der angegebene(n) Umgebungsvariablen aus.
Locale
Über die Locale-Umgebungs-Variablen lassen sich auch DeutscheMeldungen (Ausgabe und Fehlermeldungen) von Programmen einstellen.
Beispiele
Um KDE-Programme selbst kompilieren zu können, müssen diverse Variablen gesetzt werden. Hier ein Beispiel für SuSE 8.X:
export KDEDIR=/opt/kde3 export QTDIR=/usr/lib/qt3