그놈 터미널 기록을 지우려면 어떻게해야합니까?


59

터미널에서 clearcommand 또는 Ctrl+ L를 사용 하면 터미널이 지워지지 만 다시 스크롤하여 마지막으로 사용한 명령을 볼 수 있습니다. 터미널을 완전히 지우는 방법이 있습니까?


터미널에 따라 다르며 그에 대한 답변은 없습니다.
Thomas Dickey

답변:


69

사용할 수 있습니다 tput reset.

게다가 reset그리고 tput reset당신은 쉘 스크립트를 사용할 수 있습니다.

#!/bin/sh
echo -e \\033c

제어 문자 Esc-C를 콘솔로 보내 터미널을 재설정합니다.

Google 키워드 : Linux 콘솔 제어 순서

man console_codes 말한다 :

시퀀스 ESC c는 터미널 재설정을 야기하며, 이는 화면이 모두 왜곡 된 경우 원하는 것입니다. 자주 권장되는 "echo ^ V ^ O"는 G0 만 최신 상태로 만들지 만 G0이 표 a를 가리키는 것은 아닙니다. 일부 배포판에는 "echo ^ [c"를 수행하는 프로그램 reset (1)이 있습니다. 콘솔의 terminfo 항목이 올 바르고 (rs1 = \ Ec 항목이있는 경우) "tput reset"도 작동합니다.


1
재설정과 입력 재설정의 차이점은 무엇입니까?
Toothrot

tput reset보다 빠른 reset적어도, 우분투 16.04에서
이반 로드리게스 토레스

5
-1, 당신은 스크롤하면 여전히 버퍼를 볼 수 있습니다
João Pimentel Ferreira

15

reset명령을 사용 하면 터미널 설정이 재설정됩니다.


15

나는 당신이 그놈 터미널에 있다는 것을 알고 있지만 Mac에서 (나 같은) 다른 사람들을 위해 팁으로 대답 할 것이라고 생각했습니다.

사용 중이 Terminal.app거나 iTerm.app그런 다음 Control+L위로 스크롤하면 터미널이 비어있는 것처럼 보이지만 Cmd+K실제로 터미널을 재설정 / 스크롤 취소합니다.

또는 터미널에 대한 키보드 환경 설정을 지정할 수있는 경우 위에서 언급 한 것과 같이 Ctrl+K입력 할 항목을 지정할 수 있습니다 echo -e \\033c.


2
Cmd+K내가 원하는 전부 야 ty
Gaurav Gandhi

9

Anthon의 답변은 KDE Konsole에서 작동하지만 urxvt는 아닙니다. urxvt에서 몇 년 동안 재설정을 사용하여 스크롤 백을 지우고 (다른 모든 것들과 함께) Konsole에서 작동하지 않는다는 것에 만족하지 못했습니다. 이제 Linux의 경우 새 별칭이 있습니다.

alias allclear='clear; echo -e "\033c\e[3J"'

그러나 OS X에서는 작동하지 않습니다.

tput reset 어떤 상황에서도 AFAICT가 작동하지 않습니다.

KDE Konsole을에서 ctrl- shift- k스크롤 백 웁니다 (현재 쉘 프롬프트를 포함하여, 그래서 완전히 비어). OS X에 사용하여 ITerm 또는 애플의 터미널에서 cmd- shift- k또한 스크롤 백을 지 웁니다. urxvt에이 기능을 추가하려면 ~ / .Xresources에이 기능을 추가하십시오.

urxvt*keysym.C-S-K: command:\033c

이 대답은 Linux Bash를 사용하는 사람은 Command + K를 눌러 Mac에서받을 때와 동일한 결과를 기대하면 좋아할 것입니다. 계속해서 아래 기능을 맨 아래에 추가하여 독립형 명령으로 전환했습니다 /etc/bash.bashrc (서버에서 로그 아웃 한 후 다시 로그인하면 allclear 명령을 통해 작동 함) : allclear(){`echo "터미널 및 스크롤 백 지우기 ..."``sleep 1.5``clear; echo -e "\ 033c \ e [3J"` }`편집 : 포맷 할 수 없습니다. 누구나 읽을 수 있도록 편집 할 수 있다면 고맙겠습니다.
KLaw

3

나는 몇 년 전에 인터넷에서 이것을 발견했으며 나에게 잘 작동합니다. 스크롤 기록이없는 터미널을 완전히 지 웁니다.

echo -e "\e[3J"

2

bash , cshfish shellF12 각각의 쉘에서 clear screen에 매핑 했습니다 . 내 명령은 현재 줄에 이미 입력 한 내용을 유지하기 때문에 이전 명령과 다릅니다. (참고 : 아래의 모든 구성은 터미널에 따라 다르지만 거의 모든 곳에서 작동하기를 바랍니다)

세게 때리다

파일을 열고 ~/.inputrc다음 줄을 삽입하십시오.

"\e[24~": "\C-k \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n\C-y\C-?"

새 키 바인딩을 사용 가능하게하려면 새 터미널을 열거 나 Ctrl+를 X누른 다음 Ctrl+ R를 입력 하여 현재 터미널에서 .inputrc 파일을 다시로드하십시오.

설명
파일 ~ / .inputrc는 bash는 터미널의 키 바인딩을 제어합니다.

라인 정보 :

  1. 줄의 첫 번째 부분은 "\e[24~"키를 매핑합니다 F12.
  2. C-k( Ctrl+는 X) 킬 (kill) 링 (배쉬의 복사 및 과거의 기억)를 지 웁니다.
  3. 이 공간은 다음 명령에서 경고음을 피합니다.
  4. C-u( Ctrl+는 U) 킬 링에 현재 라인을 전송하고,이를 소거.
  5. echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n두 그룹화 된 명령을 터미널로 보냅니다. 에 의해 분리되고에 의해 ;종료됩니다 \n.
    • echo -ne '\\ec\\e[3J'화면 이 지워집니다.
    • history -d $((HISTCMD-1))역사에 들어가는이 두 명령을 방지 할 수 있습니다.
  6. C-y( Ctrl+가 Y)에 의해 저장된 킬 (kill) 링 붙여 넣습니다 C-u명령을 사용합니다.
  7. C-?( Ctrl+가 ?)에 상당 Backspace하고 상기 단계 (3)에 삽입 공간을 제거한다.

참고 문헌 :

csh

다음 명령을 입력하십시오. 파일에
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
삽입 .cshrc하여 모든 새 터미널에 키 바인딩을로드 할 수도 있습니다 .
(예, bash보다 훨씬 간단합니다)

생선 껍질

다음 명령을 입력하십시오. 키 바인딩을 모든 새 터미널에로드하는
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
기능 fish_user_key_bindings을 편집하고 저장할 수 있습니다 .
(예, bash보다 훨씬 간단합니다)


2

[우분투 16.04]

.bash_history 파일 터미널이 폐쇄되면 파일은 사용자의 홈 디렉토리에 작성됩니다

유용하지만 원하는 경우 삭제할 수 있습니다. 그럼에도 불구하고 터미널 사용을 마칠 때마다 생성됩니다.

다음에서 수동으로 삭제할 수 있습니다.

  • 파일 브라우저.

  • 터미널 : 터미널을 닫으면 기본 구성에 따라 새 .bash_history 파일이 생성됩니다.

또는 필요한 기능을 bashrc에서 링크 된 파일에 저장하면 사용자 정의 함수를 호출 할 수 있습니다. 코드를 원하는 경우 bashrc 자체를 편집 할 수 있지만 다음 예제는 별도의 파일에 있습니다.

솔직히 이것은 나에게 유용하지 않지만 종료하기 전에 명령 기록을 삭제하려는 경우 다음을 수행 할 수 있습니다.

.bash_custom # 이것은 내 사용자 정의 파일입니다

blotout() {
    HISTSIZE=0
    rm $HOME/.bash_history
    exit
}

그런 다음 맨 아래에 내 파일
.bashrc 의 이름과 경로를 추가하십시오 . # 이것은 bash의 구성 파일입니다.

# existent code
#...
#..

# import user customizations
source $HOME/.bash_custom

그리고 그게 전부입니다.

그러나 원하는 것을 정확하게하려면 사용자 정의 파일 에이 기능이 필요하고 링크하십시오.

refresh() {
        tput reset
        H=HISTSIZE
        HISTSIZE=0
        HISTSIZE=H
}

또는 원하는 경우 함수를 .bashrc에 넣으십시오. 그러나 그런 식으로 함수 뒤에 export 문이 필요할 수도 있습니다. 확실하지 않고 파일이 업데이트되면 아마도 함수가 손실되었을 것입니다. 나도 확실하지 않습니다. D.
.bashrc 또는 'custom'파일을 편집 할 때 터미널을 다시 시작해야합니다.


1

저에게 CentOS 7에 대해 PuTTY를 사용하면 clear가 스크롤 백에 clear 명령 만 남기고 clear 명령의 두 인스턴스 인 "clear && clear"를 실행하면 스크롤이 완전히 지워지고 스크롤 막대가 없습니다. 해봐 그것은 이상한 해결책이지만 여기서는 스크롤 백을 효과적으로 지우지 못했습니다.


0

~/.inputrc전체 지우기를 F12다음 에 바인딩 하기 위해 추가되었습니다 .

"\e[24~":'!echo -ne \047\\0033\\0143\047\r'

0

Fedora 30에서는 $ HOME / .bash_history 파일을 제거하여 기록을 삭제합니다. 키보드를 통해 터미널 기록 파일을 지우는 가장 쉬운 방법은 다음과 같습니다.

  • Alt+ F4를 눌러 각 그놈 터미널 창을 닫고 필요에 따라 Alt+ Tab또는 Alt+ Shift+ 를 통해 창을 순환 Tab합니다. .bash_history 파일은 닫힐 때 작성되거나 업데이트되므로 모든 터미널 창을 닫아야합니다.
  • Alt+를 누릅니다 F2.
  • 키를 입력 nautilus하고 눌러 Enter그놈 파일 응용 프로그램 (이전의 노틸러스)을 엽니 다.
  • 숨겨진 파일을 표시하려면 필요한 경우 Ctrl+를 누르십시오 H.
  • 유형 .bash_history(창을 연 직후에 입력 한 경우 검색 창에 나타나야하며, 그렇지 않으면 Ctrl+ 를 통해 검색 창에 액세스 할 수 있음 L).
  • 아래쪽 화살표 키를 눌러 파일을 선택하십시오. 이는 유일한 검색 결과 여야합니다.
  • Shift+ Delete를 눌러 파일을 영구적으로 삭제하십시오. 수정되지 않은 Delete키를 대신 사용 하면 휴지통 폴더를 통해 .bash_history 파일에 계속 액세스 할 수 있습니다.

-2
cat /dev/null > ~/.bash_history && history -c && exit

당신이 할 수있는 최소한의 것은 답을 설명하고 형식을 지정하는 것입니다.
역설

(1) OP가 이전 명령 의 메모리 (이력) 를 삭제하려고하는지 확실하지 않습니다 (질문은 터미널 에 관한 것입니다 ). 당신은 그것을 볼 수 없지만 history -c두 개의 이전 답변으로 제시되었으며 질문에 대한 정답이 아닌 것으로 삭제되었습니다. 터미널 창을 닫으면 (아마) 이전 명령의 단말기의 메모리가 지워집니다 동안 (2), 그건 지금까지 영업 그렇게하고 싶은 것이 분명에서. … 그리고 PS 단일 exit명령으로 터미널 창을 닫을 수있는 것은 아닙니다.
G-Man
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.