Mini-Tipp: ksh konfigurieren
Inhalt
1. Einleitung
Wer von Linux zu einem proprietären Unix (AIX, Irix, Solaris, HP-UX) kommt, vermisst schnell den Komfort der Bash. Diese lässt sich zwar auf diesen Systemen auch installieren - doch ist dies vielleicht nicht erwünscht.
Die Korn-Shell (ksh) dagegen ist auf allen Systemen vorhanden. Sie lässt sich mit ein bisschen Konfigurationsarbeit
so komfortabel gestalten, dass man die Bash nicht mehr all zu stark vermisst.
2. Allgemeines
a. ksh als Login-Shell
Ist die ksh Login-Shell, wertet sie beim Login die Dateien /etc/profile und .profile im Benutzer-Heimatverzeichnis aus.
Bei jedem weiteren Start dagegen werden diese Dateien nicht ausgewertet - stattdessen wird die Variable ENV
ausgewertet.
Damit die in diesem Dokument beschriebenen Konfigurationen immer zur Verfügung stehen, sollte die Variable ENV
im .profile
vererbt werden. Typischerweise:
~/.profile (Ausschnitt)
ENV=~/.kshrc export ENV |
Alle beschriebenen Konfigurationen wandern dann in die Datei .kshrc.
Melden Sie sich direkt unter der grafischen Standard-Oberfläche CDE (Common Desktop Environment) an, wird die Datei .profile normalerweise nicht ausgewertet. Sie können dieses Standardverhalten ändern, indem Sie der Datei .dtprofile folgende Zuweisung hinzufügen (bzw. das Kommentarzeichen entfernen):
~/.dtprofile (Ausschnitt)
DTSOURCEPROFILE=true |
b. ksh ist nicht Login-Shell
Hier bleibt Ihnen nichts anders übrig als die Datei .kshrc in die Shellumgebung einzulesen («sourcen»):
# . ~/.kshrc |
3. Pfeiltasten für History
Zur Nachbildung der History-Funktion wie unter der bash tragen Sie folgende Sequenz in Ihre .kshrc ein:
~/.kshrc (Ausschnitt)
set -o emacs alias __A='^P' alias __B='^N' alias __D='^B' alias __C='^F' alias __H='^A' alias __F='^E' alias __G='^O' set -o emacs |
Damit funktionieren die Pfeiltasten, Pos1 und Ende, die Suche mit Strg-R sowie die automatische Pfadnamen-Erweiterung (unter der bash als TAB-Funktion bekannt - doch dazu später)
Beachten Sie im obigen Listing, dass in den Alias-Zuweisungen ^P
Strg-P, ^N
Strg-N usw. bedeutet.
Sie erreichen dies im vi,
indem Sie zunächst Strg-V und dann den entsprechenden Control-Character eingeben (also Strg-V Strg-P usw eintippen).
Automatische Pfadnamenerweiterung
Die automatische Pfadnamenerweiterung (TAB-Funktion) haben Sie mit den obigen Einträgen auch bereits aktiviert -- jedoch benutzen Sie dazu
nicht wie in der Bash die Tabulator-Taste sondern ESC ESC (2x ESC betätigen statt einmal TAB). Sie wirkt jedoch nur
auf Pfadnamen - nicht auf Befehle!
Die Doppel-TAB-Funktion der Bash, mit der Sie alle passenden Erweiterungen bekommen, wird durch ESC = abgebildet.
4. Prompt setzen
Der Standard-Prompt der Korn-Shell ist recht schlicht: $
für normale Benutzer, #
für root. Möchten Sie den
Hostnamen, den aktuellen Pfad und evtl Ihren Benutzernamen in den Prompt einfließen lassen, setzen Sie die Variable PS1
entsprechend.
So ergibt
PS1=$(uname -n):'$PWD# ' export PS1
beispielsweise (Hostname=unix, aktuelles Verzeichnis=/tmp):
unix:/tmp# _
Oder möchten Sie wissen, als welcher Benutzer Sie gerade arbeiten? Dann setzen Sie
PS1=$USER@$(uname -n)':$PWD$ ' export PS1
und es ergibt sich:
root@unix:/tmp$ _