터미널을 실제로 지우는 방법은 무엇입니까?


385

나는 실행할 수 clear명령을 누르거나 Ctrl+를 L현재 우분투 터미널을 취소하지만 이것은 단지 이전의 출력 위쪽을 이동하고 마우스 스크롤을 사용하거나하는 경우 PgUPPgDown키가 어려운 현재 명령의 이전 명령이 종료의 출력과 출력이 시작되는 위치를 구별 할 수 있습니다.

이전 명령 결과가 표시되지 않도록 터미널 을 실제로 지우는 방법이 있습니까?


11
Ctrl + L을 두 번 누르면 공백이됩니다!
Pandya

답변:


456

예, 당신이 찾고있는 명령은

reset

대조적으로 clear, 또는 Ctrl+ L, reset실제로 완전하게 재 초기화 할 단말 , 대신 화면의 클리어. 그러나 쉘 (bash)을 다시 인스턴스화하지는 않습니다. 이것은 단지 화면을 지우는 것처럼 bash의 상태 가 이전과 동일 하다는 것을 의미합니다 .

@Wallacoloo가 주석에서 언급 했듯이이 명령은 더 빠르게 동일한 작업을 수행해야합니다.

tput reset

다른 답변에서 :

  • towolf의 설명에 따라 키보드 단축키reset터미널에 설정할 수 있습니다 .

  • 당신이 실행하는 경우 쿠분투를 하고 터미널 Konsole을, 당신은에 갈 필요가 편집 → 기록 지우기 때문에 reset,이 같은 방식으로 작동하지 않습니다 UncleZeiv 노트로 .


9
아마도 대부분의 사용자에게는 중요하지 않지만 동작은 reset터미널에 따라 다릅니다.
cthom06

2
개인적으로 나는 때리면 스크롤러를 따라 무언가가 "위로"남아있는 것을 신경 쓰지 않습니다 ^L. 나는 그것을 보지 못하고 (그것이 내가 원하는 것입니다!), 그것을 느끼지 않으며, 갑자기 나는 거기에있는 것을 복원 해야 합니다-아무런 문제가 없습니다. reset대조적으로, 이스케이프 시퀀스가 ​​실수로 디스플레이를 완전히 망쳐 놓았을 때처럼 터미널에 문제가있을 때 사용하겠습니다.
ulidtko

14
@ulidtko : 많은 양의 출력으로 프로그램의 연속 세션을 실행할 때 중요합니다. 뒤로 스크롤하면 어떤 실행이 무언가를 인쇄했는지 혼동되기 쉽습니다. 이 경우보다 정교한 솔루션을 사용할 수 있다는 것을 잘 알고 있지만 그럼에도 불구하고 빠르고 더러운 디버깅 세션에서 발생하는 시나리오입니다.
UncleZeiv

7
이 또한의 tput reset가시 같은 일을하는,하지만 (반면 즉시 완료 reset프롬프트가 다시 나타납니다 전에 약 2 초 정도 걸릴 수 있습니다.)
Ponkadoodle

1
이것은 내 putty.exe 창의 크기를 조정하므로 발생하지 않고 지우는 것이 좋습니다.
void.pointer

100

나는 이것을 잠시 동안 찾고 있었고 이것을 게시 한 천재를 발견했다.

clear && printf '\e[3J'

전체 화면 버퍼를 지 웁니다. 매우 깨끗합니다. OS X에서 작동하며 대부분의 * nix 터미널에서 제대로 작동한다고 생각합니다.

궁금한 점은이 부분 '\e[3J'은 터미널 이스케이프 명령입니다.


2
흠, xterm, Konsole 및 Linux VT에서 작동하지만 그놈 터미널에서는 작동하지 않습니다.
Ruslan

1
고마워, 내 Mac에서 잘 작동합니다-나는 진짜 Bash 스타일을 정말로 놓쳤다 reset.
JohnnyCoder

9
고마워, 그것은 매우 유용합니다! 무슨 printf '\e[3J'뜻입니까? 버퍼를 어떻게 청소합니까?
Filip Spiridonov

4
주의해서 앨리어싱하십시오 reset-터미널을 지우는 것 이상의 역할을합니다. 예를 들어 실수로 터미널을 손상시키는 임의의 가비지가있는 이진 파일을 인쇄하는 경우 (예 : 입력 한 문자의 에코가 비활성화 됨) reset일반적으로 문제를 해결할 수 있습니다. 물론 \override별칭 그림자 명령 에 대한 방법을 알고 있다면 별칭이 좋습니다.
RubyTuesdayDONO

4
이것은 Winders를 통해 일부 SSH에 액세스 할 때 퍼티 스크롤 백을 지우는 유일한 방법입니다.
dhaupin

45

편집 → 키보드 단축키 로 이동하여 그놈 터미널에서 단축키를 지정할 수도 있습니다 . 나는 Shift+ Ctrl+ Alt+를 사용 C합니다.

바로 가기 재설정 및 지우기


+1. 메뉴 바는 항상 숨겨져 있습니다. 놈을 사용한 지 몇 년이 지난 후에도 나는 이것을 찾지 않았다고 생각했습니다. 감사합니다 :-)
Stefano Palazzo

3
“재설정”은 나를 위해 아무 것도하지 않으며“재설정 및 지우기”는 모든 것을 지우지 만 프롬프트를 다시 표시하지는 않습니다. 이 메뉴 항목 중 어느 것도 터미널의 "재설정"명령처럼 동작하지 않습니다.
Hibou57

@ Hibou57이 말했듯이 "재설정"에 대한 키보드 단축키는 아무것도하지 않는 것 같습니다. 이 기능은 14.04에서 중단 되었습니까?
Michael Martin-Smucker

“이 기능은 14.04에서 중단 되었습니까?”: 이것은 12.04와 동일합니다.
Hibou57

1
@ Hibou57 "Reset and Clear"는 프롬프트를 다시 표시 할 것으로 예상되지 않지만 나중에 Enter 키를 누르면 프롬프트가 다시 표시됩니다. 그게 당신을 위해 작동합니까?
Don Hatch

19

stackoverflow 에서 내 답변을 교차 게시하십시오 .

다음 명령을 사용하여 단순히 새 줄을 추가하는 대신 명확한 화면을 만드십시오 ...

printf "\033c"

예, 그것은 bash 프롬프트의 'printf'입니다.

그래도 별명을 정의하고 싶을 것입니다 ...

alias cls='printf "\033c"'

설명

\033 == \x1B == 27 == ESC

따라서 이것은 <ESC>c터미널을 재설정하기위한 VT100 이스케이프 코드가됩니다. 다음 은 터미널 이스케이프 코드에 대한 추가 정보입니다.

편집하다

다른 몇 가지 방법이 있습니다 ...

printf "\ec" #\e is ESC in bash
echo -en "\ec" #thanks @Jonathon Reinhart.
# -e    Enable interpretation of of backslash escapes
# -n    Do not output a new line

KDE

위의 내용은 KDE 콘솔 (Konsole)에서 작동하지 않지만 희망이 있습니다! 다음 명령 시퀀스를 사용하여 화면과 스크롤 백 버퍼를 지 웁니다.

clear && echo -en "\e[3J"

또는 KDE에서 다음 별칭을 사용하십시오.

alias cls='clear && echo -en "\e[3J"'

여기서 스크롤 백 지우기 명령을 받았습니다 .


18

이 명령을 실행하십시오 :

reset

이것은 새로운 터미널을 시작하는 것과 같은 효과가 있습니다.


6
퍼티를 사용할 때 실행 한 후에도 reset여전히 위로 스크롤하여 이전 항목을 볼 수 있습니다. 이것이 PuTTY가 아닌 문제 reset입니까?
Svish

@svish-퍼티 구현 문제 또는 결정일뿐입니다.
belacqua

@jgbelacqua, Deal :)
Svish

MAC OS 터미널 작업
Bira

2
@Bira 아니요, resetmacOS 10.14 Mojave에서 스크롤 백을 지우지 않습니다. seq 100; reset여전히 스크롤 백을 보려고 할 수 있습니다. macOS 터미널에서 Cmd+K화면과 스크롤 백을 지울 수 있습니다.
Johnny Wong

8

내가 가장 좋아하는 것은 printf "\ec"입니다. 이것은 또한 할 수있다 printf "\033c"또는 printf "\x1bc". 그것은 터미널 출력에 대한 화면과 버퍼를 기적적으로 지우는 ansi escape 시퀀스입니다. 리눅스)

나는 이것이 Linux Mint와 Ubuntu 14.04에서 작동한다는 것을 알고 있으므로 사람들이 왜 이런 것들을 추가하고 미리 준비하는지 모르겠습니다 clear && echo -ne "\033c. printf "\ec"항상 나를 위해 일했습니다.

또한 내 .bashrc경우 다음과 같은 바인딩이 있습니다.

bind -x '"\C-t": printf "\ec"';

이제는 ctrlt항상 눌렀 습니다.


Windows 키를 사용하여 매핑을 작성하는 방법을 알고 있습니까? 이 스 니펫은 정말 훌륭합니다. Mac의 Command-K와 똑같이 작동합니다. 감사합니다.
Niloct

@Niloct 당신은 터미널이 그것을 지원하는지 알 수 있습니다 xev( xevx 세션 안에 터미널을 입력하십시오 ). 내가 알 수 있듯이 urxvt는이를 지원하지 않습니다. tty에서 시도하지 않았지만 지원되지 않을 것이라고 확신합니다. 또한 xterm 또는 gnome-terminal이이를 지원할 것이라고 의심합니다. anis-escape에는 까다 롭습니다. 답장을 보내 주셔서 감사합니다.
dylnmc 2012

좋아요 @dylnmc, 감사합니다. 의견 주셔서 감사합니다.
Niloct

5

글쎄, 그것은 당신이 Konsole예를 들어 사용 하는 경우에도 reset첫 줄을 지나서 스크롤하는 것을 방해하지 않습니다. 이 경우 사용중인 특정 터미널의 일부 기능을 사용해야합니다. 를 들어 Konsole, 그것은이다 Edit > Clear History.


3

쿠분투에서 다음과 같은 것이 성공적임을 발견했습니다.

alias clc="echo -en '\033c\033[3J'"

당신은 사용할 수 있습니다 cls, 윈도우 전통을 유지하기 위해 매트랩 버전을 사용 clc하거나 자신의 하나. 행운을 빕니다!



2

@ Hibou57 답변의 또 다른 대안 :

# The Octal Way
alias clear="echo -e '\033c\c'"

또는

# The Hex Way
alias clear="echo -e '\x1b\c'"

기본적으로 이것은 똑같은 효과가 있으며 ^[문자 를 인쇄하고 (터미널을 지우는) 후행 줄 바꿈을 출력하지 않습니다.


약간의 보정 : 그것은 인쇄 ^[문자 (ESC) 다음c 문자 만이 아니라 ^[혼자 문자를. 이 값을 합하면 "RIS"터미널 코드가되어 재설정됩니다. 추가 정보 : xfree86.org/4.8.0/ctlseqs.html
jwd

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.