4. Unix für Fortgeschrittene 4.1. Ein-/Ausgabe-Umleitung 4.2. Job Control C. Kommentarformular
Die Syntax ist denkbar einfach: direkt hinter den Programm-Aufruf wird einfach ein größer- oder kleiner-Zeichen gesetzt, und dahinter das Ziel der Umleitung.
> ziel
>> ziel
< Quelle
asterix% who > who.txt
asterix% cat brief >> post
asterix% mail dawin < brief
asterix% ls -l | more
asterix% zcat text.Z | more
asterix% zcat archiv.tar.Z | tar tf - | more
asterix% zcat archiv.tar.Z | tar xvf -
asterix% zcat archiv.tar.Z | tar tf - > inhalt.txt
Ein Programm einfrieren (suspend): die Tastenkombination
<control>+z
Mit <control>+z wird das aktive Programm gestoppt. Anschliessend
befindet man sich wieder in der Unix-Shell, aus der man das Programm
aufgerufen hat; hier können jetzt ganz normal Unix-Befehle eingegeben und
Programme gestartet werden.
Mit dem fg-Befehl kann das eingefrorene Programm wieder in den
Vordergrund geholt werden, wo es dann an der Stelle fortfährt, an der es
unterbrochen wurde.
Mit dem bg-Befehl kann das Programm aber auch in den Hintergrund geschickt
werden, wo es (soweit dies ohne weitere Tastatureingaben möglich ist)
weiterarbeitet.
Ein Programm im Hintergrund starten: das &-Suffix
Beim Start eines Programmes kann man am Ende der Zeile das "und"-Zeichen
(&) angeben. Das angegebene Programm wird dann automatisch im Hintergrund
ablaufen. Mit dem fg-Befehl kann es ggf. in den Vordergrund geholt werden.
asterix% compress unix.doc &
asterix% jobs
Ein eingefrorenes Programm in den Hintergrund schicken: der bg-Befehl
Mit bg (für background) wird das zuletzt eingefrorene Programm (falls
nicht anders angegeben) in den Hintergrund geschickt, um dort
weiterzuarbeiten.
bg [name | nummer]
fg [name | nummer]
ps [-Optionen]
asterix% ps
Einen Prozess abschießen: der kill-Befehl
Falls ein Programm aus irgendeinem Grund nicht beendet werden kann, oder
weiterläuft, obwohl der User sich ausgeloggt hat, kann es mit dem
kill-Befehl abgebrochen werden. Dazu muss man die PID des abzuschiessenden
Prozesses kennen (=> ps-Befehl).
Es ist nicht erforderlich, den kill-Befehl in der selben Session
abzuschicken, in der man das zu killende Programm gestartet hat - man kann
sich auch von einem anderen Terminal aus erneut einloggen und den Prozess von
dort terminieren.
Um allgemeiner Anarchie vorzubeugen, können mit dem kill-Befehl nur
solche Prozesse abgeschossen werden, die man selbst gestartet hat
(Ausnahme: der Super-User root kann alle Prozesse terminieren).
kill [-Optionen] <PID>
asterix% ps