Wie kann ich unter einer UNIX-Shell einen ähnlichen Effekt wie beim watch
Befehl erzielen , aber mit Paging, damit ich in der Ausgabe einen Bildlauf durchführen kann, wenn sie mehr als einen Bildschirm einnimmt?
Mit anderen Worten, ich möchte ein Programm, das dem entspricht, watch
was less
dem entspricht cat
.
Nehmen wir zum Beispiel an, ich wollte die Ausgabe von sehen qstat
, die ich verwenden könnte
watch qstat
um die ausgabe von qstat zu sehen, dies kann aber nur der erste screenful anzeigen.
Mit einer Paging-Version von könnte watch
ich mich in der Ausgabe bewegen, da sie von immer noch ständig aktualisiert wird watch
. Gibt es im Moment eine Möglichkeit, dies mit vorhandenen Dienstprogrammen zu tun?
less
wenn Sie nurcat
ein größeres Fenster verwenden können?Antworten:
Verwenden Sie screen, anstatt den Befehl 'watch' zu ändern!
Nehmen wir zum Beispiel an, Sie müssen 300 Zeilen Höhe und 100 Zeichen Breite sehen und sich darin bewegen können. Erzwingen Sie nach dem Start des Bildschirms die Größe folgendermaßen:
Starten Sie jetzt Ihren Überwachungsbefehl. Sie können dann verwenden
C-a <ESC>
, um im Display zu blättern.Leider wird die Anzeige im Kopiermodus nicht aktualisiert. Wenn Sie jedoch den angezeigten Fensterbereich anpassen möchten, können Sie die Befehle für Höhe und Breite am einfachsten erneut ausführen, da Ihr Terminal standardmäßig rechts unten im virtuellen Fenster angezeigt wird.
quelle
C-
akactrl-
Sie können dies versuchen:
während vmstat; schlafe 1; fertig | Weniger
Ersetzen Sie vmstat durch qstat und passen Sie den Ruhezustand an Ihre Bedürfnisse an
quelle
less
, was Sie tun müssen, ist, den Befehl in zu wiederholen. Das bedeutet, dass Sie weiter scrollen müssen, um die neueste Ausgabe zu sehen.Multitail: http://www.vanheusden.com/multitail/
Beispiel:
Blättern Sie zurück, indem Sie 'b' und Seite / Pfeil nach oben / unten drücken.
quelle
OK, ich hatte ein bisschen Zeit für eine
watchless
Veranstaltung. Es ist ein bisschen rau, und es scheint noch nicht ganz zu funktionieren, aber hier ist:Sie müssen den
R
Schlüssel in weniger manuell verwenden , damit die Anzeige aktualisiert wird.Es scheint zu funktionieren,
watchless date
aber nicht fürwatchless qstat
oderwatchless pstree
, die beide leer sind. Irgendwelche Ideen?quelle
mv
diese zweite Datei in die Datei zu schreiben, die vonless
asmv
is atomic gelesen wird. Andernfallsless
könnte man meinen, dass die Datei verschwunden ist, wenn gleichzeitig mit dem Schreiben der Datei eine Aktualisierung angefordert wird"$@" > $out
. Sie sollten auch einmal in die Ausgabedatei schreiben, bevor Sie die Schleife starten.Ich verstehe nicht, wie dies implementiert werden könnte, wenn sich der Zeileninhalt ändert, und
watch
würde alle 2 Sekunden auf die erste Zeile zurückgesetzt, selbst wenn Sie nach unten scrollen könnten.Einige Problemumgehungen sind:
watch 'qstat | tail -n40'
um die Ausgabe von qstat ab der 40. Zeile von unten anzuzeigenwatch 'qstat | grep jsmith'
Um die Ausgabe zu prüfen, befinden sich die Zeilen, die Sie interessieren, immer im ersten Bildschirm.Beachten Sie, dass Sie die Befehle in einfachen Anführungszeichen um die Pipe setzen müssen - andernfalls leiten Sie die Ausgabe von
watch
und nicht die Ausgabe vonqstat
.quelle
Um mit der Antwort von enkrs fortzufahren,
beobachte 'qstat | kopf -300 | Schwanz -15 '
bringt Ihnen beliebige Seiten in die Ausgabe von qstat.
quelle
Hier ist ein ziemlich grobes Skript, das für mehrere Befehle zu funktionieren scheint, die ich darauf angewendet habe
Als solches verwendet:
Da der Übergang zwischen den Aktualisierungen eher pedantisch ist, verläuft er nicht so reibungslos, wie ich es mir vorgestellt habe. Als einfaches Skript unterstützt es natürlich kein Highlight von diff (watch -d). Außerdem kann das Parsen von Eingabeargumenten verbessert werden.
quelle
Wie wäre es einfach: Schwanz -f
quelle
Ich implementiere ein einfaches Python-Skript namens "watchall", um diese Anfrage zu erfüllen.
Hol es dir : pip install watchall
Ersetzen Sie die Uhr durch eine andere und genießen Sie den scrollbaren Bildschirm. jetzt werden nur die Flags -n und -d unterstützt.
quelle
Du kannst es versuchen:
dann solltest du in deiner Datei die angehängte Ausgabe sehen (ich habe jetzt keine Linux Box um das zu testen)
quelle
file
immer und immer wieder mit der gleichen Ausgabe gefüllt . Die ursprüngliche Frage wird hier sicherlich nicht angesprochen.