Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Prozesse Prozesse Prioritäten: nice »

Hintergrundbearbeitung und Reihenfolge

Wenn man & an ein Kommando anhängt, wartet die Shell nicht auf auf das Ende des Programms, sondern lässt es im Hintergrund arbeiten. Dabei wird an der Konsole noch die Prozess-ID angezeigt, unter der der Prozess gestartet wurde. Im Beispiel unten wird das Programm xman im Hintergrund gestartet. In der eckigen Klammer wird angezeigt, dass es bereits das zweite Programm ist, das so gestartet wurde. Der neue Prozess erhält die Prozess-ID 3717. Wird das Hintergrundprogramm irgendwann beendet, erscheint auch darüber eine Meldung auf der Konsole. Wieder wird die Jobnummer angezeigt und mit »Done« (engl. getan) angezeigt, dass das Programm xman fertig ist.

gaston> xman &
[2] 3717
gaston>
...
gaston>
[2]+  Done                    xman
gaston>

Man kann den Prozess betrachten, indem man den Befehl jobs angibt. Leider wird dieser Befehl von der Bourne Shell nicht unterstützt. Aber der Befehl ps ohne Optionen zeigt die Liste der gestarteten Prozesse.

Wenn man mehrere Befehle hintereinander in einer Kommandozeile angeben will, verwendet man als Trenner das Semikolon. Die folgende Eingabe zeigt also erst die Dateien an und dann das Datum:

ls; date

Durch Anhängen eines & werden die beiden Prozesse nacheinander im Hintergrund ausgeführt. Das zweite Programm wartet also mit seinem Start, bis das erste Programm fertig ist. Sollen die Programme parallel laufen, schickt man beide einzeln in den Hintergrund:

gaston> ls &
gaston> date &

Beim Starten der Prozesse im Hintergrund kann man beobachten, dass beide Programme ihre Ausgabe direkt auf den Bildschirm schreiben, von dem sie gestartet wurden. Da man im Allgemeinen Prozesse im Hintergrund nicht am Bildschirm beobachten will, sollte man die Ausgabe in eine Datei umleiten.

Sollen zwei Programme nacheinander ausgeführt werden, tut man dies normalerweise, weil ein Programm auf den Ergebnissen eines anderen aufbaut. In solchen Fällen ist es aber sinnlos, das zweite Programm auszuführen, wenn bereits das erste scheiterte. Auch hierfür gibt es eine Lösung. Programme unter UNIX geben ihren Erfolgsstatus an die Shell in Form einer Fehlernummer zurück. Ist diese 0, ist alles in Ordnung. Durch ein doppeltes kaufmännisches Und, also &&, wird das zweite Programm nur gestartet, wenn das erste Programm 0 zurückgab:

programm1 && programm2

Auch das Gegenteil ist möglich: Durch die Verwendung zweier senkrechter Striche wird programm2 nur ausgeführt, wenn programm1 scheiterte:

programm1 || programm2

Durch Klammern eingeschlossene Kommandos werden in einer eigenen Subshell gestartet. Auf diese Weise lassen sich Kommandos bündeln. Da die Shell die Rückmeldung der zuletzt gestarteten Programme an den Aufrufer weiterleitet, kann man auch in den logischen Abfolgen klammern.

Tabelle zeigt, wie mehrere Programme gestartet werden können.

[Start mehrerer Programme]L|L Syntax & Ausführung
prog1 ; prog2 & Erst prog1, dann prog2 ausführen
prog1 && prog2 & prog2 nur bei Erfolg von prog1 ausführen
prog1 || prog2 & prog2 nur bei Misserfolg von prog1 ausführen



« Prozesse | Prozesse | Prioritäten: nice »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de