Amiga goes UN*X: csh

Dieser Artikel richtet sich an all diejenigen Amiga-Besitzer (Mess-DOS-Anwender bitte umblättern!), die immer noch mit CLI bzw. (Commodore-)Shell arbeiten. Ich will mit diesem Artikel versuchen, eine etwas andere Benutzerschnittstelle zu beschreiben und schmackhaft zu machen. Nein, nicht die Workbench! Ich spreche von der C-Shell, kurz csh.

Ursprünglich wurde sie von Matthew Dillon von UN*X auf den Amiga portiert, z. Zt. wird sie von Dominik Müller weiterentwickelt.

Ich werden nun versuchen, einige Punkte herauszustellen, die mir wichtig erscheinen.

1. Installation

Diese gestaltet sich relativ problemlos. Man kopiert das 93K lange File nach C: und die ARP-Library ins LIBS:-Verzeichnis. Als nächstes setzt man in der "Startup-Sequence" seinen Stack auf mindestens 8K.

Die Shell besitzt zwei eigene Startup-Dateien, normalerweise "s:firstlogin" und "s:login". Diese sind mit "s:startup-sequence" und "s:user-startup" vergleichbar. Der Unterschied ist, daß "login" für jede Shell abgearbeitet wird, "firstlogin" nur für die Shell, mit der man bootet: dies ist nützlich, wenn man mehrere Shell-Fenster aufmachen möchte, Befehle wie "setmap" oder diverse "assign"s aber nur einmal ausführen will.

Als letzten Befehl in der "Startup-Sequence" ruft man dann die csh auf. Diese arbeitet daraufhin die obrige(n) Datei(en) ab und stellt sich dann dem Benutzer zur Verfügung.

2. Neuigkeiten gegenüber AmigaDOS

3. Befehle

Neben den oben genannten allgemeinen Fähigkeiten bietet die csh auch noch ca. 100 interne Befehle und über 80 Funktionen (z. B. für Stringverarbeitung), die bei der Erstellung von Shell-Skripts äußerst nützlich sind. Hier ein Ausschnitt mit kurzer Beschreibung:

alias:
Weist einem Befehl einen neuene Namen zu. Dabei können auch Parameter übergeben werden.

cd:
Alles wie gewohnt, mit einer Ausnahme: mit Option "-g" und mehreren Pfaden als Parameter aufgerufen wird eine Liste aller vorhanden Directories in den jeweiligen Pfaden erstellt. Diese Liste wird dann verwendet, wenn man nicht den ganzen Pfad tippen will. Beispiel: "cd -g sys:". Ist man nun irgendwo und gibt "cd keymaps" ein, so springt man (normalerweise) ins Verzeichnis "sys:devs/keymaps".

Wird auf dieses Feature verzichtet, dann kann der "cd"-Befehl vor Directory-Namen auch weggelassen werden: Mit ".." gelangt man ebenso ins nächsthöhere Verzeichnis wie mit "cd ..".

dir:
ca. 10 verschienden Optionen, die kombiniert werden können. Interessant: es kann ein eigenes Ausgabeformat erstellt werden. Es ist außerdem möglich, Directories farblich hervorzuheben.

man:
Wie unter UN*X: zum angegebenen Befehl wird eine genauere Anleitung ausgegeben.

rxrec:
Mit diesem Befehl empfängt die Shell AREXX-Befehle und kann so ferngesteuert werden.

rxsend:
Sendet einen AREXX-Befehl an einen anzugebenden Port. Für diesen Befehl muß kein AREXX-Interpreter laufen!!!

whereis:
Durchsucht ein oder mehrere Laufwerke nach einer Datei. Hier könenn auch wahlweise Wildcards verwendet werden.

4. Fazit

Neben den oben erwähnten Befehlen existieren noch umfangreiche Befehle zur Erstellung von Shellskripts: diverse Schleifenbefehle, Abfragen, Verzweigungsanweisungen, ...

Außerdem kann das Erscheinungsbild noch weiter verändert werden: So kann man den Text im Fenstertitel und/oder Prompt u. a. auf eine der folgenden Anzeigen setzen: freier Speicher, Zeit, Datum, Pfad, ...

Alles in allem ist die csh auf dem Amiga eine echte Alternative zu CLI/Shell, die ich nicht missen möchte. Vor allem das Expandieren der Wildcards, die History-Funktionen und die Vervollständigung von Dateinamen sind schon Grund genug, sich die Shell einmal anzuschauen.

Besorgen kann man sich die Shell (aktuelle Version: 5.19) über FTP bei amiga.physik.unizh.ch [130.60.80.80] im Verzeichnis /amiga/devel oder bei ftp.uni-paderborn.de im Verzeichnis /pub/aminet/util/shell, dort werden aktuelle Versionen zuerst Veröffentlicht.

Bei Problemen (Beschaffung, Installation, ...) helfe ich gerne weiter!


© Copyright Hubert Feyrer (hubert.feyrer@rz.uni-regensburg.de), 950728