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
'development' 카테고리의 다른 글
자바 스크립트로 쿠키 설정 및 쿠키 받기 (0) | 2020.02.14 |
---|---|
www가 아닌 www로 일반 htaccess 리디렉션 (0) | 2020.02.14 |
문자열 C #에서 줄 바꿈 바꾸기 (0) | 2020.02.14 |
ImportError : 모듈 이름이없는 요청 (0) | 2020.02.13 |
MongoDB 관계 : 포함 또는 참조? (0) | 2020.02.13 |