Copyright © 1995 by O'Reilly/International Thomson Verlag

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches "Linux - Wegweiser zur Installation & Konfiguration", dann klicken Sie hier.


Kapitel 7

Software für Datenübertragung und Remote-Zugang

Zu den wichtigen Problemen, die auf einem isolierten Linux-System gelöst werden müssen, gehören die Datenübertragung und der Zugang zu entfernt stehenden Rechnern (Remote-Zugang). Wir werden hier Lösungen besprechen, die nützliche Alternativen und Erweiterungen zu TCP/IP und UUCP darstellen. Die Utilities C-Kermit und Zmodem gehen über das hinaus, was traditionelle UNIX-Lösungen bieten, indem Sie die Zusammenarbeit mit einer ganzen Reihe von Nicht-UNIX-Systemen ermöglichen; außerdem unterstützen Sie mehr Arten des Dateizugriffs und mehr interaktive Arbeitsmodi über serielle Leitungen.

C-Kermit

Wenn Sie keinen Internet-Anschluß haben oder mit jemandem kommunizieren möchten, der zwar ein Modem, aber keinen Internet-Anschluß hat, brauchen Sie ein Kommunikationsprogramm. Jedermann sollte mindestens ein solches Programm auf seinem Rechner haben, denn eines Tages werden Sie mit einem anderen System Dateien austauschen müssen, dessen einzige Verbindung mit dem Rest der Welt aus einer seriellen Leitung besteht.

Eines der ältesten und am weitesten verbreiteten Kommunikationsprogramme ist Kermit. C-Kermit ist aus frühen Kermit-Versionen weiterentwickelt worden und stellt ein vollständiges Paket für die Datenübertragung unter UNIX dar. Zusätzlich zur Unterstützung von Dateitransfers und (heutzutage) von vielen anderen seriellen Diensten ist C-Kermit auch in der Lage, TCP/IP- und X.25-Verbindungen zu handhaben.

C-Kermit unterstützt folgende Dienste:

Obwohl Kermit frei erhältlich ist, verhindern Lizenzbestimmungen, daß es Bestandteil von Standard-Linux-Distributionen wird. Wir halten das für eine bedauerliche Lücke, weil Kermit der »König« aller Kommunikation zwischen verschiedenartigen Computersystemen ist. Kermit ist auf mehr als 150 verschiedene Computerplattformen portiert worden. Wir wollen anhand seiner Entwicklungsgeschichte erläutern, warum Kermit nicht Bestandteil von Linux-Distributionen ist.

Das Kermit-Protokoll für die Datenübertragung wurde 1981 vom Center of Computing Activities an der Columbia University in New York City entworfen. Die Spezifikation des Kermit-Protokolls ist veröffentlicht worden und darf von den Entwicklern von Kommunikationsanwendungen ohne Einschränkungen implementiert werden. Die Trustees (Kuratoren) der Columbia University halten das Copyright von Kermit und kontrollieren somit seine offizielle Entwicklung; allerdings ist es jedermann freigestellt, für den eigenen Bedarf Ergänzungen und Anpassungen vorzunehmen. C-Kermit ist eine der vielen Anwendungen, die das Kermit-Protokoll benutzen. Das Programm wurde 1985 von Frank da Cruz an der Columbia University in C geschrieben -- Hunderte von Entwicklern in der ganzen Welt haben Hilfestellung geleistet und Ideen eingebracht.

Die Entwicklungsgeschichte von Kermit hat die Projekte GNU und Linux vorausahnen lassen -- nämlich in ihren Bemühungen, ein tragfähiges Modell für die Entwicklung und Verbesserung von öffentlicher Software zu etablieren. Die Columbia University hat ihr Copyright zum Wohle der Allgemeinheit ausgeübt. Zu einer Zeit, als ein auffallender Mangel an offenen Standards für die Datenübertragung herrschte, hat die Columbia University dem Entwicklerteam die Entwicklung, Verbesserung, Erweiterung und Spezifikation von Kermit gestattet; gleichzeitig wurde ausgereifte Kermit-Software für eine beeindruckende Reihe von Plattformen frei zur Verfügung gestellt.

Nun ja, »Es ist nicht leicht, grün zu sein«, wie uns Kermit der Frosch in einem Lied mitteilt. Die Columbia University verlangt von Herstellern, die Kermit kommerziell vertreiben, daß vorab eine ausdrückliche Genehmigung eingeholt wird; außerdem muß die komplette Dokumentation zusammen mit der Software ausgeliefert werden. Aufgrund des Umfangs der Kermit-Dokumentation erreicht Kermit preisliche Regionen, die für eine Linux-Distribution nicht tragbar sind.

Trotz allem: Wir halten C-Kermit für die geeignete Software, wenn Sie sicher sein wollen, daß Ihr Linux-System auf zuverlässige Weise mit verschiedenen Rechnersystemen Dateien austauschen kann, deren Benutzerschnittstellen irgendwo zwischen AmigaDOS und ZetaLISP angesiedelt sind. Der Terminalmodus von C-Kermit macht es sogar möglich, Dateien von einem Rechner abzurufen, auf dem Kermit nicht installiert ist; dazu wird die Datei aufgerufen und auf dem »Terminal« von Kermit »angezeigt«. Mit C-Kermit können Sie auch andere Datenübertragungsprotokolle benutzen, indem es mit den Befehlen sz und rz eine Zmodem-Übertragung kontrolliert.

Weil Kermit nicht Bestandteil der Standard-Linux-Distributionen ist, werden Sie es per FTP oder von jemandem besorgen müssen, der es bereits hat. Weiter unten im Abschnitt » C-Kermit besorgen « erfahren Sie, wo Sie C-Kermit beziehen können. Wir beschreiben in diesem Abschnitt die Version, die zum Zeitpunkt des Schreibens aktuell ist: Version 5A, Edit 190.

C-Kermit besorgen

Sie können den kompletten C-Kermit-Quellcode per FTP aus dem offiziellen FTP-Archiv kermit.columbia.edu unter den Dateinamen /kermit/c-kermit/cku*.* beziehen; benutzen Sie den ASCII-Modus von FTP. Wahrscheinlich werden Sie als UNIX-Version lieber ein komprimiertes und archiviertes C-Kermit-Paket besorgen wollen, das in den Dateien /kermit/archives/cku*.tar.Z zu finden ist.

(Der Stern bezeichnet den Edit-Level der aktuellen Version -- die UNIX-Version von C-Kermit trägt zum Zeitpunkt des Schreibens den Edit-Level 190.) In Anhang C, FTP-Anleitung und SiteListe finden Sie Hinweise zu FTP, und im Abschnitt » Archivierung und Komprimierung in « Kapitel 4 Informationen zum Entpacken und Entarchivieren von Dateien.

Auch auf anderen FTP-Rechnern in der ganzen Welt finden Sie eine (meistens) aktuelle UNIX-Version von C-Kermit -- beispielsweise auf src.honeywell.com (in /kermit ) oder auf beetle.murdoch.edu.au (in /pub/solaris2/src/kermit ).

Außerdem können Sie Kermit auf verschiedenen Speichermedien direkt vom Kermit Distribution Department der Columbia University beziehen. Rufen Sie unter +1 212 854 3703 an, um zu klären. ob das richtige Medium und Format für Ihr Betriebssystem lieferbar ist. Columbia berechnet eine Gebühr für Material und Handhabung sowie Versandkosten. Die Postanschrift lautet:

Attn: Kermit Distribution, Dept CI
Columbia University, Center for Computing Activities
612 W. 115th Street
New York, NY 10025, USA

Installation und Konfiguration

Wir gehen davon aus, daß Sie als Systemverwalter C-Kermit auf Ihrem System installieren möchten. Auch wenn Sie nicht der Systemverwalter sind, können Sie C-Kermit installieren -- eventuell in einem der Verzeichnisse $HOME/bin oder /usr/local/bin , falls Ihr Verwalter auf Ihrem Rechner die Installation von Softwarepaketen zur allgemeinen Benutzung gestattet. Weil C-Kermit für die direkte Kommunikation zwischen Rechnern benutzt wird, sollten Sie auf jeden Fall Ihren System- oder Netzwerkverwalter davon in Kenntnis setzen, daß Sie C-Kermit installieren möchten -- sofern es nicht schon installiert ist. Es gilt, die Systemsicherheit und den Virenschutz sowohl auf Ihrem Rechner als auch auf fremden Rechnern zu gewährleisten.

Wenn Sie bereit sind, das C-Kermit-Paket auf Ihrem System zu installieren, sollten Sie ein Verzeichnis finden, in das Sie die Dateien für die Kompilierung kopieren können. Sie könnten (als root ) z.B. folgendes Verzeichnis für die Kompilierung anlegen:

# mkdir /usr/local/bin/kermit5a

Verschieben Sie das Softwarepaket in das gerade erzeugte Verzeichnis. Wenn Sie das Paket per FTP bezogen haben, handelt es sich wahrscheinlich um ein komprimiertes Archiv, das Sie zunächst entpacken müssen:

# gunzip ckermit5A.tar.Z  
# tar -vxf ckermit5A.tar

Nach dem Entpacken ist die Anzahl der Dateien groß und möglicherweise verwirrend. Die C-Kermit-Dateinamen beginnen typischerweise mit ck ; die ursprünglichen Dateien haben ein ckc oder cke als Präfix, die Dateien der UNIX-Version ein cku . Dokumentationsdateien enden auf .doc oder .bwr bei Hinweisen und Warnungen (beware; Vorsicht!); es gibt ein paar Dateien mit Ankündigungen, die das Suffix .ann (announcement) tragen. Eventuell finden Sie weitere Dokumentationsdateien mit der Endung .hlp (help) vor sowie eine .nr -Manual-Page (»nroff«). Den größten Teil der Dateien können Sie im Augenblick noch ignorieren, solange Sie nicht mit dem Quellcode von C-Kermit herumspielen möchten oder bei der Installation auf Probleme stoßen.

Wahrscheinlich können Sie C-Kermit ohne Schwierigkeiten installieren, wenn Sie zunächst die Dateien READ.ME und ckuaaaa.doc , und danach die Datei ckuins.doc aus Ihrer Distribution lesen. Eine der Makefile-Optionen paßt bestimmt zu Ihrer Linux-Installation, und Sie müssen nur noch (als Root) den Befehl make mit dem richtigen Argument aufrufen.

Wahrscheinlich findet sich in Ihrer Distribution noch ein veraltetes Makefile , das Sie auf keinen Fall benutzen sollten; Sie sollten diese Datei löschen oder umbenennen. Es sollte auch eine neuere Datei namens makefile vorhanden sein, in der die Konfigurationsinformationen bereits enthalten sind, die Sie für eine erfolgreiche Kompilierung von C-Kermit für Ihr Linux-System brauchen. Falls es diese Datei noch nicht gibt, können Sie ckuker.mak nach makefile kopieren und letztere benutzen. Sie finden die Linux-Optionen am schnellsten, indem Sie mit Ihrem Editor das Makefile nach dem String »linux« durchsuchen.

Sie sollten nach Möglichkeit C-Kermit lieber auf Ihrem System kompilieren, als eine fertig kompilierte Version einzuspielen, weil das Makefile die Installation an Ihr System anpaßt.

Das Makefile aus den Standarddistributionen von C-Kermit bietet mindestens vier verschiedene Kompilierungen für Linux an. Es gibt eine Version für normale serielle Verbindungen; eine, die auch TCP/IP-Netzverbindungen unterstützt; schließlich diese beiden Optionen mit den statischen Bibliotheken gebunden. Wahrscheinlich lassen sich alle Versionen mit Hilfe von make und gcc problemlos auf Ihrem System kompilieren, ohne daß Sie Änderungen vornehmen müssen; ebenso wahrscheinlich sind alle Versionen so konfiguriert, daß sie auf der überwiegenden Mehrzahl aller Linux-Systeme lauffähig sind.

Um eine Standardversion von C-Kermit für serielle Verbindungen zu erstellen, geben Sie ein:

# make linux

Wenn Ihr kermit außerdem TCP/IP-Verbindungen unterstützen soll, geben Sie ein:

# make linuxtcp

Eine statisch gebundene Version von kermit mit Unterstützung für TCP/IP erhalten Sie mit:

#  make linuxtcps

(Sie sollten das statisch gebundene kermit nur dann kompilieren, wenn Sie eine portable Version brauchen; die statische Version ist viel umfangreicher als die Shared-Library-Version.)

Falls der make -Prozeß mit Fehlermeldungen abbricht, die darauf hinweisen, daß der Abbruch mit linux/serial.h zu tun hat, sollten Sie das Verzeichnis »säubern«:

# make clean

und make noch einmal aufrufen -- fügen Sie dieses Mal das Argument KFLAGS=-DNOHISPEED an den ursprünglichen make -Aufruf an:

# make linuxtcp KFLAGS=-DNOHISPEED

Die Konfigurationshinweise zu Ihrer Distribution, die Datei ckuins.doc , enthalten weitere make -Optionen für den Fall, daß Sie eine ausgefeiltere Installation z.B. mit einer systemweiten Initialisierungsdatei für Kermit erstellen möchten. Hier finden Sie auch Hinweise zum Testen der ausführbaren Datei wermit .

In der Voreinstellung konfiguriert das make -Skript für Linux kermit so, daß es den UUCP-Mechanismus zum Sperren von Dateien benutzt (temporäre .lck -Dateien). Das Skript versucht herauszufinden, in welchem Verzeichnis UUCP seine Lock-Files ablegt und benutzt dann dasselbe Verzeichnis, um zu vermeiden, daß es zu Konflikten kommt, wenn verschiedene Benutzer Kermit und UUCP zur selben Zeit benutzen.

Nachdem make erfolgreich beendet worden ist, finden Sie die beiden ausführbaren Dateien wermit und wart vor. Wenn Sie wermit getestet und für gut befunden haben, können Sie die Dateiberechtigungen setzen und die Datei in eines der Verzeichnisse für ausführbare Dateien verschieben:

# chmod 755 wermit 
# mv wermit /usr/local/bin/kermit

Die ausführbare Datei wart im make -Verzeichnis ist ein Ersatzprogramm für das UNIX-Utility lex , das während der Ausführung von make benutzt wird; wahrscheinlich brauchen Sie diese Datei nicht mehr. Um sowohl die Objektdateien als auch wart zu entfernen, geben Sie im Anschluß an make folgendes ein:

# make clean

Es gibt noch andere Dateien, die Sie an geeigneten Stellen auf Ihrem System installieren sollten. Falls Ihre Linux-Installation noch keine Online-Hilfe für C-Kermit 5A enthält, sollten Sie diese von Hand für die Benutzung vorbereiten:

# chmod 644 ckuker.nr 
# mv ckuker.nr /usr/man/man1/kermit.1

Falls Sie die C-Kermit-Dateien nicht an den vorgesehenen Stellen ablegen, sollten Sie vielleicht die Manual-Page kermit.1 editieren, um dort die tatsächlichen Pfade zu den Beispieldateien von C-Kermit einzutragen (im Abschnitt FILES). Es empfiehlt sich, die C-Kermit-Beispiele im Verzeichnis /usr/local/lib/kermit abzulegen. Die folgenden Dateien sollten dort stehen:

ckermit.ini , ckermod.ini , ckermit.kdd , ckermit.ksd , ckedemo.ini , ckevt.ini , ckurzsz , ckcker.upd , ckcker.bwr und ckuker.bwr . Setzen Sie auf jeden Fall die Berechtigungen so, daß die Dateien von jedermann gelesen werden können; es handelt sich um Beispiele, die Benutzer für sich kopieren, um daraus ihre individuelle kermit -Installation zu erzeugen.

Die Implementierung von C-Kermit für Solaris unterstützt neben TCP/IP und dem Kermit-Protokoll auch noch X.25-Verbindungen. Falls Sie X.25 benötigen, könnten Sie der Gemeinde der Linux- und Kermit-Benutzer einen großen Dienst erweisen, wenn Sie diese Version nach Linux portierten.

C-Kermit interaktiv

C-Kermit ist ein interaktives Programm, bei dem Sie nach dem Start eine Reihe von internen Befehlen benutzen. Sie brauchen einige Verbindungsdaten, um einen fremden Rechner erreichen zu können: die Portnummer, Modemdaten und (bei Wählleitungen) die zu wählende Nummer bzw. die Internet-Adresse bei TCP/IP-Verbindungen.

Starten Sie das interaktive C-Kermit einfach mit:

$ kermit

Sie haben auch die Möglichkeit, auf der Befehlszeile einige Optionen anzugeben (siehe unten). C-Kermit zeigt eine Begrüßungsnachricht und einen Prompt an (normalerweise C-Kermit>, aber Sie können das ändern). Wenn Sie auf der Befehlszeile allerdings »Aktions«-Optionen angeben, startet C-Kermit nicht im interaktiven Modus; es führt statt dessen die Aktionen aus, die durch Flags und Argumente zum Befehl kermit bestimmt werden und kehrt danach in Ihre Shell zurück.

Nachdem Sie kermit im interaktiven Modus gestartet haben, wollen Sie als nächstes wahrscheinlich erfahren, wie Sie denselben wieder verlassen. Sie können dazu entweder quit oder exit eingeben. C-Kermit schließt Dateien automatisch und räumt hinter sich auf, wenn es sich beendet.

Anschließend werden Sie wahrscheinlich mit set -Befehlen die richtigen Werte für das Modem, die Übertragungsgeschwindigkeit usw. einstellen. Sie werden mit dem Befehl dial eine Verbindung zu einem anderen System per Telefonleitung aufnehmen und mit den Befehlen send und receive Dateien übertragen.

Sie brauchen nicht den kompletten Namen eines Befehls einzugeben, damit C-Kermit weiß, was es tun soll; geben Sie soviel vom Befehlsnamen ein, daß er von anderen Befehlen eindeutig unterschieden werden kann. Wenn Sie beispielsweise nur exi oder ex eingeben, weiß C-Kermit, daß Sie exit ausführen möchten. Wenn Sie nicht genügend Zeichen des Befehlsnamens eingegeben haben, wird C-Kermit Sie auffordern, weitere Zeichen einzugeben.

Soviel zu den Grundlagen. Lassen Sie uns jetzt die wichtigsten Anwendungsbereiche von C-Kermit ausprobieren.

Dateien übertragen

Kermit wird in erster Linie für die Übertragung von Dateien eingesetzt; dafür benutzt es die Befehle send , msend und receive . Wir werden eine komplette Sitzung mit der Anwahl eines Systems und der Übertragung von Dateien durchspielen, und starten in unserem Beispiel aus dem Home-Verzeichnis des Benutzers.

Rufen Sie zunächst Kermit auf:

$ kermit 
C-Kermit 5A(190), 10 Dec 94, Linux 1.0.9
Type ? or HELP for help
Linux Kermit>

Anschließend müssen Sie die Kommunikationsparameter setzen. Dazu gehören der Modemtyp (Hayes), die zu benutzende Gerätedatei ( dev/modem ), die Geschwindigkeit des Ports, die Parität (8 Bits, keine Parität) sowie die Zeit, die bis zu einem Abbruch gewartet werden soll. Natürlich werden Sie eine Weile probieren müssen, bis Sie die Werte kennen, die von den Modems an den beiden Enden Ihrer eigenen Verbindung unterstützt werden. Zufälligerweise waren folgende Parameter korrekt für unsere Beispielsitzung:

Linux Kermit>  set modem hayes 
Linux Kermit>  set line /dev/modem 
Linux Kermit>  set speed 9600 
Linux Kermit>  set parity none 
Linux Kermit>  set dial timeout 60

Rufen Sie an:

Linux Kermit>  dial 1-508-555-5000 
Dialing 1-508-555-5000
Device=dev/modem, modem=hayes, speed=9600
Call completed.

Initialisieren Sie die Verbindung:

Linux Kermit>  connect 
Welcome to the World.
Login:  mdw 
Password:  Geben Sie Ihr Paßwort ein-es wird nicht angezeigt.  
You have new mail.
world$

Jetzt sind Sie in das System world eingeloggt. Wir erstellen die Datei, die wir übertragen möchten, aus einer Manual-Page:

world$  cd working 
world$  man kermit | col -b > kermit.1

Starten Sie Kermit auf dem fremden Rechner:

world$  kermit 
C-Kermit 5A(189), 30 Jun 93, Silicon Graphics IRIX 4.0
Type ? or HELP for help

Ändern Sie den Prompt auf dem anderen System. Dieser Schritt ist optional, wird aber empfohlen, damit Sie erkennen, wann Sie auf dem fremden Rechner sind:

C-Kermit>  set prompt {world-k> } 
world-k>

Übertragen Sie jetzt eine Datei:

world-k>  send kermit.1

Wechseln Sie vorübergehend auf das lokale System, um die Datei zu empfangen. Geben Sie die Zeichenfolge CTRL-Backslash gefolgt von einem c ein, um von einem System auf das andere zu wechseln. Mit dem Befehl r nehmen Sie die übertragene Datei in Empfang:

world-k>  ^\c 
Linux Kermit>  r

Kehren Sie auf das fremde System zurück und beenden Sie Kermit. Sie erhalten wieder den Shell-Prompt des anderen Rechners:

Linux Kermit>  ^\c 
world-k>  exit 
world$

Kopieren Sie einige Dateien in das Arbeitsverzeichnis:

world$  cp ../bin/lp* .

Lassen Sie den fremden Frosch noch einmal springen:

world$  kermit 
C-Kermit 5A(189), 30 Jun 93, Silicon Graphics IRIX 4.0
Type ? or HELP for help
C-Kermit>

Übertragen Sie die Binärdateien:

C-Kermit>  set file type binary 
C-Kermit>  mget lp*

Wechseln Sie wieder auf das lokale System und nehmen Sie die Dateien in Empfang. Kehren Sie dann auf den fremden Rechner zurück und beenden Sie Kermit:

C-Kermit>  ^\c 
Linux Kermit>  receive 
Linux Kermit>  ^\c 
C-Kermit>  exit 
world$

Loggen Sie aus dem fremden Rechner aus. Eventuell müssen Sie logout statt exit benutzen:

world$  exit 
Communications disconnect (back at local system)
Linux Kermit>

Verlassen Sie Kermit:

Linux Kermit>  exit 
$

Im nächsten Beispiel benutzen wir Kermit via TCP/IP auf einem Internet-System:

world$  kermit 
C-Kermit 5A(189), 30 Jun 94, Silicon Graphics IRIX 4.0
Type ? or HELP for help
C-Kermit>

Geben Sie den Namen des fremden Rechners als Port für TCP/IP-Verbindungen an, und initialisieren Sie die Verbindung. Loggen Sie ein wie auf beliebigen anderen UNIX-Systemen auch:

C-Kermit>  set port tcp pond.walden.com 
C-Kermit>  connect 
Linux 1.0.9
login:  mdw 
password:  Paßwort eingeben 
pond$

Starten Sie Kermit auf dem fremden Rechner:

pond$  kermit 
C-Kermit 5A(190), 10 Dec 94, Linux 1.0.9
Type ? or HELP for help
Linux Kermit>

Wechseln Sie in ein Verzeichnis, in dem Dateien stehen, und übertragen Sie einige TEX-Dateien:

Linux Kermit>  cd /book/linux 
Linux Kermit>  msend *.tex

Kehren Sie mit CTRL-Backslash und c kurzzeitig auf das lokale System zurück, um die Dateien zu empfangen:

Linux Kermit>  ^\c 
Linux Kermit>  receive

Kehren Sie wieder auf den fremden Rechner zurück und verlassen Sie Kermit:

Linux Kermit>  ^\c 
Linux Kermit>  exit 
pond$

Wenn Sie die Shell des Remote-Systems verlassen, befinden Sie sich wieder im lokalen Kermit:

pond$  exit 
Communications disconnect (back at local system)

Verlassen Sie schließlich auch den lokalen Kermit. Sie landen wieder bei Ihrem lokalen Shell-Prompt:

C-Kermit>  exit 
world$

Im folgenden Beispiel benutzen wir Kermit, um in einen fremden Rechner einzuloggen und eine Textdatei zu übertragen, ohne daß wir dazu irgendein Kommunikations-Utility auf dem fremden Rechner aufrufen. Der Trick besteht darin, daß wir die Datei auf dem Bildschirm anzeigen lassen und Kermits Protokollfunktion benutzen, um die Datei mitzuschreiben:

pond$  kermit 
C-Kermit 5A(190), 10 Dec 94, Linux 1.0.9
Type ? or HELP for help
Linux Kermit>

Setzen Sie die Kommunikationsparameter und rufen Sie an:

Linux Kermit>  set modem hayes 
Linux Kermit>  set line /dev/modem 
Linux Kermit>  set speed 19200 
Linux Kermit>  set parity none 
Linux Kermit>  set dial timeout 60 
Linux Kermit>  dial 1-617-739-9753 
Dialing 1-617-739-9753
Device=dev/modem, modem=hayes, speed=9600
Call completed.
Linux Kermit>

Initialisieren Sie die Verbindung und loggen Sie ein:

Linux Kermit>  connect 
Welcome to the World.
Login:  mdw 
Password:  Paßwort eingeben 
world$ 

Wechseln Sie in das Verzeichnis, das die gewünschte Datei elm.rc enthält:

world$  cd /usr/local/lib

Als nächstes werden wir mit dem Befehl cat die Datei anzeigen und gleichzeitig die Protokollfunktion auf dem lokalen System einschalten. Tippen Sie den Befehl cat , aber schicken Sie ihn noch nicht mit RETURN ab; wechseln Sie statt dessen mit CTRL-Backslash und c zurück auf das lokale System:

world$  cat elm.rc^\c 
Linux Kermit>

Öffnen Sie die Protokolldatei, in der die Sitzung mitgeschrieben wird:

Linux Kermit>  log session sample.elm.rc

Wechseln Sie wieder auf den fremden Rechner, wo der cat -Befehl noch wartet, und führen Sie ihn mit RETURN aus:

Linux Kermit>  connect 
world$  cat elm.rc

Nachdem Sie RETURN gedrückt haben, wird die Datei elm.rc auf dem Kermit-Bildschirm angezeigt und gleichzeitig in der Datei mitgeschrieben, die Sie vorab für diesen Zweck geöffnet haben: sample.elm.rc auf dem lokalen Rechner. Wechseln Sie nach Beendigung des Befehls zurück auf das lokale System, um die Protokollfunktion auszuschalten:

world$  ^\c 
Linux Kermit>  close session

Verlassen Sie Kermit.

Linux Kermit>  exit 
pond$

Der Dateiinhalt ist in der Protokolldatei festgehalten worden. Sie müssen lediglich die zusätzliche Zeile am Dateiende entfernen, die den Systemprompt enthält, der nach Beendigung des cat -Befehls angezeigt wird.

Terminalverbindungen

Wenn Sie in Kermit den Befehl connect ausführen, gelangen Sie damit in eine Terminalemulation. C-Kermit emuliert per Voreinstellung ein VT100-Terminal. Sie haben die Möglichkeit, viele Terminaleinstellungen zu ändern, darunter den Zeichensatz, die Behandlung der Zeilenenden und die Tastaturbelegung.

Mit dem Kermit-Befehl show terminal können Sie sich die wichtigsten Terminaleinstellungen anzeigen lassen. Im Terminalmodus (in der Kermit-Dokumentation connect mode genannt) ist CTRL-Backslash als Escape-Code voreingestellt. Sie haben diesen Code zusammen mit dem Zeichen c bereits benutzt, um den Terminalmodus zu verlassen. Die Zeichenfolge ist am Anfang vielleicht umständlich einzugeben, aber Sie werden sich schnell daran gewöhnen.

Mit der Zeichenfolge CTRL-Backslash gefolgt von einem s können Sie den Status einer Terminalsitzung anzeigen lassen. Die Anzeige könnte etwa so aussehen:

C-Kermit>  ^\s 
Connected through /dev/ttyh5, speed 19200
Terminal bytesize: 7, Command bytesize: 7, Parity: none
Terminal echo: remote
Carrier Detect       (CD):   On
Dataset Ready        (DSR):  Off
Clear To Send        (CTS):  Off
Ring Indicator       (RI):   Off
Data Terminal Ready  (DTR):  On
Request to Send      (RTS):  On
C-Kermit>

Im Terminalmodus können Sie Kermit unterbrechen und eine Shell öffnen, indem Sie CTRL-Backslash gefolgt von einem Ausrufezeichen oder dem Klammeraffen eingeben (! oder @). Weitere Befehle, die Sie nach CTRL-Backslash eingeben können, sind:

b
Sendet das Unterbrechungssignal.
l
Sendet das Unterbrechungssignal in einer Netzwerkverbindung.
h
Weist Kermit an, die Leitung zu schließen.
C-Kermit individuell anpassen

C-Kermit konfiguriert sich in der Regel selbst, bevor es andere Befehle ausführt, indem es die Konfigurationsbefehle aus seiner Datei $HOME/.kermrc ausführt. Die meisten Linux-Systeme, die Kermit installiert haben, gestatten die Konfiguration durch den Benutzer mit Hilfe dieser Datei.

Es kann allerdings auch sein, daß der Systemverwalter Kermit so konfiguriert hat, daß es statt dessen eine Systemkonfigurationsdatei benutzt. Diese Datei heißt wahrscheinlich /usr/local/lib/kermit/ckermit.ini . Der Systemverwalter kann Kermit so konfigurieren, daß eine eventuell vorhandene, lokale Konfigurationsdatei eines Benutzers Vorrang vor der systemweiten Initialisierungsdatei bekommt -- oder auch nicht.

Wenn Ihr System zu den freizügigeren gehört, können Sie Ihre eigene $HOME/.kermrc -Datei einrichten, indem Sie die Systemdatei ckermit.ini kopieren. Ein Beispiel:

$  cp /usr/local/lib/kermit/ckermit.ini ~/.kermrc

Diese Datei enthält die Standardbefehle zur Konfiguration von Kermit. Sie können entweder diese Datei oder eine andere mit dem Namen $HOME/.mykermrc anpassen; die Werte in diesen Dateien haben dann Vorrang vor der Standardkonfiguration. Sie können die Standarddatei auf .mykermrc kopieren, um letztere dann anzupassen:

# cp /usr/local/lib/kermit/ckermod.ini ~/.mykermrc

Wenn Sie die Datei $HOME/.mykermrc statt Ihrer .kermrc -Datei modifizieren, können Sie ganz schnell die von Ihnen ausgelösten Veränderungen des Kermit-Verhaltens isolieren und debuggen. Mit dem Schalter -Y auf der Befehlszeile bewirken Sie, daß die vorhandene Initialisierungsdatei (oder die Dateien) nicht gelesen wird. Wenn Sie mit der Option -y den Pfadnamen einer anderen Konfigurationsdatei angeben, wird C-Kermit diese benutzen.

Normalerweise werden Sie die meisten Einstellungen in der ursprünglichen Konfigurationsdatei unverändert übernehmen. Wahrscheinlich habe Sie aber ein paar bevorzugte Übertragungsprotokolle, Terminaleinstellungen, Makrodefinitionen usw. Wir empfehlen, die Datei /usr/local/lib/kermit/ckermod.ini nach $HOME/.mykermrc zu kopieren und Ihre Anpassungen in der zuletzt genannten Datei vorzunehmen. Seien Sie nicht zu ehrgeizig -- ändern Sie nur dann, wenn es nötig ist, und testen Sie nach jeder Anpassung, ob Sie den beabsichtigten Effekt erzielt. Wenn Sie zu viele Änderungen auf einmal durchführen, kann es schwierig werden, die fehlerhafte Stelle zu finden, falls Kermit nicht erwartungsgemäß funktioniert.

Die Konfigurationsdatei von Kermit hat ein überschaubares Format. Zum großen Teil besteht sie aus set -Befehlen, mit denen solche Dinge wie Modemtyp, Übertragungsgeschwindigkeit und Portnummer festgelegt werden. In dieser Datei können auch echo-Zeilen stehen, um Nachrichten an den Benutzer auszugeben. Kommentare stehen hinter einem Semikolon in der Zeile. Die Datei könnte beispielsweise so aussehen:

set modem telebit        ; Trailblazer-Initialisierung benutzen
set line /dev/modem      ; /dev/modem entspricht COM1 unter DOS
set speed 9600           ; Höchstgeschwindigkeit für diesen alten
Gaul
dial 1170                ; Nicht auf Anrufe warten.
echo Call Waiting has been turned off so your session won't be interrupted.
echo Ready for 'dial' instruction: provide the full number to dial.
Dokumentation

C-Kermit bietet viel mehr Möglichkeiten, als wir hier beschreiben können; einige davon werden Sie nur zur Kenntnis nehmen, wenn Sie etwas darüber lesen.

Man würde ein ziemlich dickes Buch brauchen, um Kermit umfassend zu beschreiben, und glücklicherweise gibt es ein solches Buch bereits: Using C-Kermit: Communication software for UNIX, VMS, OS/2, AOS/VS, OS-9, Amiga, Atari ST . Auch eine deutsche Version ist vorhanden: C-Kermit -- Einführung und Referenz . (Für die MD-DOS-Version von Kermit sind Bücher auf englisch, deutsch, japanisch und wahrscheinlich in weiteren Sprachen veröffentlicht worden, aber wir wollen uns hier nur mit Linux befassen. Allerdings funktionieren die verschiedenen Versionen von Kermit, die von der Columbia University vertrieben werden, alle in ähnlicher Weise, so daß Sie Befehle, die Sie für eine Version gelernt haben, auch in anderen Versionen benutzen können.)

Eine knappe Konfigurationsanleitung für C-Kermit ist in der Distribution enthalten -- ebenso wie eine Online-Hilfe. Die Dokumentationsdateien zu C-Kermit sind eventuell im Verzeichnis /usr/local/lib/kermit abgelegt.

Auf dem FTP-Rechner kermit.columbia.edu finden Sie auch deutsche und portugiesische Dokumentation zu früheren Versionen von Kermit, die auch heute noch von Nutzen sein kann. Außerdem stehen dort Artikel, die zu Kermit veröffentlicht wurden, sowie Informationen zur Benutzung von Kermit durch Blinde und Sehbehinderte. Sie finden diese Dokumente in /kermit/doc .

Da Kermit nicht Bestandteil der Standard-Linux-Distributionen ist, Sie aber auf jeden Fall ein Nachschlagewerk brauchen, um alle Fähigkeiten von Kermit ausnutzen zu können, geben wir Ihnen hier einige weitere Hinweise dazu, wo Sie die notwendige Dokumentation auftreiben können:

In Asien
Digital Press in Singapur: +65.220.3684.
In Australien
Digital Press in Chatswood, New South Wales: +61.2.372.5511.
In Kanada
Logan Brothers, in Winnipeg, Manitoba: +1.800.665.1148; oder Digital Press in den USA.
In Europa
Für Using C-Kermit : Digital Press in Rushden, England: +44.993.58521. Für C-Kermit -- Einführung und Referenz : Verlag Heinz Heise, Hannover: +49.05.11.53.52-0.
In den USA
Digital Press in Woburn, Massachusetts: +1.800.366.2665.

Weitere Hilfestellung zu C-Kermit und Informtionen zu Updates und Problemen mit Kermit finden Sie in den Beiträgen der News-Gruppe comp.protocols.kermit . Sie können die Online-Zeitschrift Info-Kermit Digest bestellen (die auch an comp.protocols.kermit geschickt wird), indem Sie eine Nachricht an den Mail-Server schicken, die im Textteil folgendes enthält:

subscribe:  ihr-name

Benutzen Sie im Internet die Adresse listserv@cuvma.cc.columbia.edu und in BITnet/EARN LISTSERV@CUVMA.BITNET .

Interne Hilfe

Neben der Manual-Page zu kermit verfügt C-Kermit noch über eine ganz hervorragende Online-Hilfe, die Sie im interaktiven Modus benutzen können. Geben Sie einfach zu einem beliebigen Zeitpunkt während der Arbeit mit kermit ein Fragezeichen (?) ein. Die eingebaute Hilfefunktion zeigt dann entweder eine Nachricht an, eine Liste der in Frage kommenden nächsten Schritte, oder eine Liste der Dateien, die verschickt oder empfangen werden können (was immer gerade benötigt wird). Es folgen ein paar Beispiele für die Benutzung der Online-Hilfe:

?
Damit erhalten Sie eine lange Liste der Befehle, die Sie an dieser Stelle im Programm eingeben können -- ein Menü. Weitere Informationen zu einem bestimmten Befehl erhalten Sie mit dem Befehlsnamen, gefolgt von einem Fragezeichen.
set ?
Ein Fragezeichen hinter einem der primären Befehle läßt eine Liste der Optionen erscheinen, die bei diesem Befehl stehen können.
s?
C-Kermit listet die Befehle auf, die mit dem Buchstaben »s« beginnen. Die Liste könnte etwa so aussehen:
send server set show space statistics stop stay
se?
C-Kermit listet die Befehle auf, die mit den Buchstaben »se« beginnen. Diese Liste könnte folgendermaßen aussehen:
send server set

Weil mit dem Fragezeichen die Kermit-Hilfe aufgerufen wird, müssen Sie einen Backslash (\) voranstellen, wenn Sie das Fragezeichen als Teil eines Befehls eingeben möchten, wo es als Wildcard dient. Ein Beispiel: Wenn Sie von einem anderen Rechner die Dateien megadoom.h und megadoom.c übertragen möchten, können Sie dazu folgendes eingeben:

C-Kermit>  get megadoom.\?

Wenn Sie statt dessen eingeben:

C-Kermit>  get megadoom.?

wird C-Kermit versuchen, weiterzuhelfen, indem es anzeigt:

File(s) to get, one of the following:
megadoom.bak   megadoom.c   megadoom.exe   megadoom.h

Auf der Kermit-Befehlszeile können Sie auch die Befehle help und man aufrufen. Damit erhalten Sie Informationen darüber, wie die Online-Hilfe in Ihrer Version von Kermit funktioniert.

Kermit als Server

Die Remote-Services (das Arbeiten auf fremden Rechnern) bilden eine fortschrittliche Möglichkeit zur einfachen Übertragung einer großen Anzahl an Dateien, zum Erstellen und Löschen von Dateien auf einem Rechner usw. Wir wollen diese Möglichkeit hier nicht weiter besprechen, aber als Verwalter eines Systems, das von anderen Rechnern aus erreichbar ist, müssen Sie wissen, daß sie in Kermit vorhanden ist.

Wenn C-Kermit als Server betrieben wird, kann ein Kermit auf einem anderen Rechner eine Verbindung mit dem Server herstellen und dort Kermit-Befehle ausführen. Diese Befehle können mit der Kermit-internen Skript-Sprache zu einem Skript zusammengefaßt werden.

In der Voreinstellung sind alle Serverdienste von Kermit aktiviert. Mit dem Befehl show server am Kermit-Prompt können Sie anzeigen lassen, welche der Serverdienste aktiviert sind. Die Antwort könnte folgendermaßen aussehen:

C-Kermit>  show server 
Function          Status
GET               enabled
SEND              enabled
REMOTE CD/CWD     enabled
REMOTE DELETE     disabled
REMOTE DIRECTORY  enabled
REMOTE HOST       disabled
REMOTE SET        disabled
REMOTE SPACE      enabled
REMOTE TYPE       enabled
REMOTE WHO        disabled
BYE               disabled
FINISH            enabled

(Wir geben weiter unten eine kurze Beschreibung dieser Dienste.)

Der Kermit-Verwalter kann mit dem Befehl disable beliebige Serverdienste deaktivieren. Die Änderung eines Dienstes muß geschehen, bevor C-Kermit als Server gestartet wird; die Änderung wird erst wirksam, wenn C-Kermit das nächste Mal in den Server-Modus geht. Ein deaktivierter Dienst kann mit dem Befehl enable wieder aktiviert werden. Es folgt eine Liste der Serverdienste, die Sie mit den Kermit-Befehlen enable und disable kontrollieren können:

bye
Damit verlassen Sie den Server-Modus von Kermit.
cd
Gestattet dem Benutzer Verzeichniswechsel mit den Kermit-Befehlen cwd und cd .
delete
Gestattet die Benutzung des delete -Befehls vom fremden Rechner aus.
directory
Kontrolliert die Anzeige von Verzeichnisinformationen an fremde Benutzer.
finish
Damit verläßt Kermit den Server-Modus.
get
Kontrolliert den Zugriff auf zu übertragende Dateien des Servers.
host
Kontrolliert, ob der C-Kermit-Server auch in den Rechner-Modus (host mode) versetzt werden kann. Einige der Möglichkeiten, die Kermit im Server-Modus bietet, sind auch im Rechner-Modus zugänglich; dazu gehören die Befehle delete , directory , space , type und who . Sie müssen disable host eingeben, bevor Sie diese Möglichkeiten konfigurieren können.
send
Kontrolliert, ob der Server Dateien akzeptiert, die ein anderer Kermit schickt.
set
Kontrolliert, ob der fremde Benutzer mit dem set -Befehl Kermit-Einstellungen ändern kann.
space
Kontrolliert, ob der Server Informationen zum freien Speicherplatz in den von Kermit verwalteten Verzeichnissen anzeigt.
type
Kontrolliert, ob ein fremder Kermit-Benutzer die von Kermit verwalteten Dateien anzeigen kann.
who
Kontrolliert, ob ein fremder Benutzer Informationen über einen lokalen Benutzer abfragen kann.

Falls Sie sich Gedanken über die Sicherheit von Kermit machen, sollten Sie diese Einstellungen in der systemweiten C-Kermit-Initialisierungsdatei /usr/local/lib/kermit/ckermit.ini vornehmen.

Weitere Fähigkeiten von C-Kermit: Ein kurzer Überblick

Wir haben hier nicht genug Platz, um den vollen Umfang von C-Kermit und seine Flexibilität zu besprechen. Sie sollten allerdings wissen, daß es diese Fähigkeiten hat. In Using C-Kermit finden Sie eine ausführliche Darstellung.

Unterstützung für internationale Zeichensätze
Obwohl C-Kermit für seine Benutzerschnittstelle den ASCI-Zeichensatz verwendet, können Sie das Programm für die Arbeit mit verschiedenen romanischen, kyrillischen und japanischen Zeichensätzen konfigurieren. Alles was Sie dafür brauchen, ist eine 8-Bit-Verbindung ohne Parity. Die Zeichensätze Latin1-ISO, Latin2-ISO, Cyrillic-ISO und Japanese-EUC werden unterstützt. C-Kermit beherrscht außerdem die Übersetzung von Zeichen in einen anderen Zeichensatz und die ASCII-Annäherung (ASCII approximation); d.h., daß empfangene Nicht-ASCII-Zeichen als phonetische ASCII-Entsprechung dargestellt werden können.
Makros, Variablen usw.
C-Kermit verfügt über eine umfangreiche Programmiersprache, mit der Sie Skripts schreiben können, die Sie in Dateien ablegen und bei Bedarf aufrufen. Auf diese Weise lassen sich eintönige und komplexe Aufgaben stark vereinfachen. C-Kermit kennt eine Reihe von Variablen für Informationen über die Systemkonfiguration oder die Arbeitsumgebung. Die Programmiersprache unterstützt bedingte Anweisungen, Mehrfachauswahl, GOTO und Elemente aus der strukturierten Programmierung, Dateibehandlung und interne Funktionen.
Curses
C-Kermit unterstützt die Benutzung der curses -Library zur Terminalkonfiguration.

Dateiübertragung mit Zmodem

Das Protokoll Zmodem, das aus den älteren und einfacheren Protokollen Xmodem und Ymodem entstand, ist ein robustes und schnelles Protokoll für die Datenübertragung. Es benutzt 32-Bit-CRC (Cyclic Redundancy Checking), um einen fehlerfreien Datentransfer sicherzustellen. Auf UNIX-Systemen stellt das Paket RZSZ das am weitesten verbreitete Tool für die Implementierung des Zmodem-Protokolls dar. Verwandte Protokolle wie Xmodem und Ymodem werden durch Befehle unterstützt, die Bestandteil des RZSZ-Pakets sind.

Das aktuelle Paket RZSZ enthält folgende Befehle:

rz
Empfange Dateien mit dem Batch-Protokoll (Stapelverarbeitungsprotokoll) von Zmodem. Wenn das sendende Programm innerhalb von 50 Sekunden keine Dateien nach dem Zmodem-Protokoll schickt, geht rz in den rb -Modus.
rb
Empfange Dateien mittels Ymodem- oder Ymodem-G-Protokoll. rb ist eine andere Möglichkeit, den Befehl rz aufzurufen.
rx
Empfange eine Datei mittels Xmodem-Protokoll.
sz
Sende Dateien unter Benutzung des Batch-Protokolls von Zmodem.
sb
Sende Dateien und benutze eines der Protokolle Ymodem oder Ymodem-G. sb ist eine andere Möglichkeit, den Befehl sz aufzurufen.
sx
Sende eine Datei und benutze das Xmodem-Protokoll.

sz beherrscht die automatische Dateiübertragung als Antwort auf eine eingehende rz -Anforderung, und rz verarbeitet übertragene Ymodem- oder Zmodem-Dateien automatisch. sz kann außerdem als Filter benutzt werden, um die Standardeingabe an den empfangenden Rechner zu leiten. Die RZSZ-Tools zeigen Informationen zur Dateiübertragung an -- darunter auch die voraussichtliche Übertragungszeit, das Wiederaufsetzen nach Unterbrechungen, das Erkennen von Wildcards bei der Auswahl von Dateien sowie die Benachrichtung des Benutzers bei Übertragungsende. Da die meisten bekannten Terminalprogramme für PCs (ProComm, Telix und etliche andere) das Zmodem-Protokoll unterstützen, ist es mit dem Paket RZSZ sehr einfach, Dateien zwischen Linux-Systemen und DOS, Macintosh, VMS sowie anderen Betriebssystemen zu übertragen.

Interessanterweise enthalten einige Linux-Distributionen zwar die Befehle sz und rz , jedoch fehlen eventuell einige Teile des Pakets (einschließlich der Manual-Pages). Wir nennen deshalb im nächsten Abschnitt einige FTP-Archive, aus denen Sie das komplette Paket beziehen können.

In der Mehrzahl aller Fälle werden Sie Xmodem oder Ymodem nicht brauchen, deshalb beschränken wir uns auf die Fähigkeiten von sz und rz .

RZSZ besorgen

Das Paket RZSZ gehört nicht ausdrücklich zu den Linux-Tools; deshalb kann es sein, daß Sie keine komplette Zusammenstellung des Pakets speziell für Linux finden. Mit Hilfe von archie waren wir allerdings in der Lage, eine Reihe von Archiven aufzuspüren, in denen das Paket für verschiedene Betriebssysteme angeboten wird -- darunter befinden sich auch FreeBSD-FTP-Archive. In den Archiven, die Standard-UNIX-Quelldateien anbieten, stehen die Quellen des RZSZ-Pakets in comp.sources.unix\volume12 -- beispielsweise auf ftp.cs.umn.edu und plaza.aarnet.edu.au. Sie finden die Quelltextdateien außerdem auf ftp.cc.utexas.edu in /source/comm/Zmodem .

Interessanterweise stammen die aktuellen RZSZ-Quelltexte nicht aus dem Internet. Sie stehen im BBS TeleGodzilla in Portland, Oregon, USA, das Sie unter der Modemnummer +1-503-621-3746 erreichen. In /usr/spool/uucppublic/FILES finden Sie eine Liste der Dateien, die Sie von diesem BBS herunterladen können. Das BBS ( omen.uucp ) wird von der Firma Omen Technology, Inc., 17505-V Northwest Sauvie Island Road, Portland, OR 97231, USA unterhalten. Wenn Sie mit UUCP auf diesen Rechner zugreifen wollen, brauchen Sie folgende Zugangsinformationen:

Any ACU 1200 1-503-621-3746 se:--se: link ord: Giznoid in:--in: uucp

Omen Technology bietet ein gedrucktes Handbuch zum RZSZ-Paket an, das Sie besorgen können, falls die Manual-Pages nicht ausreichen. Sie können das Buch unter der normalen Telefonnummer von Omen Technology bestellen: +1-503-621-3406. Bitte wählen Sie diese Nummer nicht per Modem an!

Dateien senden und empfangen

Die übliche Methode, sz zu benutzen, ist das Herstellen einer Verbindung zum Remote-System mit anschließendem Einloggen. Danach rufen Sie sz mit den passenden Flags auf, und Zmodem wird automatisch die angeforderten Dateien auf Ihr System übertragen -- die Dateinamen bleiben erhalten. (Die Zmodem-Tools sind beim Umgang mit Dateinamen nicht sehr clever; falls Sie also Dateien auf ein DOS-System übertragen, müssen Sie aufpassen, wenn die Dateinamen nicht in das 8.3-Schema von DOS passen. Wenn Sie eine Datei namens filename.extension übertragen, wird sie als filename.ext auf Ihrem DOS-Rechner eintreffen; das sollte keine Probleme bereiten. Wenn Sie allerdings versuchen, die Datei filename.more.extension zu übertragen, werden die meisten Zmodem-Utilities versagen; wahrscheinlich erhalten Sie eine irreführende Nachricht mit dem Inhalt, daß die Übertragung beendet wurde.)

Einer der verwirrendsten Punkte bei Zmodem-Übertragungen ist erreicht, wenn Sie entscheiden müssen, mit welchem Befehl Sie die Übertragung starten sollen. Sie müssen berücksichtigen, auf welchem System Sie den Befehl eingeben, und auf welchem System die zu übertragenden Dateien stehen. Eine überschaubare Methode für Zmodem-Übertragungen ist es, die Übertragung immer auf dem fremden Rechner zu starten -- egal, ob Sie einen Upload planen (Dateien an den fremden Rechner senden) oder einen Download (Dateien vom fremden Rechner empfangen). Ein Beispiel: Nehmen wir an, daß Sie in den fremden Rechner eingeloggt sind (mit C-Kermit, ProComm usw.), und daß Sie vom fremden Rechner einige Textdateien auf Ihr eigenes System übertragen möchten.

Geben Sie dazu etwa folgendes ein:

$ sz -a *.txt

sz stellt die Dateien in eine Warteschlange und schickt sie dann nacheinander an das lokale System. Die Option -a steht für »ASCII« und stellt sicher, daß die Codes für Wagenrücklauf und Zeilenvorschub so behandelt werden, wie es für das empfangende System korrekt ist.

Wenn Sie andererseits einige Dateien an den fremden Rechner senden (d.h., auf dem fremden Rechner empfangen) möchten, dann geben Sie einfach ein:

$ rz

Das Remote-System schickt dann etwa folgenden Prompt:

rz ready to begin transfer, type "sz file ..." to your modem program
**B0100000023be50

rz wartet geduldig, bis Sie auf das lokale System wechseln und dort einen Zmodem-Sendebefehl eingeben; Sie können dazu sz selbst oder Ihre gewohnte Software benutzen. Wenn Sie beispielsweise ProComm benutzt haben, um den fremden Rechner anzurufen, müssen Sie Page Up (Bild nach oben) drücken und dann aus dem Pop-up-Menü den Punkt Z)modem wählen; geben Sie anschließend die Namen der zu übertragenden Dateien in die ProComm-Eingabezeile ein.

Wenn Sie Dateien mit dem Zmodem-Protokoll von einem Macintosh-System auf ein UNIX- oder Linux-System übertragen wollen, müssen Sie daran denken, daß UNIX/Linux keine Dateinamen akeptieren, die Leerstellen enthalten.

Der folgende Befehl prüft einige Textdateien und überträgt dann nur die .txt - und .doc -Dateien, die auf beiden System vorhanden und die außerdem auf dem sendenden System neuer sind. Gleichzeitig werden die NEWLINE-Codes von UNIX in die CARRIAGE-RETURN/LINEFEED-Kombination von DOS umgewandelt.

$ sz -YAn *.txt *.doc

Sie können die Ausgabe eines Befehls auf dem fremden Rechner mit dem »Bindestrich«-Argument ( sz - ) in einer Pipe an sz schicken, und sz wird die Datei automatisch an Sie weitersenden. Der Dateiname für die Ausgabe wird gebildet, indem der Prozeß-ID des Prozesses, der die Standardeingabe an sz leitet, ein s vorangestellt wird; an das Ende des Dateinamens wird ein .sz angehängt. Wenn Sie beispielsweise die Manual-Page zum Befehl sz.1 des Remote-Systems (natürlich gibt es verschiedene Versionen der Software) ausdrucken lassen möchten, könnten Sie eingeben:

man sz | col -b | sz  --

Dabei entfernt die Option col -b alle Formatierungen, die der Befehl man in die formatierte Ausgabe eingefügt hat, um Bereiche des Textes auf dem Bildschirm hervorzuheben. Das Bindestrich-Argument weist sz an, die Datei an Ihr lokales System zu schicken. Wenn Sie die Verbindung unterbrechen und nachsehen, werden Sie die Datei wahrscheinlich unter einem Namen wie \tmp\s7750.sz vorfinden. (Das Verzeichnis \tmp ist unter allen Kommunikationsprogrammen das am häufigsten benutzte Verzeichnis für den Empfang von Dateien -- es sei denn, das aktuelle Verzeichnis wird benutzt.)

Zusammenfassung der Optionen zu rz und sz

Wegen des traurigen Zustandes, in dem sich die RZSZ-Dokumentation in den Standard-Linux-Distributionen befindet, und weil die RZSZ-Tools keine Online-Hilfe kennen, haben wir für Sie Zusammenfassungen der wichtigen Flags erstellt, die Sie für den Einsatz des Zmodem-Protokolls bei der Dateiübertragung brauchen. Trotzdem sollten Sie sich die Manual-Pages und eventuell weitere Dokumentation aus einem FTP-Archiv oder BBS besorgen; siehe auch den Abschnitt » RZSZ besorgen «.

Das Utility rz akzeptiert folgende Flags:

- +
Hänge eine Datei an eine vorhandene Datei gleichen Namens an, statt sie zu überschreiben. (Das kann eine unbrauchbare Datei zur Folge haben, wenn Sie nach einer unterbrochenen Zmodem-Übertragung die Datei noch einmal übertragen.)
- a
Empfange ASCII-Text. Wandle Dateien entsprechend den UNIX-Konventionen um, indem alle CARRIAGE-RETURNS sowie alle Zeichen entfernt werden, die mit einem CTRL-Z beginnen (dem Dateiende-Zeichen für das Betriebssystem CP/M).
- b
Empfange Binärdaten. Lege die Datei exakt so ab, wie sie empfangen wurde.
- D
Speichere die Ausgabe nicht ab. Schicke alle Daten nach /dev/null ; dies ist nützlich für Tests.
- e
Stelle allen Kontrollcodes einen Backslash voran. Zwingt das sendende Zmodem-Programm, alle vorgefundenen Kontrollcodes mit einem Backslash zu versehen, darunter auch XON, XOFF, DLE und CTRL-X.
- p
Schütze die Zieldateien. Unterbinde die Zmodem-Übertragung, wenn bereits eine Zieldatei mit demselben Namen existiert. (Beachten Sie, daß mit dieser Option eine unterbrochene Übertragung nicht mehr fortgesetzt werden kann.)
- q
Stille Übertragung. Unterdrücke Nachrichten an die Standardausgabe.
- t n
Ändere den Time-out-Wert auf n Zehntelsekunden.
- v
Ausführlich. Nicht wie das übliche »verbose« bei UNIX-Utilities. Dieses Flag bewirkt, daß eine Liste aller übertragenen Dateinamen an eine Logdatei angehängt wird; normalerweise ist das /tmp/rzlog . Wenn das Flag -v mehr als einmal angegeben wird, erscheinen weitere Informationen ebenfalls in der Logdatei.

Kommen wir zu sz . Die meisten sz -Optionen werden einfach an des empfangende Programm weitergereicht, das dann die entsprechende Funktion ausführt. Nicht alle Programme, die Zmodem-Daten empfangen, sind in der Lage, die angeforderten Optionen zu erfüllen. Wenn sz aufgerufen wird, während die Environment-Variable $SHELL mit einer eingeschränkten Shell belegt ist (beispielsweise rsh ), schränkt sz die Pfadnamen auf das aktuelle Verzeichnis und den Inhalt der Variablen $PUBDIR (falls diese belegt ist) sowie die Unterverzeichnisse derselben ein; dies wird oft mit UUCP angewendet.

Die gebräuchlichsten Optionen von sz haben folgende Bedeutung:

- +
Anhängen. Das empfangende Zmodem-Programm soll die übertragenen Daten an eine existierende Datei anhängen.
- a
Übertragung einer Textdatei. Das empfangende Zmodem-Programm soll UNIX-NEWLINES während der Übertragung in die DOS-Kombination CARRIAGE-RETURN/LINEFEED umsetzen. Einige Zmodem-Programme beherrschen diese Konvertierung nicht, aber das liegt nicht an sz . Falls Sie auf dieses Problem stoßen, benutzen Sie statt dessen die Option -A .
- A
Übertragung einer Textdatei. Konvertiere nach der Übertragung alle NEWLINE-Codes zu CARRIAGE-RETURN/LINEFEED, wenn die Datei von einem Zmodem-Programm empfangen wird.
- b
Binäre Übertragung. Die Datei soll ohne irgendeine Konvertierung übertragen werden, und auch das empfangende Zmodem-Programm soll keine Konvertierung vornehmen.
- d
Pfad teilen. Hiermit wird versucht, Unterschiede in der Handhabung von Datei- und Pfadnamen zwischen verschiedenen Systemen zu kompensieren. (Allerdings ist es sicherer, Dateien vor der Übertragung umzubenennen.) Alle Punkte (.) in einem Dateinamen werden zu Trennzeichen für Verzeichnisse/Unterverzeichnisse im empfangenen Pfadnamen konvertiert. (Unter UNIX werden daraus Schrägstriche (/), unter DOS Backslashes (\). Ein Beispiel: Eine Datei namens foobar.bazbuzzy wird als foobar/bazbuzzy übertragen.) Wenn der eigentliche Dateiname mehr als acht Zeichen hat, wird ein Punkt eingefügt, um Dateinamen nach dem DOS-Schema 8.3 zu erhalten. Ein Beispiel: Eine UNIX-Datei namens foo.barbazbuzzy würde als foo/barbazbuzzy übertragen, aber beim Empfang durch ein Zmodem-Programm unter DOS würde die Datei als foo\barbazbu.zzy abgelegt werden. (Wenn der Dateiname noch länger ist und das empfangende Programm kann diese Länge nicht verarbeiten, wird der Dateiname auf die erlaubte Länge zurechtgestutzt -- wie, das hängt von der »Intelligenz« des empfangenden Zmodem-Programms unter DOS ab.)
- e
Kontrollcodes mit einem Backslash versehen.
- f
Voller Pfadname. Verzeichnisnamen werden normalerweise weggelassen; hiermit bewirken Sie, daß der komplette Pfadname im übertragenen Dateinamen enthalten ist.
- L bytes
Setze die Paketlänge für Zmodem (in Bytes). Die Voreinstellung ist 128 Bytes unter 300 Baud, 256 Bytes oberhalb von 300 Baud und 1024 Bytes bei mehr als 2400 Baud. Eine größere Paketlänge ermöglicht einen etwas höheren Durchsatz, aber bei kleinen Paketen geschieht die Fehlerkorrektur schneller. Bei modernen Modems mit Hardware-Fehlerkorrektur lohnt es sich nicht, mit dieser Option zu experimentieren.
- l anzahl
Warte nach jeweils anzahl Zeichen darauf, daß der Empfänger den Empfang korrekter Daten bestätigt, wobei die Anzahl zwischen 32 und 1024 liegt. Damit vermeiden Sie einen Überlauf, wenn zwischen den beiden Systemen keine XOFF-Flußkontrolle stattfindet.
- n
Neuere Datei erhalten. Übertrage eine Datei, wenn es keine Zieldatei mit demselben Namen gibt; überschreibe die Zieldatei nur dann, wenn die Quelldatei neuer als die Zieldatei ist.
- N
Neuere/längere Datei erhalten. Übertrage eine Datei, wenn es keine Zieldatei mit demselben Namen gibt; überschreibe die Zieldatei nur dann, wenn die Quelldatei neuer oder länger als die Zieldatei ist.
- p
Zieldateien schützen. Übertrage eine Datei nicht, wenn die Zieldatei bereits existiert.
- q
Stille Übertragung. Es werden keine Meldungen an die Standardfehlerausgabe gegeben.
- r
Wiederaufnahme. Eine unterbrochene Dateiübertragung wird fortgesetzt. Wenn die Quelldatei länger ist als die Zieldatei, beginnt die Übertragung an der Stelle der Quelldatei, die der Länge der Zieldatei entspricht. (Einige Zmodem-Empfangsprogramme schalten automatisch in diesen Modus.)
- t anzahl
Time-out. Setzt den Time-out-Wert auf anzahl Zehntelsekunden.
- u
Unlink. Hebe nach erfolgreicher Übertragung die Dateilinks auf. Dies stellt eine bequeme Methode dar, Dateien in einem Verzeichnis zu »sammeln«, aus dem Sie übertragen werden können.
- w bytes
Fenstergröße. Beschränkt das Übertragungsfenster auf die genannte Anzahl von Bytes.
- v
Ausführlich. Fügt die Liste der übertragenen Dateinamen an die Logdatei /tmp/szlog an. Mehrere -v -Optionen bewirken, daß weitere Informationen über den Transfer an die Datei angehängt werden.
- y
Ja, überschreibe. Weist das empfangende Zmodem-Programm an, existierende Dateien mit demselben Namen zu überschreiben.
- Y
Ja, überschreibe, aber... Weist das empfangende Zmodem-Programm an, existierende Dateien mit demselben Namen zu überschreiben, aber keine Quelldateien zu übertragen, die unter demselben Pfadnamen auf dem Zielsystem existieren.
Einige Hinweise zur Benutzung von Zmodem

Sie können sz in einem speziellen Testmodus aufrufen:

$ sz -TT

Bei diesem Aufruf zeigt sz alle 256 8-Bit-Zeichencodes auf Ihrem Terminal an. Wenn Sie Probleme haben, Dateien intakt zu übertragen, können Sie mit diesem Befehl herausfinden, welche Zeichencodes von den Betriebssystemen ausgewertet werden.

Das Protokoll Zmodem unterstützt nur Datei- und Pfadnamen bis zu einer Länge von 127 Zeichen.

Der Anruf bei einem RZSZ-Utility durch die meisten Versionen von cu unter UNIX wird normalerweise nicht klappen, weil die meisten cu -Implementierungen mit den RZSZ-Tools um die Zeichen vom Modem konkurrieren. (C-Kermit kann neuerdings anscheinend benutzt werden, aber das haben wir noch nicht ausprobiert.)

Weitere interessante Pakete

Auf den meisten Linux-Systemen sind verschiedene andere Pakete installiert, die Sie vielleicht benutzen möchten. In den entsprechenden HOWTO- und sonstigen Dokumentationsdateien finden Sie Informationen über diese Pakete.

Das Hilfsprogramm term ist ein Client/Server-System, mit dessen Hilfe Sie Ihre serielle Leitung multiplexen können -- d.h., daß Sie über eine einzige Wählleitung mehrfach einloggen können. term gestattet außerdem, Netzclients (wie z.B. telnet , ftp und Mosaic) über die serielle Leitung zu betreiben. Sie können term sogar benutzen, um fremde X Window System-Clients auf Ihrem lokalen System darzustellen. Sie haben also beispielsweise die Möglichkeit, gleichzeitig eine X-Sitzung auf einem fremden Rechner zu starten, Dateien auf Ihr System herunterzuladen und E-Mail zu verschicken. Diese Fähigkeiten lassen sich am besten mit einem High-Speed-Modem nutzen; mit 28.800 bps (möglichst nach dem Standard V.34) läßt es sich bequem arbeiten.

term hat gewisse Ähnlichkeiten mit SLIP (siehe den Abschnitt » Die SLIP-Konfiguration « ), aber term kann auch von einem normalen Benutzer ausgeführt werden -- Sie brauchen also keine root -Berechtigung auf einem der Systeme oder ein spezielles Wählprogramm für SLIP.

Sie müssen in einen Shell-Account auf einem UNIX-System einwählen können, um term zu benutzen. Kompilieren Sie die term -Software sowohl auf dem UNIX-System als auch auf Ihrem Linux-Rechner. Wählen Sie dann in das andere System ein und rufen Sie dort term auf; es wird anschließend die Datenübertragung über Ihre Wählverbindung erledigen. Auf dem lokalen Rechner lassen Sie Ihr Kommunikationsprogramm (etwa Kermit) im Hintergrund laufen und rufen term auf, um die Wählverbindung von Ihrem Linux-System aus zu kontrollieren. Die beiden term -Programme kommunizieren dann über die Modemleitung miteinander.

Um auf der Leitung, die von term kontrolliert wird, in den fremden Rechner einzuloggen, können Sie trsh benutzen. Damit starten Sie über die Modemleitung eine Shell auf dem Remote-System. Sie können trsh mehrfach aufrufen (in verschiedenen Fenstern oder auf mehreren virtuellen Konsolen), und z.B. mehrere Login-Sitzungen auf dem fremden System starten.

Sie können verschiedene Netzclients zusammen mit term benutzen (darunter telnet , ftp , Mail-Programme usw.). Die Clients müssen für die Zusammenarbeit mit term kompiliert werden; viele solcher Clients stehen unter Linux zur Verfügung. Damit diese Clients funktionieren, muß das fremde System eine Verbindung zum Internet haben (oder zu einem anderen LAN) -- alle Netzanfragen werden über die Modemleitung an den fremden Rechner geschickt. Auf diese Weise schaffen Sie für Ihren Rechner quasi einen Anschluß an das Netz; Sie können direkt von Ihrem Linux-System aus per telnet oder ftp jedes andere System im Internet ansprechen. Auch der WWW-Browser Mosaic, den wir im Abschnitt » NCSA Mosaic benutzen « besprechen, arbeitet mit term zusammen.

Das HOWTO zum Linux-Term beschreibt dieses System im Detail; viele Linux-Distributionen enthalten term als zusätzliches Softwarepaket.

Zwei andere Pakete sollen noch erwähnt werden. pcomm ist ein Paket für die Datenkommunikation, das bewußt dem DOS-Paket ProComm nachempfunden wurde -- dem beliebtesten Kommunikationspaket für DOS. Seyon bietet eine Reihe von umfangreichen Tools für Terminalemulation und Datenübertragung.

Sollten wir Ihr Lieblingsprogramm für die Dateiübertragung oder die Datenkommunikation vergessen haben, möchten wir uns dafür entschuldigen&emash;es handelt es sich hierbei um einen Bereich, in dem Linux eine geradezu peinliche Vielfalt an Tools bietet. Andererseits ist es uns vielleicht gelungen, Sie von Ihren einfacheren Tools wegzubringen und Ihre Aufmerksamkeit auf die leistungsfähigeren Programme zu lenken.


Inhaltsverzeichnis Vorherige Abschnitt Nächste Abschnitt