출력이 아래로 스크롤되는 터미널


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.

포럼에서 그러한 문서 나 질문을 찾을 수 없습니다. 누구든지 아이디어가 있다면 알려주세요! (그렇지 않다고 생각되면)

감사!

추신 : 우분투 12.04를 사용하고 있습니다

답변:


5

나는 당신이 시작할 수있는 좋은 팁을 찾았습니다. 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 키를 누르면 시도 할 준비가됩니다. 때로는 출력과 프롬프트가 잘못되어 다른 이상한 점이있을 수 있지만 시도해 볼만한 흥미로운 일입니다.

출처 : 반전 된 터미널 / 명령 줄 창 .

또한보십시오:


나는 그것이 내 대답과 같다고 생각한다
nux

@ nux 당신은 생각하지만 그렇지 않습니다. 그것은이다 데니스 윌리엄슨 내 소스에 지정된대로의 대답)
라두 Rădeanu

괜찮습니다. @cd가 터미널에 복사하여 붙여 넣어 할 수있는 작업을 테스트 할 수 있도록 편집했습니다.
nux

나는 참조로 인해이 답변을 정말로 받아 들여야했습니다! 하지만 고마워요!
cd127

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.

-c 5그렇지 않으면 ping명령이 종료되지 않고 파이프가 끊어 지기 때문에 최대 핑 번호 ( ) 를 지정해야합니다 . 어쨌든 tac이런 유형의 물건에 매우 유용합니다.


나는 전술을 좋아한다-그것에 대해 몰랐다. 불행히도 자신이 말한 것처럼 몇 가지 제한 사항이 있습니다. 그리고 그것은 명령 행을 쉘의 상단으로 설정하지 않습니다!
cd127

@ cd127 아니요, 그렇지 않습니다. 프롬프트를 이동하고 싶었다는 것을 깨닫지 못했습니다.
terdon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.