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
}}}
