7.9. Die Startdateien von Bash

Das Shell-Programm /bin/bash (im weiteren Verlauf nur „shell“ oder „bash“ genannt) benutzt einige Startdateien zum Einrichten der Benutzerumgebung. Jede Datei hat einen bestimmten Zweck und beeinflusst Login- und Interaktiv-Umgebungen unterschiedlich. Die Bash-Dateien in /etc enthalten globale Einstellungen. Wenn eine entsprechende Konfigurations-Datei auch im Persönlichen Ordner des Benutzers existiert, überschreibt sie die globalen Einstellungen.

Nach einem erfolgreichen Login wird mit /bin/login eine interaktive Login-Shell gestartet. Dazu wird die Datei /etc/passwd eingelesen. Eine interaktive nicht-Login-Shell wird von der Kommandozeile aus gestartet (z. B. [prompt]$/bin/bash). Eine nicht-interaktive Shell findet man üblicherweise bei laufenden Shell-Skripten. Sie ist nicht interaktiv, weil Sie ein Skript abarbeitet und zwischen den Kommandos nicht auf Eingaben vom Benutzer wartet.

Weitere Informationen finden Sie mit info bash im Abschnitt Bash Startup Files and Interactive Shells.

Die Dateien /etc/profile und ~/.bash_profile werden gelesen, wenn die Shell als interaktive Login-Shell aufgerufen wurde.

Die untenstehende Basisversion der Datei /etc/profile stellt ein paar notwendige Umgebungsvariablen für NLS-Unterstützung ein. Eine korrekte Einstellung dieser Variablen bewirkt:

Diese Datei setzt auch die Variable INPUTRC. Wenn diese Variable gesetzt ist, benutzen Bash und Readline die vorhin erzeugte Datei /etc/inputrc.

Ersetzen Sie [ll] mit dem zweistelligen Ländercode für die gewünschte Sprache (z. B. „de“) und [CC] mit dem zweistelligen Code für das gewünschte Land (z. B. „DE“ oder „AT“). [charmap] sollte durch den korrekten Zeichensatz ersetzt werden, z. B. „iso8859-15“.

Mit dem folgenden Kommando erhalten Sie eine Liste aller von Glibc unterstützten Locales:

locale -a

Locales haben häufig mehrere Synonyme. Z. B. wird „ISO-8859-1“ häufig auch als „iso8859-1“ und „iso88591“ geschrieben. Einige Programme können nicht mit den verschiedenen Synonymen umgehen, daher ist es das sicherste, den korrekten Namen für ein Locale anzugeben. Um den kanonischen Namen für ein Locale herauszufinden, führen Sie das folgende Programm aus, wobei [locale name] die Ausgabe von locale -a für Ihr bevorzugtes Locale ist (in diesem Beispiel de_DE.iso88591).

LC_ALL=[locale name] locale charmap

Für das Locale „de_DE.iso88591“ ergibt das obige Kommando:

ISO-8859-1

Das endgültige Ergebnis ist also „de_DE.ISO-8859-1“.

Wenn Sie die korrekten Locale-Einstellungen herausgefunden haben, erstellen Sie die Datei /etc/profile:

cat > /etc/profile << "EOF"
# Begin /etc/profile

export LANG=[ll]_[CC].[charmap]
export INPUTRC=/etc/inputrc

# End /etc/profile
EOF
[Anmerkung]

Anmerkung

Die Locales „C“ (voreinstellung) und „en_US“ (empfohlen für englischsprachige Amerikaner) sind nicht identisch.

Das Einstellen von Tastaturlayout, Bildschirmschriften und Locales sind die einzigen notwendigen Schritte zur Internationalisierung, um Locales mit einfachen 1-Byte-Kodierungen und links-nach-rechts Schreibweise einzurichten. Komplexere Fälle (inklusive UTF-8-basierter Locales) erfordern weitere Schritte und Patches, weil viele Anwendungen dazu neigen, unter diesen Bedingungen nicht richtig zu funktionieren. Diese Schritte und Patches sind derzeit nicht Teil des LFS-Buches und diese Locales werden auch noch nicht von LFS unterstützt.