Ich habe zum Beispiel einen lang andauernden und ausführlichen tar cvf /backup/backup.tar
Befehl, der viel Text auf dem Bildschirm ausgibt*. Ich möchte nicht unbedingt immer die gesamte Ausgabe sehen. Ich möchte die Textausgabe stoppen, andere Dinge erledigen, dann darauf zurückkommen und „fortfahren“, um zu sehen, wie weit der Backup-Prozess fortgeschritten ist. Ich habe erwartet, dass es sich wie
/files/big_file_1
/files/big_file_2
/files/big_file_3
# Ctrl+s
# Do other stuff
# Ctrl+q , notice big jump in progress
/home/user/.bash_history
/home/user/small_file_1
/home/user/small_file_2
/home/user/small_file_3
...
Strg+s stoppt die Ausgabe auf dem Bildschirm (und Strg+q nimmt die Ausgabe auf dem Bildschirm wieder auf), während Strg+z den Vorgang unterbricht und ich zurück zu einer PS1-Eingabeaufforderung komme. Meine Frage ist, hält Strg+s den Befehl am Laufen?
Während des oben erwähnten tar
Befehl würde ich die letzte Datei markieren, TARred, ein paar Minuten stehen lassen, Strg+q, und die nächsten Dateien schienen im selben Verzeichnis zu sein, oder zumindest in einem relativ nahen Verzeichnis.
*Ich verwende Putty unter Windows, also entschuldige ich mich, wenn das Verhalten zwischen diesem und einem Standard-Terminal unter Linux/Unix unterschiedlich ist.
Akzeptierte Antwort:
Meine Frage ist, hält Strg+s den Befehl am Laufen?
Ja, bis zu dem Punkt, an dem sich die Systempuffer füllen und der Prozess zu blockieren beginnt, um auf das Terminal schreiben zu können. Es läuft also nicht auf Dauer. Außerdem können Sie nichts anderes im selben Terminal ausführen, da die Ausgabe blockiert ist.
Um das Programm zu verlassen und trotzdem zurückzukommen, haben Sie folgende Möglichkeiten:
- Führen Sie ein anderes Terminal auf der Seite aus (ein anderes Putty, eine andere SSH-Verbindung)
- Führen Sie
screen
aus odertmux
um mehrere „Fenster“ innerhalb desselben Terminals zu multiplexen - Leiten Sie die Ausgabe in eine Datei um, führen Sie den Befehl im Hintergrund aus und sehen Sie sich dann die Datei an, wenn Sie möchten:
tar cvf ... > /tmp/tar.out &
undtail /tmp/tar.out