Terminal mit Ausgang nach unten scrollen

8

Ich habe mich derzeit entschlossen, meine Doppelmonitore in vertikaler Konfiguration zu testen, und bin auf ein Problem gestoßen, das ich noch nie zuvor hatte: Die Eingangsleitung an meinem Terminal befindet sich zu weit unten auf dem Bildschirm!

Ich habe mich gefragt, ob es eine Möglichkeit gibt, die Ausgabe nach unten zu scrollen, damit die Eingabezeile oben bleibt.

Beispiel: Eine normale Terminalansicht sieht folgendermaßen aus:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=46 time=28.3 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=46 time=13.7 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=46 time=19.1 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=45 time=20.8 ms
64 bytes from 8.8.8.8: icmp_req=5 ttl=45 time=15.6 ms
64 bytes from 8.8.8.8: icmp_req=6 ttl=46 time=15.3 ms
64 bytes from 8.8.8.8: icmp_req=7 ttl=46 time=15.3 ms
64 bytes from 8.8.8.8: icmp_req=8 ttl=45 time=14.3 ms
64 bytes from 8.8.8.8: icmp_req=9 ttl=45 time=14.3 ms
64 bytes from 8.8.8.8: icmp_req=10 ttl=45 time=15.5 ms
64 bytes from 8.8.8.8: icmp_req=11 ttl=45 time=16.9 ms
64 bytes from 8.8.8.8: icmp_req=12 ttl=45 time=16.3 ms
64 bytes from 8.8.8.8: icmp_req=13 ttl=45 time=20.0 ms
^C
--- 8.8.8.8 ping statistics ---
13 packets transmitted, 13 received, 0% packet loss, time 12017ms
rtt min/avg/max/mdev = 13.773/17.391/28.343/3.812 ms
me@my_computer:~$ 

und stattdessen hätte ich gerne so etwas:

me@my_computer:~$ 
rtt min/avg/max/mdev = 13.773/17.391/28.343/3.812 ms
13 packets transmitted, 13 received, 0% packet loss, time 12017ms
--- 8.8.8.8 ping statistics ---
^C
64 bytes from 8.8.8.8: icmp_req=13 ttl=45 time=20.0 ms
64 bytes from 8.8.8.8: icmp_req=12 ttl=45 time=16.3 ms
64 bytes from 8.8.8.8: icmp_req=11 ttl=45 time=16.9 ms
64 bytes from 8.8.8.8: icmp_req=10 ttl=45 time=15.5 ms
64 bytes from 8.8.8.8: icmp_req=9 ttl=45 time=14.3 ms
64 bytes from 8.8.8.8: icmp_req=8 ttl=45 time=14.3 ms
64 bytes from 8.8.8.8: icmp_req=7 ttl=46 time=15.3 ms
64 bytes from 8.8.8.8: icmp_req=6 ttl=46 time=15.3 ms
64 bytes from 8.8.8.8: icmp_req=5 ttl=45 time=15.6 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=45 time=20.8 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=46 time=19.1 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=46 time=13.7 ms
64 bytes from 8.8.8.8: icmp_req=1 ttl=46 time=28.3 ms
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

Ich konnte keine solche Dokumentation oder Frage in den Foren finden. Wenn jemand eine Idee hat, lass es mich wissen! (auch wenn Sie denken, dass es nicht möglich ist)

Vielen Dank!

PS: Ich benutze Ubuntu 12.04

cd127
quelle

Antworten:

5

Ich habe einen schönen Tipp gefunden, mit dem Sie beginnen können. Sie müssen mit Bash spielen:

So richten Sie es ein:

$ bash    # try this in a subshell since ^C seems to cause it to exit
$ f () { sed "1s/^/$(tput cup 0 0)/;s/^/$(tput il1)/"; }
$ PROMPT_COMMAND='tput cup 0 0;tput il1; echo'
$ exec > >(f)

Drücken Sie die Eingabetaste ein weiteres Mal und Sie können es versuchen. Manchmal sind die Ausgabe und die Eingabeaufforderung nicht in Ordnung und es kann andere Verrücktheiten geben, aber es ist eine interessante Sache, es zu versuchen.

Quelle: Reversed Terminal / Befehlszeilenfenster .

Siehe auch:

Radu Rădeanu
quelle
Ich denke , es ist genauso wie meine Antwort
Nux
@nux Du denkst, ist es aber nicht. Es ist Dennis Williamsons Antwort, wie ich in meiner Quelle angegeben habe;)
Radu Rădeanu
ok egal, ich bearbeite es so, dass @cd kopieren und in sein Terminal einfügen kann, um zu testen, was es kann.
Nux
Ich musste diese Antwort aufgrund des Hinweises tatsächlich akzeptieren! Aber danke auch nux!
CD127
4

Nachdem ich nach dieser guten Frage gesucht hatte, fand ich diese Befehle und hoffe, dass sie Ihnen helfen können, damit Sie sich beim Schreiben eines Befehls auf die Oberseite des Terminals konzentrieren können.

Im Terminal versuchen Sie:

 f () { sed "1s/^/$(tput cup 0 0)/;s/^/$(tput il1)/"; }
 PROMPT_COMMAND='tput cup 0 0;tput il1; echo'
 exec > >(f)

Referenz - Site

nux
quelle
4

Ein weiterer Trick wäre, die Ausgabe Ihres Befehls weiterzuleiten, tacdie wie folgt aussieht, cataber in umgekehrter Reihenfolge gedruckt wird:

terdon@oregano ~ $ ping -c 5 8.8.8.8 | tac
rtt min/avg/max/mdev = 88.906/91.678/94.948/2.129 ms
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
--- 8.8.8.8 ping statistics ---

64 bytes from 8.8.8.8: icmp_seq=5 ttl=42 time=88.9 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=42 time=92.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=42 time=90.0 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=42 time=91.5 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=42 time=94.9 ms
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

Beachten Sie, dass ich eine maximale Ping-Nummer ( -c 5) angeben musste, da sonst der pingBefehl nicht beendet wird und die Pipe bricht. Wie auch immer, tacist sehr nützlich für diese Art von Dingen.

Terdon
quelle
Ich mag das Tac - wusste nichts davon. Leider hat es, wie Sie selbst sagten, einige Einschränkungen. Und die Befehlszeile wird nicht an die Spitze der Shell gesetzt!
CD127
@ cd127 nein nicht, ich hatte nicht bemerkt, dass du auch die Eingabeaufforderung verschieben wolltest.
Terdon