出力が下にスクロールするターミナル


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

私はあなたが始めることができる1つの素晴らしいヒントを見つけました。あなたはbashで遊ぶ必要があります:

設定するには:

$ 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をもう1回押すと、試す準備ができています。時々、出力とプロンプトが乱れていたり、他の奇妙なことがあるかもしれませんが、それは試してみるのはちょっと面白いことです。

出典:反転ターミナル/コマンドラインウィンドウ

以下も参照してください。


私はそれが私の答えと同じだと思います
nux

@nuxあなたは思うが、そうではない。私が私の情報源で指定したように、それはデニスウィリアムソンの答えです;)
RaduRădeanuMar

承知しました。編集して@cdをコピーし、ターミナルに貼り付けて、何ができるかをテストします。
nux

確かに参考のために私はこの答えを受け入れなければなりませんでした!しかし、nuxにも感謝します。
cd127 2014年

4

この良い質問を検索した後、私はこのコマンドを見つけて、それがあなたに役立つことを願っています。そのため、コマンドを書くときに端末の上部に集中するのに役立つでしょう。

ターミナルで:

 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 2014年

@ cd127いいえ、そうではありません。プロンプトも移動したいと思っていました。
terdon 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.