Lange her und schon fast vergessen sind die Hilfsmittel, mit denen die ersten E-Mails verschickt wurden. Bei der damaligen Technik musste noch viel “zu Fuß” gemacht werden. Heute haben wir es – Linux sei Dank – viel einfacher. Doch ein Blick zurück lehrt uns, sich an die eine oder andere Schraube zu erinnern, an der damals noch von Hand gedreht wurde…
Schon fast etwas nostalgisch blicke ich auf meine erste Internet-Erfahrung zurück: Das war an einem Text-Terminal (an Grafik war gar nicht zu denken) an einer HP-UX-Maschine, und eine E-Mail verschickte man damals nur mit:
mail adressat@maschine < nachrichten-datei
Dabei wurde nachrichten-datei natürlich vorher mit dem vi-Editor erstellt – nur die Profis arbeiteten damals mit emacs – durften sie aber nicht immer, denn emacs verballerte etwa ein Zehntel des Hauptspeichers unseres Zentralrechners, und nicht selten geriet man aneinander, weil jemand mit seinem emacs 2 MB Hauptspeicher wegfraß. Ich war jedenfalls stolz wie Oscar, als ich die ersten Mails mit einem alten Schulfreund in Amerika wechselte. In dieser frühen Zeit war das mit das schnellste Mittel mitzuteilen, wie die Spiele in der Bundesliga ausgegangen waren. Auch eine der schönen Sachen war die Möglichkeit, mit talk persönliche Kontakte in die ganze Welt aufrecht zu erhalten. Ich habe eine Bekannte in Ecuador, und wenn Ecuador mal gerade nicht wieder im Krieg mit Peru lag [1], konnte ich mich mit dem talk-Kommando sehr gut mit ihr unterhalten. Angesichts der heutigen Möglichkeiten mit Chaträumen, IRC [3] etc. schon fast lächerlich – aber so war es nun einmal. So sparte man sich die damals noch ungeheuerlichen Telefonkosten für Überseegespräche. Etwas nervig waren nur die unterschiedlichen Realitäten der verschiedenen Zeitzonen mit einem Unterschied von unzähligen Stunden: Da war der andere noch nicht ganz aus den Federn, während ich schon längst an Feierabend dachte… Das ist wie Vergangenheit und Zukunft gleichzeitig – nur anstrengender.
Zeilenumbrüche
Ebenso gab es damals auch schon die unterschiedlichsten Maschinen, die alle die unterschiedlichsten Standards verwendeten. So hatte ich oft Mails, in denen jegliche Zeilenumbrüche fehlten. Das konnte beim Lesen schon sehr nervig sein, denn so ein Textbildschirm kippte nach 80 Zeichen einfach in die nächste Zeile – sehr zur Freude der Wörter, die mittendrin zerschnitten wurden und etliche Zentimeter weiter links weitergingen – oder (je nach Einstellung) nach dem Ende der Zeile wurde der Rest erst gar nicht mehr angezeigt.
Die Rettung für solche Schlangen-eMails war damals das Kommandopaar expand und fold: Mit expand ließen sich die lästigen Tabulatoren in Leerzeichen umwandeln, und mit dem fold-Kommando bekam man schließlich auch die Zeilenumbrüche auf eine Art und Weise hin, bei der die Wörter keinen so großen Schaden nehmen. Doch schauen wir uns zuerst expand an:
Das Dumme an den Tabulatoren ist, dass so ziemlich jeder seine eigene Einstellung dafür bevorzugt. Manche haben einen Abstand von acht Zeichen, manche nur zwei; jeder macht das halt anders. Die Datei text_mit_tab.txt enthalte z. B. zwischen jedem Wort einen Tabulator.
Datei text_mit_tab.txt
In[Tab]diesem[Tab]Text[Tab]erscheinen[Tab]viele[Tab]Tabulatoren.
Um diese Tabulatoren auszumerzen, bedarf es nur eines einfachen
expand text_mit_tab.txt > text_ohne_tab.txt
Wenn man sich diese ansieht, scheint man nichts gewonnen zu haben:
text_mit_tab.txt nach Anwendung von
expand
In diesem Text erscheinen viele Tabulatoren.
Doch hier hilft ein weiteres Kommando: Der sed-Befehl kann nämlich auf einfache Art und Weise n-fache Leerzeichen in einzelne verwandeln. Der folgende Aufruf wird genutzt, um dreimal hintereinander (deshalb das Tripel desselben Teil s/ / /g getrennt durch Semikoli) ein doppeltes Leerzeichen in ein einfaches zu wandeln. So macht man aus acht vier, aus vier zwei und aus den restlichen zwei eines:
sed "s/ / /g;s/ / /g;s/ / /g" text_ohne_tab.txt > text.txt
Wem die Funktionsweise noch nicht ganz klar ist, der sollte erstmal
sed "s/ / /g" text_ohne_tab.txt > text.txt
probieren. Dann wird an der Ausgabe klar, dass ein einfaches Benutzen von s/ / /g nicht reicht, denn es wird nur die Anzahl von aufeinander folgenden Leerzeichen halbiert aber nicht auf ein einfaches Leerzeichen gebracht.
text.txt mit ein- und dreifachem
s/ / /g
im
sed
In diesem Text erscheinen viele Tabulatoren. In diesem Text erscheinen viele Tabulatoren.
Sauberes Abschneiden
Danach können wir unsere Datei nun mit sauberen Zeilenumbrüchen versehen. An unserer Beispieldatei seien das mal nur 20 Zeichen, damit man etwas sieht. Die einfache Anwendung des fold-Kommandos für 20 Zeichen sieht so aus:
fold -20 text.txt
Das sieht nun eher wie eine missglückte Quadratur des Kreises aber nicht wie eine gelungene Formatierung aus:
$ fold -20 text.txt In diesem Text ersch einen viele Tabulato ren.
Erst die Benutzung der Option -s sorgt dafür, dass das fold-Kommando nicht versucht ist, mitten im Wort umzubrechen, sondern statt beim 20. Zeichen beim letzten Leerzeichen davor.
$ fold -20 -s text.txt In diesem Text erscheinen viele Tabulatoren.
Und das Ganze gibt es dann auch noch als Einzeiler, wodurch die lästigen Zwischendateien entfallen:
$ expand tabtext.txt | sed "s/ / /g;s/ / /g;s/ / /g" | fold -s -20 In diesem Text erscheinen viele Tabulatoren.
McWrapper DeLuxe!
Heute wird wohl eher selten jemand noch seine Mails mit Kommandos umformatieren müssen; die obige Lehrstunde behalten wir für andere Anwendungen im Auge. Wer seine Mails sauber umgebrochen lesen möchte, wird diese Arbeit eher dem Mail-Programm überlassen. Ich benutze z. B. Netscape, und hier ist das alles sehr einfach gelöst. Die Menüauswahl view/wrap long lines (bzw. Ansicht/lange Zeilen umbrechen) schafft hier Abhilfe, und niemand muss mehr 15 Meter horizontal durch seine Mails scrollen.
Mehr Spaß dank Borg-Technologie
Schade ist eigentlich, dass die gute alte Mallorca-Ansichtskarte mit dem zunehmenden E-Mail-Verkehr gänzlich aus der Mode gekommen ist – eine unanständige Postkarte reißt heute keinen mehr richtig vom Hocker. Schließlich hatte man ganz andere Übertragungsmöglichkeiten, und wer sich nicht sicher war, ob sein System auch alles richtig gemacht hatte, der sandte seine Mail nicht nur ein zweites Mal. So manche Mail habe ich bestimmt sechsmal bekommen – na gut, die eine oder andere habe ich auch zigmal verschickt (flöt). Alles hat sich verbessert, auch das nebenbei; und waren damals die Brems- und Anfahrgeräusche der Platte die einzige Zusatzbeschallung zu unseren E-Mails, kommt heute aus unseren 100-Watt-Lautsprechern ohrenbetäubend laut Frank Sinatra oder sonst etwas. Für die Zukunft wird uns sicher noch die eine oder andere Überraschung erwarten, aber das beste Netzwerk der kommenden Zeiten wird mit Sicherheit auf Basis der Borg aus Star Trek auf die Beine gestellt werden: Es wird alles in den Schatten stellen, was es bis dahin gegeben hat. E-Mails sausen mit Überlichtgeschwindigkeit durch irgendwelche Subraumkanäle ohne Verbindungsprobleme, im Weg liegende Störsternenstaubwolken oder so etwas. Außerdem ist die Haltung eines Borg recht einfach, da diese im Großen und Ganzen – wenn auch nicht besonders klein – sehr pflegeleicht sind. Man stellt sie einfach bei Nichtgebrauch in den Besenschrank (Regeneration). Ein Problem werden wahrscheinlich die persönlich adressierten Mails werden, da die Borg standardmäßig im Broadcast-Modus laufen: Weiß es ein Borg, wissen es alle…
Zuletzt aber noch eine Anekdote, die man mir mitgeteilt hat, deren Richtigkeit ich aber nicht bestätigen kann, da der Original-Link nicht mehr existiert. So war angeblich(!) unter der Adresse http://www.bmwf.gv.at/1bm/email.htm (Stand 30.03.1998) des Bundesministeriums für Wissenschaft und Forschung zu lesen: “Bitte beachten Sie: Nicht alle Mitarbeiter sehen regelmäßig in Ihrer Mailbox nach.” (heute [2] aber nicht mehr zu finden).
Die benutzten Befehle
expand (ausbreiten)@KL:Syntax: “expand [-t <C>n<C>] [datei]”
expand liest die Eingabe aus der Datei datei und konvertiert Tabulatoren in Leerzeichen. Dabei geht expand von einer Tabulatorbreite von acht Zeichen aus und ersetzt entsprechend die fehlende Anzahl von Leerzeichen, um auf volle acht zu kommen. Dann schreibt expand das Ergebnis in die Standardausgabe. Ohne Angabe von datei liest expand aus der Standardeingabe. Die Option -t erlaubt, den Standardwert von 8 auf einen anderen Wert n zu setzen.
fold (falten)
Syntax: “fold [-s] [-w n] [datei]”
fold liest die Eingabe aus der Datei datei und zerteilt dabei jede Eingabezeile in kleine Zeilen, die nicht länger als n Zeichen sind. Wird die Option -w nicht angegeben, so geht fold von einer Textbreite von 80 Zeichen aus (damals wurden Textbildschirme verwendet, die genau 80 Zeichen darstellten). fold schreibt das Ergebnis in die Standardausgabe. Ohne Angabe von datei liest fold aus der Standardeingabe.
Die Option -s ist der eigentliche Clou dieses Kommandos: Mit Setzen dieser Option bricht er die Zeile nicht nach n Zeichen um, sondern beim letzten Leerzeichen davor. Wenn davor keines existiert (weil die aktuelle Zeile mit einem sehr langen Wort beginnt), bricht fold die Zeile normal um.
talk (unterhalten)
Syntax: “talk adresse”
talk ermöglicht eine Zwei-Wege-Kommunikation mit einem anderen Unix-/Linux-Benutzer. Normalerweise ist dabei adressat der login-Name des anderen (diesen bekommt man z. B. über Eingabe von who heraus). Wenn man das talk-Kommando angesetzt hat, erscheint beim Gesprächspartner auf dem Schirm eine Nachricht in der Art:
Message from name talk: connect requested by your_address talk: respond with: talk your_address
womit nach Eingabe von
talk your_address
die Verbindung zustandekommt. Nach Erstellung der Kommunikationsverbindung können beide simultan in ihre Tastatur hämmern. Die Eingaben erscheinen dann auf dem Schirm des anderen. Bei fernen Gesprächspartnern kann adressat auch schonmal die Gestalt volker@ganz-weit-weg-rechner haben, und bei mir hat es tatsächlich bis nach Ecuador sauber funktioniert. Die Verbindung beendet man mit [Strg-c].
LinuxJux
Infos
[1] http://www.paredes-steup.de/deutsch/konflikt.html
[2] http://www.bmbwk.gv.at/1bm
[3] Interessant zu diesem Thema ist der Bericht über X-Chat im LinuxUser 03/2001, http://www.linux-user.de/ausgabe/2001/03/026-xchat/xchat.html.





