versehentlich verketten Sie eine große Datei auf einem Remote-System

392
Jarvin

Ab und zu tippe ich auf einem Computer, in den ich ssh'd bin, versehentlich "cat largefile.txt" ein, und mein Bildschirm wird für die nächsten 10 Minuten mit Text überschwemmt. Ich arbeite immer in einer Bildschirmsitzung. Daher besteht meine derzeitige Lösung darin, sich abzumelden und wieder anzumelden. Da es sich beim Abmelden um das 100-fache beschleunigen kann, dauert es nicht lange um mein Passwort erneut einzugeben.

Gibt es einen besseren Weg? Entweder mit der Tatsache, dass ich in einer Bildschirmsitzung bin? Oder eine Möglichkeit, dies innerhalb von SSH zu tun?

Was nicht funktioniert:

  • Trennen von der Bildschirmsitzung (antwortet nicht, bis die Ausgabe der Datei abgeschlossen ist)
  • Versuch, den Befehl in ein anderes Fenster in der Bildschirmsitzung zu verschieben (antwortet auch nicht)
  • Eingabe von Strg + C, um den Befehl cat zu beenden (antwortet auch nicht, wahrscheinlich, weil der Befehl ausgeführt wurde und die Puffer nur aufholen müssen)
1

3 Antworten auf die Frage

7
Evan Carroll

Die offensichtlich einfache Lösung wäre, sie nicht zu verwenden cat. Ihre Shell ist kein Textbetrachter. Verwenden Sie lessdie dafür vorgesehene Verwendung.

Nun, mein System hat zwar nicht weniger, aber es hat mehr, was ich ständig verwende, wenn ich merke, dass ich es mit einer großen Datei "cat file.txt | more" zu tun habe. Ich denke, ich sollte mich selbst trainieren "more file.txt" jedoch in allen Situationen verwenden. Kein Grund, cat zu verwenden, wenn das Terminal die Ausgabe ist. Jarvin vor 14 Jahren 0
1
Dennis Williamson

Wenn Sie Bash verwenden, versuchen Sie Ctrl-z kill % Enter

Welche Shell benutzt du?

( Ctrl- carbeitet übrigens für mich.)

Ich benutze bash. Ctrl + C funktioniert, wenn Sie es vor dem Abschluss der Cat-Bearbeitung abschalten können, aber als ich merke, dass es super lang ist, läuft die Katze nicht mehr und nur mein Display muss aufholen. Es ist also nicht so, dass ich irgendetwas töten muss, weil die Katze bereits nicht mehr läuft. Strg-Z führt nichts aus, während die Datei ausgegeben wird. Jarvin vor 14 Jahren 0
0
intuited

Wenn Sie ein neues screenFenster über starten ^A ^C, werden Sie meiner Meinung nach in der Lage sein, den ankommenden Puffer "auszuweichen", ohne sich abmelden und erneut anmelden zu müssen. Der Engpass scheint die Übertragung der Pufferzeichen an Ihr lokales Terminal zu sein. Wenn Sie zu einem anderen Fenster wechseln, sollten Sie diesen Aufwand vermeiden. Nicht gerade ein Wundermittel, aber es kann Ihnen etwas Zeit sparen.

Leider funktioniert das nicht. Wie bei allen anderen Methoden hilft dies nur, wenn die Katze die Ausführung noch nicht abgeschlossen hat. Sobald der Vorgang abgeschlossen ist und nur noch der Puffer aufholen kann, habe ich nur die Möglichkeit gefunden, sich abzumelden. Die Katze endet in der Regel in ein oder zwei Sekunden, daher tippe ich dies fast sofort ein, um eine Wirkung zu erzielen. Jarvin vor 13 Jahren 0
Das ist interessant. Haben Sie die SSH-Verbindung im Hintergrund versucht? Dies scheint unwahrscheinlich zu funktionieren, da es so aussieht, als müssten Sie die Bildschirmsitzung trennen ... Aber dann hätten Sie vermutlich versucht, sich mit `^ A d` von der Bildschirmsitzung zu lösen. Wie meldest du dich ab? Wenn Sie jedoch [ENTER] `` ~ ^ `` Z drücken, wird die SSH-Sitzung im Hintergrund angezeigt. intuited vor 13 Jahren 0