Terminale con uscita che scorre verso il basso


8

Al momento ho deciso di testare i miei doppi monitor nella configurazione verticale e ho riscontrato un problema che non avevo mai avuto prima: la linea di ingresso sul mio terminale è troppo lontana dallo schermo!

Mi chiedevo se c'è un modo per far scorrere l'output verso il basso, in modo che la riga di input rimanga in alto.

ad esempio, una normale vista terminale è simile alla seguente:

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

e invece vorrei avere qualcosa del genere:

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.

Non sono riuscito a trovare tali documenti o domande sui forum. Se qualcuno ha un'idea, per favore fatemi sapere! (anche se pensi che non sia possibile)

Grazie!

PS: sto usando Ubuntu 12.04

Risposte:


5

Ho trovato un bel suggerimento da cui puoi iniziare. Devi giocare con bash:

Per configurarlo:

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

Premi Invio una volta in più ed è pronto per provare. A volte l'output e il prompt sono fuori servizio e potrebbero esserci altre stranezze, ma è una specie di cosa interessante da provare.

Fonte: finestra terminale / riga di comando invertita .

Guarda anche:


penso che sia proprio come la mia risposta
nux

@nux Pensi, ma non lo è. È la risposta di Dennis Williamson , come ho specificato nella mia fonte;)
Radu Rădeanu

ok non importa, lo modifico in modo che @cd possa copiare e incollare nel suo terminale per testare cosa può fare.
nux

Ho dovuto accettare davvero questa risposta a causa del riferimento! Ma grazie anche tu!
cd127,

4

Dopo aver cercato questa buona domanda, ho trovato questi comandi e spero che possa aiutarti, quindi può aiutarti a concentrarti sulla parte superiore del terminale quando scrivi un comando.

Nel terminale provare:

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

Sito di riferimento


4

Un altro trucco sarebbe passare l'output del comando attraverso il tacquale è simile catma stampa in ordine inverso:

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.

Si noti che ho dovuto specificare un numero massimo di ping ( -c 5) perché altrimenti il pingcomando non si chiuderà e il tubo si spezzerà. Ad ogni modo, tacè molto utile per questo tipo di cose.


Mi piace il tac - non lo sapevo. Sfortunatamente, come hai detto tu stesso, ha alcune limitazioni. E non imposta la riga di comando in cima alla shell!
cd127,

@ cd127 no, non avevo capito che volevi spostare anche il prompt.
terdon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.