next up previous contents index
Next: Zahlensysteme Up: Die ersten Schritte Previous: Eingabehilfen von der

Virtuelle Terminals und Hintergrundprozesse

Damit Sie die Multitaskingfähigkeit von Linux auch als einzelner Benutzer ausschöpfen können, bietet Linux verschiedene Möglichkeiten, mehrere Programme nebeneinander laufen zu lassen.

Die erste dieser Möglichkeiten wird durch die sogenannten virtuellen Terminals realisiert.  Obwohl Sie nur eine einzige Bildschirm- Tastaturkombination, die sogenannte Console, an Ihrem PC angeschlossen haben, können Sie mit Linux arbeiten als säßen Sie an mehreren Rechnern gleichzeitig. Die reale Console wird durch Linux zu 8 logischen Terminals, zwischen denen durch die Tastenkombination ALT-F1 bis ALT-F8 umgeschaltet werden kann. Auf jedem dieser virtuellen Terminals wird ein eigener Loginprompt ausgegeben.gif Damit erhalten Sie die Möglichkeit, sich gleichzeitig mehrfach einzuloggen, eventuell sogar unter verschiedenen Benutzernamen (wenn Ihnen mehrere Accounts auf dem Rechner gehören).

Auf jedem virtuellen Terminal können Programme gestartet werden, die auch weiterlaufen, wenn auf ein anderes Terminal umgeschaltet wird. Die Tastatureingabe wird immer nur an das aktuelle Terminal weitergegeben. Die Bildschirmausgabe der einzelnen Terminals wird erst sichtbar, wenn dorthin umgeschaltet wurde. Nur die Statusmeldungen und Fehlerausgaben des Kernels werden nicht auf ein virtuelles Terminal, sondern auf die Console direkt ausgegeben und erscheinen dadurch immer auf dem Bildschirm.

Die zweite Möglichkeit, die Multitaskingfähigkeit von Linux zu nutzen, besteht darin, Prozesse auf einem Terminal in der aktuellen Shell im Hintergrund zu starten.  Das geschieht, indem Sie am Ende des Kommandos ein Ampersand ` &' eingeben. So ein Kommando wird ganz normal gestartet, die Shell wartet aber nicht auf dessen Beendigung, sondern gibt sofort wieder den Prompt aus und wartet auf Ihre nächste Eingabe. Je nachdem, wie das Terminal eingestellt ist (-> stty), erscheinen die Meldungen des Hintergrundprogramms auf dem Bildschirm, oder das Hintergrundprogramm wird für die Ausgabe angehalten, bis es wieder in den Vordergrund geholt wird. Durch Umleitung des Standardausgabekanals in eine Datei kann die Ausgabe eines Hintergrundprogramms auch für spätere Bearbeitung gespeichert werden.

$ sort Adressen | uniq > Adressliste &
[1] 19365
$ _
bearbeitet beispielsweise die Adreßdatei wie im Beispiel oben, schreibt die sortierte Liste aber in eine Datei, anstatt sie auf dem Bildschirm auszugeben. Die Zahlen werden von der Shell ausgegeben und teilen Ihnen erstens die Jobnummer und zweitens die Prozeßnummer des gerade im Hintergrund gestarteten Prozesses mit.

Es gibt noch eine dritte Möglichkeit, Prozesse in den Hintergrund zu bringen. Mit der Tastenkombination CONTROL-Z können Sie ein im Vordergrund laufendes Programm anhalten. Die Shell zeigt wie oben die Job- und die Prozeßnummer an und gibt schließlich wieder eine Eingabeaufforderung aus. Mit den sogenannten Jobcontrol Funktionen der Shell können Sie ein angehaltenes Kommando im Hintergrund oder im Vordergrund weiterlaufen lassen.

Wenn beispielsweise die laufende sort Pipeline mit CONTROL-Z angehalten wird, kann sie mit dem bg-Kommando im Hintergrund (background) fortgesetzt werden...

$ sort Adressen  | uniq >Adressliste

[1]+  Stopped                 sort Adressen | uniq >Adressliste
$ bg %1
[1]+ sort Adressen | uniq >Adressliste  &
$ _

das fg-Kommando setzt den gleichen Job im Vordergrund fort (foreground). Eine genaue Beschreibung dieser Funktionen ist hier zu finden.

$ fg %1
sort Adressen | uniq >Adressliste
$ _



next up previous contents index
Next: Zahlensysteme Up: Die ersten Schritte Previous: Eingabehilfen von der



Linux Anwenderhandbuch -- Copyright 1993, 1994, 1995 S. Hetze, D. Hohndel, O. Kirch, M. Müller