Unix und seine Tools - Teil 1

Die Zahl derjenigen, die das Unix-kompatible Betriebssystem Linux auf ihrem ATARI einsetzen, steigt. Gerade die ersten Gehversuche unter einem neuen Betriebssystem sind jedoch mit einer Reihe von Hürden verbunden. Es gilt nicht nur, das System sinnvoll zu konfigurieren, sondern sich auch mit einer Reihe neuer Programme vertraut zu machen, um die unter Unix kein Weg vorbei führt.

Bei Unix handelt es sich um einen Werkzeugkasten mit einer riesigen Auswahl an Geräten. Durch die Kombination geeigneter Werkzeuge lassen sich Aufgaben erledigen, für die auf anderen Betriebssystemen bereits eigene Anwendungen programmiert werden müßten.

Nicht von den grundlegenden Unix-Kommandos soll in dieser Artikelserie die Rede sein, sondern von Tools, die für Unix-kompatible Systeme frei verfügbar sind und zwar sowohl in Form von vorcompilierten Programmdateien als auch ihrer Quelltexte. Eine Reihe dieser Programme kann man übrigens auch unter TOS wiederfinden, insbesondere bei Systemen, auf denen MiNT installiert ist. Dies liegt daran, daß MiNT viele Unix-kompatible Aufrufe bereitstellt, so daß sich typische Unix-Software mit dem GNU-C- Compiler oft auch unter MiNT compilieren läßt. Sogar das X-Window-System wurde inzwischen auf MiNT portiert. Allerdings ist hier der Einsatzbereich zumindest auf einem ATARI ST mit nur 4 MByte Hauptspeicher recht eingeschränkt.

GNU-Software

Besonders häufig trifft man unter Unix auf Tools, die der sogenannten GPL (GNU Public License) unterliegen. Für Programme, die gemäß dieser Lizenz der Öffentlichkeit zugänglich gemacht werden, dürfen bei der Weitergabe keine Gebühren außer Selbstkosten verlangt werden. Außerdem müssen die Quelltexte fürjedermann verfügbar sein. Gleiches gilt für Modifikationen an diesen Programmen. Dem GNU-Projekt (GNU is Not Unix) liegt die Idee zugrunde, ein Betriebssystem inkl. Tools zu entwickeln, das den Anwender unabhängig von kommerziellerSoftware macht. Das eigentlich Betriebssystem läßt jedoch weiterhin auf sich warten, und es ist unklar, ob es jemals das l Licht der Welt erblicken wird. Für viele hat aber Linux bereits die Stelle des GNU-Betriebssystems eingenommen.

Inzwischen steht eine Unmenge an GNU-Software zur Verfügung und oft handelt es sich dabei um umfangreiche, professionelle Programmpakete. I Zu den bekanntesten GNU-Programmen zählen wohl der GNU-C-Compiler, I der GNU-Debugger und der PostScript-Interpreter Ghostscript. Diese Programme sind übrigens fester Bestandteil der ATARI-Linux-Distribution (ALD). l

Neben der Software, die im Rahmen l des GNU-Projekts bereitgestellt wird, findet man für Unix aber auch eine Fülle anderer nicht kommerzieller Programme. Wer einen Internet-Zugang besitzt, kommt besonders leicht an aktuelle Programmversionen. Auch auf CDs sind, naturgemäß mit einer gewissen Verzögerung, die bekanntesten Programmpakete zu finden.

Die Archivierung von Daten

Werfen wir nun einen ersten Blick auf die unter Unix frei verfügbare Software. Nicht nur unter TOS, sondern auch unter Linux immer wieder im Einsatz sind Programme, mit denen sich Daten packen und in komprimierter Form archivieren lassen. Was ZOO, ZIP oder LHARC für TOS sind, stellen die Programme compress und gzip in Verbindung mit tar für Unix dar. Zwar lassen sich unter Unix nahezu alle gängigen Packprogramme einsetzen, da diese in Form ihrer Quelltexte verfügbar sind, aber die Kombination tar/ gzip dominiert hier eindeutig.

Bei farhandelt es sich um ein Dienstprogramm, das schon lange ein fester Bestandteil von Unix-Systemen ist und ursprünglich dazu verwendet wurde, Backups auf Tapes anzulegen. Auch heute noch wird farzum Anlegen von Backups eingesetzt, aber die wohl häufigste Anwendung besteht in der Erzeugung komprimierter Archive in Form von Dateien. Dazu muß man wissen, daß tar selber nicht dazu in der Lage ist, Daten zu komprimieren, tar erzeugt lediglich aus beliebig vielen Einzeldateien eine Gesamtdatei, die dann in einem weiteren Schritt mit einem anderen Programm komprimiert wird. Soll beispielsweise ein Unterverzeichnis mit dem Namen src archiviert werden, kann das so aussehen:

tar cf src.tar src (erzeugt src.tar)
gzip src.tar (erzeugt src.tar.gz)

Zunächst wird das Verzeichnis mit tar zu einem unkomprimierten Archiv src.tar zusammengefaßt. Dabei bleiben alle Dateien innerhalb des Verzeichnisses unverändert. Die Option c weist taran, ein neues Archiv zu erzeugen, dem ffolgt der Dateiname dieses Archivs. Wird kein Dateiname angegeben, greift tar automatisch auf das Bandlaufwerk zu.

Hat tar seine Arbeit beendet, wird das erzeugte Archiv src.tar mit gzip komprimiert, wobei es automatisch durch die Datei src.tar.gz ersetzt wird. (Bei Dateisystemen, die keine langen Dateinamen zulassen, findet man statt der Extension .tar.gz häufig das Kürzel .tgz.) gzip ist zwar ein fester Bestandteil der Linux-Distributionen, gehört aber nicht zum Standardlieferumfang anderer Unix-Installationen. Wer ein Archiv erzeugen will, das mit Sicherheit unter jeder Unix-Umgebung ausgepackt werden kann, sollte daher für die Komprimierung auf compress ausweichen. Die Syntax bei der Verwendung von compress entspricht der von gzip. compress packt Daten allerdings deutlich schlechter als gzip, so daß es nur noch vergleichsweise selten Verwendung findet.

Wie schon das Einpacken erfolgt auch das Auspacken von Archiven in zwei Schritten. Zunächst wird dekomprimiert, danach stellt tar das Verzeichnis mit den Einzeldateien wieder her:

gunzip src.tar.gz (ersetzt src.tar.gz durch src.tar)
tar xf src.tar (erzeugt das Verzeichnis src)

Die Option xveranlaßt tardazu, Dateien aus einem Archiv zu extrahieren. Dabei werden alle Dateiattribute wiederhergestellt, also neben dem Datum auch die Zugriffsrechte und die User-IDs.

Bei gzip und gunzip handelt es sich übrigens um identische Dateien, die beim Aufruf anhand des verwendeten Dateinamens erkennen, welche Aktion gefordert ist. Schneller geht das Auspacken mit zcat, bei dem es sich wie schon bei gunzip um einen Alias (meist ein Hardlink) von gzip handelt:

zcat src.tar.gz l tar xf -

Dieses Beispiel demonstriert, wie Daten unter Unix über Pipes von einem Programm ohne den Umweg über eine Datei an das nächste weitergereicht werden können, zcat dekomprimiert die gepackten Daten und schickt das Ergebnis über die Pipe direkt an tar, so daß schließlich das Unterverzeichnis src wiederhergestellt wird, ohne daß hierzu der Schritt über die Datei src.tar notwendig wäre. Dafür, daß eine Pipe zwischen zcat und tar eingerichtet wird, sorgt das Pipe-Zeichen „l". Das Zeichen - als Name der Eingabedatei für tar signalisiert, daß tar die auszupackenden Daten direkt von einem anderen Programm, in diesem Fall zcat, ohne Umweg geliefert bekommt. (Erfahrene Unix-Anwender mögen über diese vereinfachte Darstellungsweise hinwegsehen.) Wer sich noch nicht mit Pipes und ihren Anwendungen beschäftigt hat, sollte dies unbedingt nachholen. Weitere Informationen zu gzip, tar und zcat enthalten selbstverständlich die manpages zu diesen Programmen, die sich auf jedem korrekt und vollständig installierten Unix-System über das Kommando man abrufen lassen. Wer das noch nicht versucht hat, beginnt am besten mit man man.

Auf kommerziellen Unix-Plattformen ist zcat in der Regel nicht auf gunzip, sondern auf uncompress abgestimmt, d.h., es lassen sich auf diesem Weg Archive auspacken, die mit compress erzeugt wurden. Sollte zcat also einen Fehler melden, ist zunächst zu prüfen, ob eventuell das „falsche" zcat aufgerufen wurde.

Von tar existiert übrigens auch eine GNU-Version (gtar), in der gzip bereits integriert ist. Auch hier geben die man-pages weiterführende Informationen.

Programme per email

tar und gzip finden nicht nur bei der Archivierung von Software Anwendung, sondern sind auch dann nützlich, wenn Programme per elektronischer Mail (email) verschickt werden sollen. Um das Datenvolumen einzuschränken und so die Übertragung schneller und kostengünstiger zu machen, wird man in der Regel die zu versendenden Daten zunächst komprimieren. Da man davon ausgehen muß, daß beim Versenden von email Übertragungswege in Anspruch genommen werden, die lediglich für 7 oder gar 6 Bit breite Daten geeignet sind, werden die Daten anschließend noch mit uuencode auf ein geeignetes Format gebracht, uuencode wandelt eine Binärdatei in eine Datei um, die nur noch ASCII-Zeichen mit 6 Bit Breite enthält. Dabei nimmt der Umfang der Daten um etwa 25% zu. Die mit uuencode erzeugte Datei läßt sich nun problemlos per email verschicken. Der Empfänger muß diese Datei lediglich mit uudecode wieder in eine Binärdatei umwandeln, bevor er sie weiterbearbeiten kann.

Unterm Strich läßt sich der komplette Inhalt des Verzeichnisses src unter Unix also mit der folgenden Kommandofolge als email verschicken:

tar cf src.tar src

gzip src.tar

uuencode src.tar.gz src.tar.gz >

src.tar.uue

mail erika@muster.mann.de < src.tar.uue

Der Empfänger decodiert die Daten, nachdem er die mail als Datei unter einem Namen wie mail.uue in seinem Verzeichnis gesichert hat, wie folgt:

uudecode mail.uue zcat src.tar.gz l tar xf -

Daß die mail eine Datei mit dem Namen src.tar.gzenthielt, kann man aus dem Text der mail ersehen oder aber daran, daß sich nach der Anwendung von uudecode eine neue Datei mit dem Namen src.tar.gz auf der Platte befindet.

Wer bereits Daten per email verschickt hat, beispielsweise innerhalb des Mausnetzes, wird die soeben beschriebenen Prozeduren bereits in ähnlicher Form unter TOS durchgeführt haben.

Ausblick

Wie bereits angedeutet, lassen sich die Ausgabedaten eines Unix-Kommandos über eine Pipe direkt an eine weitere Anwendung übergeben. Die Kombination von zcat und tar ist in diesem Zusammenhang nur eines von vielen Beispielen. In der nächsten Ausgabe der ST-Computer werde ich weitere Unix-Dienstprogramme vorstellen, die einen Nutzen aus diesem Mechanismus ziehen können. So lassen sich Textinformationen durch eine Kombination geeigneter Kommandos analysieren, sortieren und vieles mehr. Alle hierzu benötigten Programme sind, wie wir sehen werden, bereits im Standardumfang der ALD enthalten.

US


Links

Copyright-Bestimmungen: siehe Über diese Seite
Classic Computer Magazines
[ Join Now | Ring Hub | Random | << Prev | Next >> ]