เทอร์มินัลด้วยการเลื่อนผลลัพธ์ลง


8

ขณะนี้ฉันได้ตัดสินใจทดสอบจอภาพสองจอในแนวตั้งและฉันเจอปัญหาที่ฉันไม่เคยพบมาก่อน: สายอินพุตบนเทอร์มินัลของฉันอยู่ไกลเกินหน้าจอ!

ฉันสงสัยว่ามีวิธีที่จะทำให้เอาต์พุตเลื่อนลงหรือไม่เพื่อให้บรรทัดอินพุตอยู่ที่ด้านบน

เช่นมุมมองเทอร์มินัลปกติมีลักษณะดังนี้:

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

และฉันต้องการมีสิ่งนี้แทน:

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.

ฉันไม่พบเอกสารหรือคำถามดังกล่าวในฟอรัม หากใครมีความคิดโปรดแจ้งให้เราทราบ! (ถ้าคุณคิดว่ามันเป็นไปไม่ได้)

ขอบคุณ!

PS: ฉันใช้ Ubuntu 12.04

คำตอบ:


5

ฉันพบเคล็ดลับดี ๆ ข้อหนึ่งซึ่งคุณสามารถเริ่มได้ คุณต้องเล่นด้วยการทุบตี:

วิธีตั้งค่า:

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

กด Enter หนึ่งครั้งเพิ่มเติมและพร้อมที่จะลอง บางครั้งผลลัพธ์และพรอมต์ไม่เป็นระเบียบและอาจมีความแปลกประหลาดอื่น ๆ แต่มันเป็นสิ่งที่น่าสนใจที่จะลอง

ที่มา: Reversed หน้าต่างบรรทัดร์มินัล

ดูสิ่งนี้ด้วย:


ฉันคิดว่ามันเป็นเช่นเดียวกับคำตอบของฉัน
nux

@nux คุณคิด แต่ไม่ใช่ เป็นคำตอบของDennis Williamsonตามที่ฉันระบุในแหล่งที่มาของฉัน;)
Radu Rădeanu

ตกลงไม่เป็นไรฉันแก้ไขมันเพื่อ @cd สามารถคัดลอกและวางในเทอร์มินัลของเขาเพื่อทดสอบสิ่งที่สามารถทำได้
nux

ฉันต้องยอมรับคำตอบนี้แน่นอนเนื่องจากการอ้างอิง! แต่ขอบคุณ nux ด้วย!
cd127

4

หลังจากค้นหาคำถามที่ดีฉันพบคำสั่งนี้และหวังว่ามันจะช่วยคุณได้ดังนั้นมันจะช่วยให้คุณมุ่งเน้นไปที่ด้านบนสุดของเครื่องเมื่อเขียนคำสั่ง

ใน terminal ลอง:

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

เว็บไซต์อ้างอิง


4

เคล็ดลับอีกอย่างคือการส่งออกคำสั่งของคุณผ่านtacซึ่งเป็นเหมือนcatแต่พิมพ์ในลำดับย้อนกลับ:

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.

โปรดทราบว่าฉันต้องระบุจำนวน ping สูงสุด ( -c 5) เพราะมิฉะนั้นpingคำสั่งจะไม่ออกและท่อจะแตก อย่างไรก็ตามtacมีประโยชน์มากสำหรับสิ่งประเภทนี้


ฉันชอบแทค - ไม่รู้เกี่ยวกับมัน น่าเสียดายที่คุณพูดถึงตัวเองมันมีข้อ จำกัด บางประการ และมันไม่ได้ตั้งค่าบรรทัดคำสั่งไปที่ด้านบนของเชลล์!
cd127

@ cd127 ไม่เป็นเช่นนั้นฉันไม่เคยรู้เลยว่าคุณต้องการย้ายพรอมต์
terdon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.