Universitätsrechenzentrum






Besonderheiten der Shell im URZ

Interessentenkreis

Diese FAQ ist für Nutzer wichtig, die intensiv mit der Kommandosprache arbeiten und eigene Konfigurationen ausführen möchten, da es gegenüber der Beschreibung in den Manuals Anpassungen gibt, die unbedingt beachtet werden müssen.
Wenn Sie mit grafischen Mitteln arbeiten und nur gelegentlich ein Kommando in einem Terminal- oder sonstigen Befehlseingabefenster eingeben wollen, brauchen Sie diese FAQ nicht weiter zu lesen.

Die Shell als Kommandointerpreter ist eines der fundamentalsten Programme im Linuxsystem. Als Mittler zwischen dem Nutzer und dem Linux-Betriebssystemkern ist sie ein Programm, dass die vom Nutzer eingegebenen Befehle entgegennimmt, interpretiert und in geeigneter Form dem Linuxbetriebssystem übermittelt. Mittels einer komfortablen Scriptsprache können ganze Kommadofolgen programmiert werden.

Welche Shell unterstützt das URZ?

Die vom URZ dem Nutzer voreingestellte und besonders gewartete Shell ist die Bourne Again Shell , kurz: Bash.
Die installierte Version wird durch das Kommando bash --version angezeigt.

Alle anderen Shells werden vom URZ nicht unterstützt und es wird davor gewarnt, diese zu nutzen, weil sonst keinerlei Konfigurationen des URZ greifen!

Das URZ kann nur bei Fehlverhalten der Bash Unterstützung bieten!

Voreinstellungen zu automatischen Wortergänzungen

Bei der Eingabe in einer Kommandozeile werden durch Betätigen der T a b u l a t o r t a s t e (Tab) die Worte folgendermaßen ergänzt:

Erstes Zeichen Ergänzungselement
eine Tilde (~) Nutzerkennzeichen
Dollarzeichen ($) Variablenname
Kommerzielles AT (@) Hostname
sonst Kommando- oder Aliasname
Wenn das nicht möglich ist, wird eine Vervollständigung des File- oder Verzeichnisnamens angenommen.

Vordefinierter Prompt

 [nutzerkennzeichen.@hostname aktuelles_verzeichnis]$

Aufruf von Programmen aus dem aktuellen Verzeichnis heraus

Der Punkt in der PATH-Variable zum Suchen des Kommandos im aktuellen Verzeichnis ist wegen Sicherheitsrisiken herausgenommen worden.

Wollen Sie dennoch nicht darauf verzichten, müssen Sie selbst die PATH-Variable erweitern. Das sollten Sie zur Vermeidung rekursiver Erweiterungen der PATH-Variable in der Datei $HOME/PUBLIC/.bash_profile tun.

Konfigurationsdateien der Shell

Welche Dateien werden genutzt und wo findet man sie?

Mit Erhalt eines Nutzerkennzeichens vom URZ werden im Sinne einer Voreinstellung im Homeverzeichnis ( $HOME ) einige Konfigurationsdateien eingerichtet, in denen Sie eigene Konfigurationen vornehmen dürfen.

Diese sind:

  • $HOME/PUBLIC/.bash_profile, darauf verweist ein symbolischer Link $HOME/.bash_profile
  • $HOME/PUBLIC/.bashrc, darauf verweist ein symbolischer Link $HOME/.bashrc
  • $HOME/PUBLIC/.bash_logout, darauf verweist ein symbolischer Link $HOME/.bash_logout

Bitte machen sie nur an den vorgesehenen Stellen Einträge und ändern sie nichts an den Vorgaben! Nur so ist eine korrekte Arbeitweise möglich!

Andere Startupdateien, die bei Vorhandensein im Homeverzeichnis von den Shells ebenfalls ausgewertet werden (.profile, .bash_login), dürfen nicht benutzt werden, weil sie den Startupmechanismus verändern .

Wann kommen die Konfigurationsdateien zur Wirkung?

Die nachfolgende Tabelle zeigt, wann die vom URZ im Homeverzeichnis bereitgestellten Dateien aufgerufen werden. Bitte beachten Sie das bei Ihren Konfigurationen!

Aktion Aufruf(folge)
Login-Vorgang oder Start als Login-Shell
(bash -login (veraltete Version 1), bash --login, xterm -ls ...)
$HOME/PUBLIC/.bash_profile
$HOME/PUBLIC/.bashrc
Start einer interaktiven Shell* $HOME/PUBLIC/.bashrc
Start einer nichtinteraktiven Shell* $HOME/PUBLIC/.bashrc**
Logout-Vorgang (Abmelden aus einer Login-Shell) $HOME/PUBLIC/.bash_logout

* grobe Einteilung:

  • Interaktive Shell: Es sind Ein- und Ausgaben von Texten auf einem Terminal möglich
  • Nichtinteraktive Shell: Es sind a priori keine Ein- und Ausgaben von Texten auf einem Terminal möglich (z.B. Shellscripts, die oftmals ohne Terminalverbindung abgearbeitet werden)

** Soll diese Datei hier nicht aufgerufen werden, so müssen Sie die Variable BASH_ENV löschen, z.B. durch Eintrag folgender Anweisung in die Datei $HOME/PUBLIC/.bash_profile :

    unset BASH_ENV

Fehlerquelle: Interaktionen in den Konfigurationsfiles

Bei der Nutzung von Interaktionen (Ein- und Ausgaben) in den Konfigurationsfiles muss gesichert werden, dass ein Aufruf unter nicht interaktiver Arbeitsweise durch entsprechende Tests verhindert wird. Sonst kann es zum Fehlverhalten kommen.

Rücksetzen der Konfigurationsdateien auf die Voreinstellung durch das URZ

Zum Rücksetzen von privaten Einträgen in den Startupdateien und der Einstellung des vom URZ vorgegebenen Ausgangszustandes steht auf den vom URZ administrierten Linux-Rechnern das Kommando

    urz_sh_reset

zur Verfügung.

Dateien, die zu löschen oder zu überschreiben sind, werden in einem Verzeichnis gerettet ( ~/.urz_saved_config/SHELLS/{datum}/{uhrzeit} )

Über den Ablauf der Reorganisation wird ein Protokoll erstellt, dass per Mail versendet wird.

Aufrufvarianten:

urz_sh_reset Protokoll nur als Mail
urz_sh_reset --verbose Protokoll als Mail und auf Terminal
urz_sh_reset --help Anzeige eines Hilfetextes

Tcsh

Die Tcsh wird vom URZ nicht mehr unterstützt.

Beachten Sie aber, dass Sie eigene Konfigurationen weiterhin nur in den Dateien
$HOME/PUBLIC/.login, $HOME/PUBLIC/.cshrc und $HOME/PUBLIC/.logout
eintragen dürfen!