development

Mac OS X의 터미널에서 이전 출력을 지우는 방법은 무엇입니까?

big-blog 2020. 2. 14. 23:42
반응형

Mac OS X의 터미널에서 이전 출력을 지우는 방법은 무엇입니까?


나는 clear현재 화면을 '지우는'명령을 알고 있지만 많은 줄 바꿈을 인쇄 하여이 작업을 수행합니다. 지운 내용은 위로 스크롤됩니다.

위로 스크롤해도 도달 할 수 없도록 터미널에서 이전의 모든 출력을 완전히 지우는 방법이 있습니까?


터미널을 수동으로 지우려면 :

+K

Command+ K최신 키보드

쉘 스크립트에서 터미널을 지우려면

/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'

스크립트 내에서 화면을 지우는 더 좋은 방법 ...

OSX 터미널 앱을 사용하는 경우 (OP에 명시된 바와 같이) https://apple.stackexchange.com/a/113168 덕분에 더 나은 접근 방식 은 다음과 같습니다.

clear && printf '\e[3J'

더 간결하게 ( https://stackoverflow.com/users/4834046/qiuyi에 대한) :

printf '\33c\e[3J'

화면뿐만 아니라 스크롤 백 버퍼를 지 웁니다. 다른 옵션도 있습니다 . 자세한 내용은 https://apple.stackexchange.com/a/113168참조 하십시오 .

원래 답변

이 스레드에 제공된 AppleScript 답변은 작동하지만 활성 상태 인 터미널 창을 지우면 나쁜 부작용이 있습니다. 한 창에서 스크립트를 실행하고 다른 창에서 작업을 수행하려고하면 놀라운 일입니다!

https://apple.stackexchange.com/a/31887 에서 가져온 화면이 맨 앞에있는 경우에만 화면을 지우도록 AppleScript를 수정하여이를 피할 수 있습니다 .

osascript -e 'if application "Terminal" is frontmost then tell application "System Events" to keystroke "k" using command down'

...하지만 현재 창이 아닌 경우 출력이 다시 전류가 될 때까지 쌓입니다. 아마도 원하는 것이 아닙니다.


예쁜 방법은 printf '\33c\e[3J'


이것을 .bash_profile 또는 .bashrc에 넣으십시오.

function cls { 
osascript -e 'tell application "System Events" to keystroke "k" using command down' 
}

Mac OS X 터미널에서이 기능은 이미 터미널 응용 프로그램에 내장되어 있습니다 View->Clear Scrollback(기본값은 CMD+ K).

따라서 Apple의 키보드 단축키로 원하는대로 다시 할당 할 수 있습니다. "Clear Scrollback"명령으로 터미널에 대한 새로운 바로 가기를 추가하십시오. ( 버퍼를 지우지 않고 현재 화면 내용을 지우는 + 와 비슷하기 때문에 CMD+를 사용 합니다.)LCTRLL

스크립트에서 이것을 어떻게 사용할지 잘 모릅니다 (다른 사람들이 지적한 것처럼 AppleScript 일 수 있습니다).


Mac OS X Yosemite (10.10) Option + Command + K에서는 Terminal.app에서 스크롤 백을 지우는 데 사용 합니다.


또는 다음 을 눌러 페이지 나누기 (ASCII 양식 공급)를 보낼 수 있습니다 .

CTRL+L

이것은 기술적으로 새로운 페이지를 시작하지만 다른 모든 방법과 동일한 순 효과를 갖지만 훨씬 빠릅니다 (물론 Apple + K 솔루션 제외).

그리고 이것은 ASCII 제어 명령이기 때문에 모든 쉘에서 작동합니다.


clear && printf '\e[3J'

모든 것을 지우고 osX에서도 잘 작동합니다. 매우 깔끔한


Command + K 는 이전 출력을 지 웁니다.

입력 한 텍스트를 지우려면 먼저 " Command + A "를 사용 하여 왼쪽으로 이동 한 다음 " Control + K " 를 사용하여 포인터 오른쪽의 텍스트를 지 웁니다 .

시각적 예 : 여기에 이미지 설명을 입력하십시오


옳은 일, 옳은 일을!

이전 마크로 클리어 :Command-L

이전 북마크 지우기 :Option-Command-L

시작하기 : Command-K

너희들을 도와 줘!


터미널에 다음을 입력하면 기록 지워집니다 (위쪽 화살표를 사용하면 아무 것도 얻지 못함). 그러나 화면 지워지지 는 않습니다.

history -c

위의 내용 중 어느 것도 작동하지 못했습니다 (macOS).

조합이 나를 위해 일했습니다-

IO.write "\e[H\e[2J\e[3J"

버퍼와 화면을 지 웁니다.


마지막 출력 만 삭제하려면

+L

터미널을 완전히 지우려면 :

+K


CMD + K는 항상 나를 위해 일하는 것 같습니다.

참고 URL : https://stackoverflow.com/questions/2198377/how-to-clear-previous-output-in-terminal-in-mac-os-x



반응형