Terminal dengan output bergulir ke bawah

8

Saat ini saya telah memutuskan untuk menguji monitor ganda saya dalam konfigurasi vertikal, dan saya menemukan masalah yang belum pernah saya miliki sebelumnya: jalur input pada terminal saya terlalu jauh ke bawah layar!

Saya bertanya-tanya apakah ada cara untuk membuat gulir output ke bawah, sehingga garis input tetap di atas.

misalnya, tampilan terminal normal terlihat seperti ini:

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:~$ 

dan sebaliknya saya ingin memiliki sesuatu seperti ini:

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.

Saya tidak dapat menemukan dokumentasi atau pertanyaan seperti itu di forum. Jika ada yang punya ide, beri tahu saya! (juga jika Anda pikir itu tidak mungkin)

Terima kasih!

PS: Saya menggunakan Ubuntu 12.04

cd127
sumber

Jawaban:

5

Saya menemukan satu tip yang bagus untuk memulai. Anda harus bermain dengan bash:

Untuk mengaturnya:

$ 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)

Tekan enter satu kali tambahan dan siap untuk mencoba. Kadang-kadang output dan prompt tidak sesuai dan mungkin ada keanehan lain, tapi itu semacam hal yang menarik untuk dicoba.

Sumber: Jendela baris Terminal / Perintah terbalik .

Lihat juga:

Radu Rădeanu
sumber
saya pikir itu hanya sebagai jawaban saya
nux
@ Neux Anda berpikir, tetapi tidak. Ini jawaban Dennis Williamson , seperti yang saya sebutkan dalam sumber saya;)
Radu Rădeanu
ok tidak apa-apa, saya mengeditnya sehingga @cd dapat menyalin dan menempel di terminalnya untuk menguji apa yang dapat dilakukannya.
nux
Saya harus menerima jawaban ini memang karena referensi! Tapi terima kasih nux juga!
cd127
4

Setelah mencari pertanyaan yang bagus ini, saya menemukan perintah ini dan berharap ini dapat membantu Anda, sehingga dapat membantu Anda berfokus pada bagian atas terminal saat menulis perintah.

Dalam percobaan terminal:

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

Situs Referensi

nux
sumber
4

Trik lain adalah dengan mengirimkan output perintah Anda tacyang seperti cattetapi mencetak dalam urutan terbalik:

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.

Perhatikan bahwa saya harus menentukan nomor ping maksimum ( -c 5) karena jika tidak, pingperintah tidak akan keluar dan pipa akan pecah. Bagaimanapun, tacini sangat berguna untuk hal semacam ini.

terdon
sumber
Saya suka tac - tidak tahu tentang itu. Sayangnya seperti yang Anda katakan sendiri, ada beberapa keterbatasan. Dan itu tidak mengatur baris perintah ke atas shell!
cd127
@ cd127 tidak, saya tidak sadar Anda juga ingin memindahkan prompt.
terdon