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!