Terminal avec sortie défilant


8

J'ai actuellement décidé de tester mes doubles moniteurs en configuration verticale, et je suis tombé sur un problème que je n'avais jamais rencontré auparavant: la ligne d'entrée sur mon terminal est trop loin en bas de l'écran!

Je me demandais s'il y avait un moyen de faire défiler la sortie vers le bas, afin que la ligne d'entrée reste en haut.

par exemple, une vue de terminal normale ressemble à ceci:

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

et à la place j'aimerais avoir quelque chose comme ça:

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.

Je n'ai pas pu trouver une telle documentation ou question sur les forums. Si quelqu'un a une idée, faites-le moi savoir! (aussi si vous pensez que ce n'est pas possible)

Merci!

PS: j'utilise Ubuntu 12.04

Réponses:


5

J'ai trouvé un bon conseil à partir duquel vous pouvez commencer. Vous devez jouer avec bash:

Pour le configurer:

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

Appuyez sur Entrée une fois de plus et c'est prêt à essayer. Parfois, la sortie et l'invite sont hors service et il peut y avoir d'autres bizarreries, mais c'est une chose intéressante à essayer.

Source: Fenêtre Terminal / Ligne de commande inversée .

Voir également:


je pense que c'est juste comme ma réponse
— nux

@nux Vous pensez, mais ce n'est pas le cas. C'est la réponse de Dennis Williamson , comme je l'ai précisé dans ma source;)
— Radu Rădeanu

ok tant pis, je le modifie pour que @cd puisse copier et coller dans son terminal pour tester ce qu'il peut faire.
— nux

J'ai dû accepter cette réponse en raison de la référence! Mais merci nux aussi!
— cd127

4

Après avoir recherché cette bonne question, j'ai trouvé ces commandes et j'espère que cela peut vous aider, afin qu'il puisse vous aider à vous concentrer sur le haut du terminal lors de l'écriture d'une commande.

Dans le terminal, essayez:

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

Site de référence


4

Une autre astuce serait de passer la sortie de votre commande tacqui ressemble à catmais imprime dans l'ordre inverse:

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.

Notez que j'ai dû spécifier un nombre de ping maximum ( -c 5) car sinon la pingcommande ne se terminera pas et le tube se cassera. Quoi qu'il en soit, tacest très utile pour ce type de chose.


J'aime le tac - je ne le savais pas. Malheureusement, comme vous l'avez dit vous-même, cela a certaines limites. Et cela ne place pas la ligne de commande en haut du shell!
— cd127

@ cd127 non, je ne m'étais pas rendu compte que vous vouliez également déplacer l'invite.
— terdon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.