Watch (Unix)
# Watch (Unix)

watch ist ein Kommandozeilenprogramm und gehört zu den Linux-Packages procps und procps-ng. Es startet ein anderes Unix-Kommando oder eine Kommandofolge in regelmäßigen kurzen Abständen und übergibt das Ergebnis an die Standardausgabe, zeigt es also im Normalfall im Terminal an, so dass man Veränderungen beobachten kann.

Definiert ist watch als C-Programm mit einem ca. 700 Zeilen umfassenden Quelltext.

## Arbeitsweise

Standardmäßig startet watch das angegebene Kommando oder die angegebene Kommandofolge alle 2 Sekunden. Während watch arbeitet, nutzt es das ganze Terminal für seine Anzeige, das heißt der Terminalinhalt wird scheinbar gelöscht. Beendet wird watch in der Regel durch die Tastenkombination [Strg]+[C], danach zeigt das Terminal seinen vormaligen Inhalt wieder an.

Möchte man einen anderen Wiederholungsrhythmus, so kann man dies mit dem Aufrufparameter -n oder --interval und einer ihm unmittelbar folgenden Angabe in Sekunden festlegen. Der kürzeste mögliche Wiederholungsintervall ist eine Zehntelsekunde. Dabei ist zu beachten, dass bei Sekundenbruchteilen die Schreibweise von der Lokalisierung des Systems abhängt, das heißt, in einer englisch/amerikanisch eingestellten Shell schreibt man beispielsweise watch -n 0.4 …, in einer Shell mit deutscher Lokalisierung hingegen watch -n 0,4 … oder auch kürzer watch -n,4 ….

watch ruft zur Ausführung der Kommandos, die ihm übergeben wurden, /bin/sh oder /bin/dash auf, deshalb kennt watch die Aliase nicht, die in der Sitzung der Shell, in der Regel /bin/bash, gültig sind, von der aus watch gestartet wurde. Um die Wirkung eines Aliases für watch verfügbar zu machen, muss man das, wofür der Alias steht, in eine gesonderte Shellskript-Datei schreiben, die genauso heißt wie der Alias. Dieses Shellskript muss dann in einem Verzeichnis gespeichert werden, das im Suchpfad liegt, beispielsweise in /usr/local/bin.

## Bedienung

### Aufrufargumente

Die Unix-Parameter und GNU-Optionen in der folgenden Tabelle haben dieselbe Funktion, es bleibt einem selbst überlassen, ob man die kurze oder lange Form benutzen möchte.

Aufrufargumente des Programms watch (Auswahl) :

| Unix-Parameter | GNU-Option | Wirkung |
| - | - | - |
| -d | --differences | Hebt Änderungen seit dem letzten Durchlauf hervor. |
| -h | --help | Zeigt die Kurzhilfe mit allen möglichen Aufrufparametern an. |
| -n Sek. | --interval | Legt die Wartezeit zwischen den Programmaufrufen in Sekunden fest. |
| -t | --no-title | Veranlasst watch keine Kopfzeile anzuzeigen |
| -v | --version | Zeigt die Version von watch an. |

### Anwendungsbeispiele

Das Kommando watch ist nützlich, um Veränderungen zu beobachten, zum Beispiel, wenn man wiederholt das Kommando ls -l aufruft, um die Veränderung der Größe einer Datei oder eines Verzeichnisses zu verfolgen, oder wenn watch, wie im folgenden Beispiel, wiederholt psaufruft, damit bestimmte Prozesse fortlaufend beobachtet werden können.

**Alle laufenden Instanzen eines Programms anzeigen**

Dieses Kommando fordert alle zwei Sekunden eine Liste der Prozesse an, behält daraus aber nur jene Zeilen, in denen ein mit „apache“ beginnendes Wort oder eine mit dem Wort „UID“ beginnende Zeile vorkommt, entfernt danach alle Zeilen, in denen das Wort „grep“ oder „watch“ vorkommt, und zeigt schließlich die so ausgewählten übrigen Zeilen am Bildschirm an.

Die Ausgabe kann so aussehen:

