터미널에서 출력을 남기지 않고 상단을 어떻게 종료합니까? top종료 방식과 유사하게 종료하려면 어떻게해야합니까 less, 즉

top종료 방식과 유사하게 종료하려면 어떻게해야합니까 less, 즉 화면에 출력이 남지 않습니까?

이것은 내가 가진 버전입니다.

procps-ng version 3.3.9



답변

이렇게 시작하면 …

top && clear

… q로 상단을 종료하면 화면이 사라집니다.

이것은 다음과 같이 작동합니다 less.

tput smcup ; top ; tput rmcup

( 명령이 실행 smcup되는 보조 화면으로 전환하고 top종료 top rmcup하면 다시 일반 화면으로 전환)


당신은 별칭 상단 명령 (즉을 할 수있는 I 영구 배쉬 별칭을 만들려면 어떻게해야합니까? )


답변

아이러니하게도 1 , 이것은 간단히 동작입니다 top. 3.3.8에서는 top화면 이 지워 졌지만 과거 또는 이후 버전에서는 그렇지 않았습니다. Red Hat 버그 # 977561 참조 :

화면 지우기는 널리 사용되는 일부 터미널 응용 프로그램에서 생성 된 SIGWINCH 신호로 ‘톱’도구의 범람을 방지하기 위해 Jim Warner ( ‘톱’도구 작성자)가 도입 한 터미널 조작 변경의 간접적 인 결과입니다. 홍수 문제를보고 한 사람은 저였으며 문제를 해결하기 위해 최선을 다했으며 8 가지 별도 커밋 형태로 문제에 대한 해결책을 발표했습니다. 화면 지우기를 도입 한 커밋에는 ‘dedaf6e1a81738ff08ee8e8523871e12f555ad6d’해시가 있습니다.

버그 보고서로 인해 Jim 은 3.3.9에서 출력을 지우지 않도록 수정했습니다 .

topAFAICT를 제어 할 수있는 옵션이나 구성 설정이 없습니다. 이것은 완전히 하드 코딩 된 동작입니다. https://gitlab.com/procps-ng/procps/issues/ 에서 기능 요청을 제출할 수 있습니다 .

그때까지 Rinzwind suggested를clear 수동으로 좋아 하거나 steeldriver suggests와 같이 사용할 수 있습니다.tput


흥미롭게도, 위에서 언급 한 커밋 은 강철 드라이버가 제안한 명령에 대한 훌륭한 설명을 가지고 있습니다.

여러 터미널 에뮬레이터에 사용되는 스크롤 백 버퍼는 일부 크기 조정 작업을 수행 한 사용자에게는 불편할 수 있습니다. 상단의 디스플레이를 올바르게 렌더링하기 위해 추가 키 입력이 자주 필요합니다.

많은 수렴 후 두 개의 스크롤 정보 버퍼를 비활성화 / 복원하는 효과가있는 두 개의 terminfo 문자열을 발굴했습니다. 그들은 ‘컵을 사용하여 프로그램을 시작 / 종료’하는 문자열 제목 아래에 잘 숨겨져 있습니다. ‘cup’은 tty의 커서 주소 지정 기능을 처리합니다.

우리는 당신이 그들을 부르거나 그들이 일을 끝내는 한 그들이 말하는 것을 상관하지 않습니다. 그리고 이것들은 정말로! 그러나 부작용이 있으며 그중 일부는 유익한 것으로 간주 될 수 있습니다.

  • enter_ca_mode / smcup / ti는 스크롤 백 버퍼링을 비활성화합니다 (그리고 그것이 우리가 항상 기대했던 것입니다)

  • exit_ca_mode / rmcup / te는 스크롤 백 버퍼를 복원합니다 (이전 프로그램의 최종 결과와 다른 기존 사전 화면 내용도 복원 함) (마지막으로 렌더링 된 화면을 건드리지 않은 상태)

tput smcuptput rmcup명령에 해당 합니다.


1 필수 xkcd.


답변

당신이 덜 찾고있는 행동은 htop이라는 대안에 내장되어 있습니다. 다음과 같이 설치할 수 있습니다.

sudo apt-get install htop

특히, Htop을 닫으면 원래 화면 내용 보존을 시작하기 전에 대체 화면 모드로 전환됩니다. 또한 procps의 top에 비해 다양한 다른 기능이 향상되었습니다. 설치되면 일반 사용자로 실행할 수 있습니다.

htop


답변

당신은 사용할 수 있습니다 watch:

watch top -b

기본적으로 2 초마다 업데이트됩니다 -n1.이 동작을 변경하려면 1 초 동안 사용하십시오 . 종료하려면 평상시 대신 + 를 watch누르십시오 .CtrlCQ

또 다른 접근법은 다음과 같이 새 터미널 창을 여는 것입니다 xterm.

xterm -e top

이 동작합니다 정확히 같은 top일반적으로 수행, 윈도우가 닫히고 당신이 종료 top와 함께 Q물론 당신이에서 시작 터미널에는 출력을 남기지 않습니다. &이 명령의 끝에 추가 하여 백그라운드에서 시작한 후 즉시 터미널을 해제하십시오.


답변

Rinzwind의 답변에서 알 수 있듯이 clear명령 top은 화면에서 출력을 지 웁니다 .

종료 후 + 를 top사용 하여 화면 에서 출력 을 지울 수도 있습니다 . 두 명령을 모두 수행 한 후에도 여전히 화면을 위로 스크롤하여 이전 출력 을 볼 수 있습니다 .CtrlLtoptop

top출력을 다시 스크롤 할 수 없도록 화면을 실제로 지우려면 다음 reset명령을 사용하십시오 .

top && reset

완전히 새로운 세션을 “새롭게”보이게하는 또 다른 옵션은 “ASCII 스플래시 화면”(있는 경우)을 실행하는 것입니다. 내 경우에는 다음을 실행합니다.

top && reset && now && screenfetch

지금 재설정 splash.png

  • now스크립트는 날씨, 달력 ( cal) 및 toilet멋진 시간을 말합니다.
  • screenfetch 우분투 로고와 기계 통계를 그립니다.

답변