Bash 기록을 삭제하는 것만으로는 충분하지 않은 이유는 무엇입니까?

Bash 기록을 삭제하는 것만으로는 충분하지 않은 이유는 무엇입니까?

배쉬 기록을 삭제하면 배쉬 기록이 지워지는 것으로 충분하다고 생각했는데, 어제 고양이가 키보드 오른쪽을 만지작거리고 컴퓨터로 돌아왔을 때 한 달 전에 입력했던 내용을 확인하고 미친 듯이 모든 키를 눌러 무엇이 그것을 유발하는지 찾아보세요. .bash_history를 삭제한 후에도 UPARROW 키가 내 bash 기록을 표시하는 것으로 나타났습니다.

Bash 기록을 실제로 어떻게 삭제할 수 있나요?

답변1

어떤 경우에는(특정 bash 버전) 다음을 수행합니다.

$ history -c; history -w

아니면 단순히

$ history -cw

메모리의 기록을 지운 다음(위쪽 및 아래쪽 화살표에는 나열할 명령이 없음) 쓰기를 수행합니다.저것$HISTFILE파일 에 추가합니다 ( $HISTFILE실행 중인 bash 인스턴스에 의해 잘린 경우).

때로는 bash가 선택합니다.아니요$HISTFILEhistappend옵션이 설정되지 않고 $HISFILEZIZE0으로 설정된 경우에도 파일이 잘립니다.

이 경우 nuke 옵션은 항상 유효합니다.

history -c; >$HISTFILE

메모리에 기록된 명령 내역 목록과 이전에 파일에 기록된 모든 명령을 지웁니다. 이렇게 하면 실행 중인 셸에는 메모리나 디스크에 기록된 기록이 없지만, 다른 실행 중인 bash 인스턴스(기록이 활성화된)에는 $HISTFILEbash가 시작될 때(또는history -r 복사할 때) 읽은 전체 명령 세트가 있을 수 있습니다.

의 경우반품현재 세션이 필요한 다른 항목(새 명령 없음)은 기록 파일에 기록되지 않으며 unset HISTFILE그러한 로깅은 차단됩니다.

답변2

bash종료 시 쉘 변수가 HISTFILE파일 이름으로 설정된 경우 파일에 기록되는 세션 기록이 메모리에 있습니다.bash

지정된 파일을 삭제 HISTFILE하고 변수를 설정 해제한 다음 종료하면 bash셸 세션은 지속적인 기록을 남기지 않습니다.

HISTFILE변수 설정을 해제하지 않고 파일을 삭제하면 영구 기록만 지워지지만 현재 세션의 기록은 셸이 종료될 때 저장됩니다.

답변3

비슷한 문제가 발생하여 다음 두 명령을 실행하여 bash 기록을 삭제했습니다.

  1. $ history -c
  2. $ cat /dev/null > ~/.bash_history

다음으로 모든 터미널을 종료하고 새 터미널을 시작했는지 확인하고 위쪽 화살표 버튼을 눌렀을 때 기록 명령이 표시되지 않아야 합니다.

답변4

파일 관리자를 열고 숨김 파일 표시를 선택하십시오. 홈 폴더에서 찾으세요 .bash_history. 텍스트 편집기를 사용하여 엽니다. 파일 내용을 삭제합니다. 임무 완료.

관련 정보