터미널 기록을 지우려면 어떻게해야합니까? 종료하고 새 레코드를

Linux Mint 17.1 Rebecca를 약 2 일 동안 사용하고 있으며 실수로 터미널에 비밀번호를 입력했는데, 이제 이전에 입력 한 명령 내역 목록에 표시됩니다.

터미널 기록을 완전히 지우고 싶습니다. 나는 역사를 영원히 지우겠다고 생각한 터미널에서 다음 명령을 사용해 보았지만 그렇지 않습니다.

history -c
reset
tput reset

위의 명령은 터미널에서 히스토리를 “지울 것”이지만 종료하고 새 레코드를 가져 오면 이전의 모든 히스토리가 여전히 존재하며-히스토리 명령을 사용하고 키보드의 위쪽 화살표를 눌러 다시 나열 할 수 있습니다. . 나는 내 역사를 완전히 지울 때까지 이런 일이 일어나기를 원하지 않는다. 그런 다음 계속 사용하고 싶다.

터미널 기록을 완전히 지우고 영원히 새로 시작할 수있는 방법은 무엇입니까?

참고 : 기록을 저장하지 않고 터미널을 종료하고 싶지 않은 경우이 인스턴스에서 영원히 지우십시오.



답변

reset또는 tput reset터미널에만 일을합니다. 이력은 전적으로 쉘에 의해 관리되며 영향을받지 않습니다.

history -c현재 쉘에서 히스토리를 지 웁니다. 암호를 입력하고 해당 셸을 종료하지 않았거나 기록을 명시 적으로 저장하지 않은 경우 충분합니다.

bash를 종료하면 히스토리가 히스토리 파일에 저장되며 기본적으로 .bash_history홈 디렉토리에 있습니다. 보다 정확하게는 현재 세션 중에 작성된 히스토리가 파일에 추가됩니다. 이미 존재하는 항목은 영향을받지 않습니다. 히스토리 파일을 현재 쉘 히스토리로 겹쳐 쓰려면을 실행하십시오 history -w.

모든 내역 항목을 제거하는 대신 .bash_history편집기에서 열고 원하지 않는 행을 제거 할 수 있습니다. history모든 항목을 표시 한 다음 history -d원하지 않는 항목을 삭제하고 마지막 history -w으로 저장 하여 bash 내에서 덜 편리하게 수행 할 수도 있습니다 .

히스토리 파일을 편집 한 후에도 이전 버전의 파일에서 디스크 어딘가에 비밀번호가 여전히 존재할 수 있습니다. 더 이상 파일 시스템을 통해 검색 할 수는 없지만 디스크에 직접 액세스하여 파일을 찾는 것이 여전히 가능하지만 쉽지는 않습니다. 다른 곳에서이 암호를 사용하고 디스크를 도난 당했거나 누군가가 디스크에 액세스하면 문제가 될 수 있습니다.


답변

history -c를 시도했지만 종료하고 다시 열면 역사가 다시 나타납니다.

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

그러면 기록 파일에 저장된 기록과 현재 세션의 기록이 지워집니다 (종료시 파일에 저장되지 않음 bash). 그런 다음 쉘을 종료합니다. 다음 쉘 세션에는 히스토리가 없습니다.


답변

모든 히스토리 항목을 제거하는 대신 터미널에 다음 명령을 입력하십시오.

  1. history -c (이력 삭제)
  2. history -w (이력 저장)

답변

여기에는 보안 문제가 있으므로 기록 파일을 안전하게 삭제하는 것을 고려해야합니다.

$ shred -u ~/.bash_history && touch ~/.bash_history


답변

같은 문제에 직면 한 신생 생물로서 나는 역사 파일을 삭제하고 다시 만드는 다소 야만적 인 편의에 의지했다.

rm .bash_history
touch .bash_history

그것은 내가 알고있는 불쾌한 부작용을 일으키지 않고 나를 위해 일했습니다.


답변

유형: history -c; rm ~/.bash_history

history -c현재 세션의 기록을 rm ~/.bash_history지우고 장기 기록을 history -c; rm ~/.bash_history지우 므로 둘 다 지 웁니다.


답변