Watch: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''watch''' - ein Programm periodisch ausführen, die Ausgabe im Vollbildmodus anzeigen | |||
== Beschreibung == | |||
watch führt den Befehl wiederholt aus, wobei dessen Ausgabe und Fehler angezeigt werden (der erste Bildschirminhalt) | |||
* Dies ermöglicht Ihnen die Überwachung der Änderungen der Programmausgaben über längere Zeit | |||
* Standardmäßig wird der Befehl alle zwei Sekunden ausgeführt und watch läuft, bis es unterbrochen wird | |||
== Installation == | == Installation == | ||
''watch'' ist teil des Pakets [[procps]] | |||
== Aufruf == | == Aufruf == | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line> | ||
watch [Optionen] Befehl | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Optionen === | === Optionen === | ||
{| class="wikitable sortable options gnu" | |||
|- | |||
! Unix !! GNU !! Parameter || Beschreibung | |||
|- | |||
| -b || --beep || || lässt die Systemglocke ertönen, falls ein Befehl sich mit einem von Null verschiedenen Rückgabewert beendet | |||
|- | |||
| -c || --color || || interpretiert ANSI-Farb- und -Stilsequenzen | |||
|- | |||
| -C || --no-color || || interpretiert keine ANSI-Farb- und -Stilsequenzen | |||
|- | |||
| -d || --differences= || [permanent] || hebt die Unterschiede zwischen aufeinander folgenden Aktualisierungen hervor | |||
* Falls das optionale Argument permanent angegeben ist, dann zeigt watch alles, was sich seit dem ersten Durchlauf mindestens einmal geändert hat | |||
|- | |||
| -e || --errexit || || friert die Aktualisierungen bei Fehlern in der Befehlsausführung ein und bricht nach einem Tastendruck ab | |||
|- | |||
| -g || --chgexit || || beendet, wenn sich die Ausgabe des Befehls ändert | |||
|- | |||
| -n || --interval || || Sekunden gibt das Aktualisierungsintervall an | |||
* Der Befehl erlaubt kein Intervall kleiner als 0,1 Sekunden; kleinere Werte werden auf diesen Wert geändert | |||
* In einigen Locales funktionieren sowohl »,« als auch ».« | |||
* Mit der Umgebungsvariable WATCH_INTERVAL können Sie ein Nicht-Standard-Intervall dauerhaft setzen (den gleichen Regeln und der gleichen Formatierung folgend) | |||
|- | |||
| -p || --precise || || lässt watch versuchen, diesen Befehl im angegebenen --interval in Sekunden auszuführen | |||
* Versuchen Sie es mit ntptime (falls verfügbar) und beachten Sie, wie die Sekundenbruchteile (nahezu) gleich bleiben, während sie im normalen Modus fortwährend größer werden | |||
|- | |||
| -q || --equexit || <Durchläufe> || beendet, wenn sich die Ausgabe des Befehls über die angegebene Anzahl durchläufe nicht ändert | |||
|- | |||
| -r || --no-rerun || || führt das Programm bei Änderungen der Terminalgröße nicht erneut aus; die Ausgabe des Programms erscheint wieder zum nächsten regulären Ausführungszeitpunkt | |||
|- | |||
| -t || --no-title || || deaktiviert die Anzeige der Kopfzeile, in der Intervall, Befehl und die aktuelle Zeit oben in der Anzeige sowie eine nachfolgende Leerzeile dargestellt werden | |||
|- | |||
| -w || --no-wrap || || deaktiviert den Zeilenumbruch | |||
* Lange Zeilen werden gekürzt, anstatt sie in die nächste Zeile umzubrechen | |||
|- | |||
| -x || --exec || || übergibt den Befehl an exec(2) anstelle von sh -c, was das Setzen von Anführungszeichen unnötig macht, um den gewünschten Effekt zu erzielen | |||
|- | |||
| -h || --help || || zeigt einen Hilfetext an und beendet das Programm | |||
|- | |||
| -v || --version || || zeigt Versionsinformationen an und beendet das Programm | |||
|} | |||
; ANMERKUNGEN | |||
Die Optionen werden gemäß POSIX verarbeitet (das heißt, die Optionsverarbeitung stoppt nach dem ersten Argument, das keine Option ist) | |||
* Das bedeutet, dass Schalter nach dem Befehl nicht von watch selbst interpretiert werden | |||
=== Parameter === | === Parameter === | ||
=== Umgebungsvariablen === | === Umgebungsvariablen === | ||
Das Verhalten von watch wird durch die folgenden Umgebungsvariablen beeinflusst | |||
; WATCH_INTERVAL | |||
Aktualisierungsintervall, welches den gleichen Regeln wie die Befehlszeilenoption --interval folgt | |||
=== Exit-Status === | === Exit-Status === | ||
{| class="wikitable options col1center" | |||
|- | |||
! Wert !! Beschreibung | |||
|- | |||
| 0 || Erfolg | |||
|- | |||
| 1 || Verschiedene Fehlschläge | |||
|- | |||
| 2 || Forken des zu überwachenden Prozesses ist fehlgeschlagen | |||
|- | |||
| 3 || Ersetzen der Standardausgabe des Kindprozesses von der Schreibseite der Pipe aus ist fehlgeschlagen | |||
|- | |||
| 4 || Befehlsausführung ist fehlgeschlagen | |||
|- | |||
| 5 || Schließen der Schreib-Pipe des Kindprozesses ist fehlgeschlagen | |||
|- | |||
| 7 || Erzeugung der IPC-Pipe ist fehlgeschlagen | |||
|- | |||
| 8 || Das Ermitteln des Rückgabewertes des Kindprozesses mit waitpid(2) ist fehlgeschlagen oder der Befehl brach aufgrund eines Fehlers ab other Die Überwachung gibt den Exit-Status des Befehls als Exit-Status des Kindprozesses weiter | |||
|} | |||
== Anwendung == | == Anwendung == | ||
Nach neuen Mails schauen | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
watch -n 60 from | |||
</syntaxhighlight> | |||
Den Inhalt eines Verzeichnisses auf Änderungen überwachen | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
watch -d ls -l | |||
</syntaxhighlight> | |||
Nur nach den Dateien des Benutzers »joe« schauen | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
watch -d 'ls -l | fgrep joe' | |||
</syntaxhighlight> | |||
Die Effekte von Anführungszeichen sehen | |||
<syntaxhighlight lang="bash" highlight="1,2,3" line> | |||
watch echo $$ | |||
watch echo '$$' | |||
watch echo "'"'$$'"'" | |||
</syntaxhighlight> | |||
Um den Effekt der genauen Zeithaltung zu beobachten, versuchen Sie, -p zu Folgendem hinzuzufügen | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
watch -n 10 sleep 1 | |||
</syntaxhighlight> | |||
Beobachten, wenn Ihr Administrator den neuesten Kernel installiert | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
watch uname -r | |||
</syntaxhighlight> | |||
Beachten Sie, dass nicht garantiert werden kann, dass -p nach einem Neustart noch funktioniert, insbesondere im Hinblick auf ntpdate (falls verfügbar) | |||
oder andere die Zeit beeinflussende Startmechanismen | |||
=== Problembehebung === | === Problembehebung === | ||
; Größenänderungen des Terminals | |||
Bei Größenänderungen des Terminals wird der Bildschirm nicht korrekt neu gezeichnet, bis die nächste geplante Aktualisierung erfolgt | |||
* Jegliche Hervorhebungen durch --differences gehen durch diese Aktualisierung ebenfalls verloren | |||
* Wenn Sie die Option --no-rerun verwenden, erfolgt keine Ausgabe | |||
; Nicht darstellbare Zeichen | |||
Nicht darstellbare Zeichen werden aus der Programmausgabe entfernt | |||
* Verwenden Sie cat -v als Teil der Befehls-Pipeline, wenn Sie diese sehen wollen | |||
Kombinierende Zeichen, die mit einem Zeichen in der letzten Spalte des Bildschirms angezeigt werden sollen, könnten eine Spalte vorher erscheinen oder überhaupt nicht dargestellt werden | |||
Kombinierende Zeichen werden im Modus --differences nie als Unterschiede gewertet | |||
* Es wird nur das Basiszeichen ausgewertet | |||
; Leere Zeilen | |||
Leere Zeilen direkt nach einer Zeile, die in der letzten Spalte endet, werden nicht angezeigt | |||
; Verzerrungskompensierung | |||
Der Modus --precise verfügt noch nicht über eine fortgeschrittene Technologie zur zeitlichen Verzerrungskompensierung eines Befehls, dessen Ausführung mehr als die als --interval angegebenen Sekunden benötigt | |||
* watch kann auch in einen Zustand gelangen, wo es so viele Befehlsausführungen auslöst, wie es kann, um frühere Ausführungen aufzuholen, die länger als das --interval benötigen (zum Beispiel wenn netstat(8) eine unglaublich lange Zeit bei einem DNS-Suchvorgang braucht) | |||
== Konfiguration == | == Konfiguration == | ||
=== Dateien === | === Dateien === | ||
Zeile 24: | Zeile 145: | ||
== Anhang == | == Anhang == | ||
=== Siehe auch === | === Siehe auch === | ||
* [[procps]] | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | {{Special:PrefixIndex/{{BASEPAGENAME}}}} | ||
==== Dokumentation ==== | ==== Dokumentation ==== | ||
Zeile 32: | Zeile 154: | ||
===== Projekt ===== | ===== Projekt ===== | ||
===== Weblinks ===== | ===== Weblinks ===== | ||
{{SORTIERUNG:watch}} | |||
{{DISPLAYTITLE:watch}} | |||
[[Kategorie:Procps]] | |||
[[Kategorie:Linux/Befehl]] | [[Kategorie:Linux/Befehl]] | ||
[[Kategorie:Linux/Prozesse]] | |||
</noinclude> |
Aktuelle Version vom 13. Dezember 2024, 22:51 Uhr
watch - ein Programm periodisch ausführen, die Ausgabe im Vollbildmodus anzeigen
Beschreibung
watch führt den Befehl wiederholt aus, wobei dessen Ausgabe und Fehler angezeigt werden (der erste Bildschirminhalt)
- Dies ermöglicht Ihnen die Überwachung der Änderungen der Programmausgaben über längere Zeit
- Standardmäßig wird der Befehl alle zwei Sekunden ausgeführt und watch läuft, bis es unterbrochen wird
Installation
watch ist teil des Pakets procps
Aufruf
watch [Optionen] Befehl
Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
-b | --beep | lässt die Systemglocke ertönen, falls ein Befehl sich mit einem von Null verschiedenen Rückgabewert beendet | |
-c | --color | interpretiert ANSI-Farb- und -Stilsequenzen | |
-C | --no-color | interpretiert keine ANSI-Farb- und -Stilsequenzen | |
-d | --differences= | [permanent] | hebt die Unterschiede zwischen aufeinander folgenden Aktualisierungen hervor
|
-e | --errexit | friert die Aktualisierungen bei Fehlern in der Befehlsausführung ein und bricht nach einem Tastendruck ab | |
-g | --chgexit | beendet, wenn sich die Ausgabe des Befehls ändert | |
-n | --interval | Sekunden gibt das Aktualisierungsintervall an
| |
-p | --precise | lässt watch versuchen, diesen Befehl im angegebenen --interval in Sekunden auszuführen
| |
-q | --equexit | <Durchläufe> | beendet, wenn sich die Ausgabe des Befehls über die angegebene Anzahl durchläufe nicht ändert |
-r | --no-rerun | führt das Programm bei Änderungen der Terminalgröße nicht erneut aus; die Ausgabe des Programms erscheint wieder zum nächsten regulären Ausführungszeitpunkt | |
-t | --no-title | deaktiviert die Anzeige der Kopfzeile, in der Intervall, Befehl und die aktuelle Zeit oben in der Anzeige sowie eine nachfolgende Leerzeile dargestellt werden | |
-w | --no-wrap | deaktiviert den Zeilenumbruch
| |
-x | --exec | übergibt den Befehl an exec(2) anstelle von sh -c, was das Setzen von Anführungszeichen unnötig macht, um den gewünschten Effekt zu erzielen | |
-h | --help | zeigt einen Hilfetext an und beendet das Programm | |
-v | --version | zeigt Versionsinformationen an und beendet das Programm |
- ANMERKUNGEN
Die Optionen werden gemäß POSIX verarbeitet (das heißt, die Optionsverarbeitung stoppt nach dem ersten Argument, das keine Option ist)
- Das bedeutet, dass Schalter nach dem Befehl nicht von watch selbst interpretiert werden
Parameter
Umgebungsvariablen
Das Verhalten von watch wird durch die folgenden Umgebungsvariablen beeinflusst
- WATCH_INTERVAL
Aktualisierungsintervall, welches den gleichen Regeln wie die Befehlszeilenoption --interval folgt
Exit-Status
Wert | Beschreibung |
---|---|
0 | Erfolg |
1 | Verschiedene Fehlschläge |
2 | Forken des zu überwachenden Prozesses ist fehlgeschlagen |
3 | Ersetzen der Standardausgabe des Kindprozesses von der Schreibseite der Pipe aus ist fehlgeschlagen |
4 | Befehlsausführung ist fehlgeschlagen |
5 | Schließen der Schreib-Pipe des Kindprozesses ist fehlgeschlagen |
7 | Erzeugung der IPC-Pipe ist fehlgeschlagen |
8 | Das Ermitteln des Rückgabewertes des Kindprozesses mit waitpid(2) ist fehlgeschlagen oder der Befehl brach aufgrund eines Fehlers ab other Die Überwachung gibt den Exit-Status des Befehls als Exit-Status des Kindprozesses weiter |
Anwendung
Nach neuen Mails schauen
watch -n 60 from
Den Inhalt eines Verzeichnisses auf Änderungen überwachen
watch -d ls -l
Nur nach den Dateien des Benutzers »joe« schauen
watch -d 'ls -l | fgrep joe'
Die Effekte von Anführungszeichen sehen
watch echo $$
watch echo '$$'
watch echo "'"'$$'"'"
Um den Effekt der genauen Zeithaltung zu beobachten, versuchen Sie, -p zu Folgendem hinzuzufügen
watch -n 10 sleep 1
Beobachten, wenn Ihr Administrator den neuesten Kernel installiert
watch uname -r
Beachten Sie, dass nicht garantiert werden kann, dass -p nach einem Neustart noch funktioniert, insbesondere im Hinblick auf ntpdate (falls verfügbar) oder andere die Zeit beeinflussende Startmechanismen
Problembehebung
- Größenänderungen des Terminals
Bei Größenänderungen des Terminals wird der Bildschirm nicht korrekt neu gezeichnet, bis die nächste geplante Aktualisierung erfolgt
- Jegliche Hervorhebungen durch --differences gehen durch diese Aktualisierung ebenfalls verloren
- Wenn Sie die Option --no-rerun verwenden, erfolgt keine Ausgabe
- Nicht darstellbare Zeichen
Nicht darstellbare Zeichen werden aus der Programmausgabe entfernt
- Verwenden Sie cat -v als Teil der Befehls-Pipeline, wenn Sie diese sehen wollen
Kombinierende Zeichen, die mit einem Zeichen in der letzten Spalte des Bildschirms angezeigt werden sollen, könnten eine Spalte vorher erscheinen oder überhaupt nicht dargestellt werden
Kombinierende Zeichen werden im Modus --differences nie als Unterschiede gewertet
- Es wird nur das Basiszeichen ausgewertet
- Leere Zeilen
Leere Zeilen direkt nach einer Zeile, die in der letzten Spalte endet, werden nicht angezeigt
- Verzerrungskompensierung
Der Modus --precise verfügt noch nicht über eine fortgeschrittene Technologie zur zeitlichen Verzerrungskompensierung eines Befehls, dessen Ausführung mehr als die als --interval angegebenen Sekunden benötigt
- watch kann auch in einen Zustand gelangen, wo es so viele Befehlsausführungen auslöst, wie es kann, um frühere Ausführungen aufzuholen, die länger als das --interval benötigen (zum Beispiel wenn netstat(8) eine unglaublich lange Zeit bei einem DNS-Suchvorgang braucht)