8.13    Startskripte

Da wir uns in diesem Buch primär an das Beispiel der bash halten möchten, beschreiben wir an dieser Stelle auch das Startskriptsystem dieser Shell.

In den Startskripten werden globale und benutzerspezifische Initialisierungen vorgenommen. So werden Funktionen definiert, wird der eine oder andere Alias eingerichtet oder werden Variablen wie der Programmsuchpfad $PATH gesetzt.

Ist die bash als Login-Shell eingerichtet, so werden zunächst die Dateien /etc/profile und – sofern vorhanden – .bash_profile im Heimatverzeichnis des Benutzers bzw. der Benutzerin ausgeführt. Anschließend werden die ebenfalls im Heimatverzeichnis liegenden Dateien .bash_login und .profile ausgeführt.

Die Datei /etc/profile enthält globale Einstellungen. Dies ist praktisch, da bei jedem Login eines Benutzers eine vom Administrator vorgegebene Einstellung übernommen werden kann. So könnte zum Beispiel ein bestimmtes Kommando oder ein für alle Benutzerinnen und Benutzer verwendbarer Alias eingerichtet werden.

Die anderen Dateien können vom Benutzer selbst eingerichtet und dazu verwendet werden, persönliche Einstellungen vorzunehmen.

Nachdem man sich aus der bash ausgeloggt hat, wird die Datei .bash_logout ausgeführt. In diese Datei kann man nützliche Funktionen, etwa zum Löschen temporärer Daten, einbauen.

Wird eine interaktive Nicht-Login-Shell gestartet, liest die bash die Datei .bashrc im Heimatverzeichnis des Benutzers bzw. der Benutzerin ein und führt sie aus.

Hier ist eine minimale .bashrc:

# Setzen von einigen Variablen
export NULL=/dev/null
export MAINLOG=/var/log/syslog
export TERM=xterm-color
export LC_ALL=de_DE
export EDITOR="vi"
…

# Alias-Definitionen
alias ls="/bin/ls -aF"
alias ll="ls -alhoF"
alias cl="cd ..;ls"
alias cll="cd ..;ll"
…

# Willkommenstext fuer jede neue Shell
echo
echo "Welcome on `hostname`, $USER!"
echo
printf "%79s\n" "`uname -a`"

printf "%79s\n" "`uptime`"
…

# Der Willkommensspruch
/usr/games/fortune

Listing 8.57     Beispiel für eine .bashrc-Datei