리눅스에서 터미널 히스토리 삭제하기


170

Linux 터미널에서 up 키를 사용하면 이전 명령을 다시 사용할 수 있습니다. 훌륭한 기능. 그러나 명령의 민감한 세부 정보를 사용하여 mysql을 mysql에 로깅하기 시작했습니다.

이력을 어떻게 삭제합니까?


죄송합니다. bash를 사용하고 있다는 것을 완전히 잊었습니다.
Frank Vilea

16
이 질문이 마감되었으므로 답변으로 추가 할 수 없습니다. 이 명령으로 bash에게 특정 세션에 대한 기록을 저장하지 말라고 할 수 있습니다.export HISTFILE=/dev/null
Chris Eberle

1
나는 또한이를 추가 할 수 있습니다 민감한 명령 줄에 정보를 입력하지 마십시오 - 프롬프트 대기 : D
벌새

답변:


343

다음과 같이 bash 기록을 지울 수 있습니다.

history -cw


4
이 답변과 정말 같습니다. 삭제하기보다는 즉시 적용 .bash_history되므로 셸을 다시 시작해야 적용됩니다.
mikemaccana

1
Ubuntu 14.04 시스템에서 작동하지 않습니다. 역사는 새로운 터미널과 함께 나타납니다. 일이 모든입니다 >~/bash_history. 그래도 터미널을 다시 시작해야합니다.
Aniket Thakur

Mac OS X El Capitan (버전 10.11.2에서 테스트)에서도 작동하지만 다음 행을 ~/.bash_profile: 에 추가 한 다음 export SHELL_SESSION_HISTORY=0a source ~/.bash_profile를 끝내고 종료하고 터미널 앱을 다시 시작해야합니다. 이 내보내기 명령의 기능을 이해하려면 다음 링크를 확인하십시오. superuser.com/questions/950403/…
King-Wizard

1
-c로 충분하지 않습니까? 매뉴얼에 따르면 -c는 모든 항목을 삭제하여 기록 목록을 지 웁니다. -w는 현재 히스토리를 히스토리 파일에 추가하고 히스토리 목록에 추가합니다. 그냥 -c가 잘 작동합니다.
Kahn

24

bash를 사용하면 터미널 히스토리가 .bash_history라는 파일에 저장됩니다. 삭제하면 기록이 사라집니다.

그러나 MySQL의 경우 더 나은 방법은 명령 줄에 암호를 입력하지 않는 것입니다. 값없이 -p 옵션을 지정하면 암호를 입력하라는 메시지가 표시되고 기록되지 않습니다.

매번 비밀번호를 입력하지 않으려는 경우 다른 옵션은 my.cnf 파일에 비밀번호를 저장하는 것입니다. ~ / .my.cnf라는 파일을 다음과 같이 만듭니다.

[client]
user = <username>
password = <password>

파일을 읽을 수 있도록 파일 권한을 변경하십시오.

물론이 방법으로 비밀번호는 이전에 .bash_history에 저장된 것처럼 홈 디렉토리의 일반 텍스트 파일로 저장됩니다.


4
지정 +1 -p. 이것은이 문제에 대한 완전히 올바른 접근법입니다
andyb

2
실제로 내 Linux 시스템에서 bash는 기록을 기억하고 로그 아웃시 파일을 다시 만듭니다. 로그인, 파일 삭제, 다시 로그인, 첫 번째 셸에서 로그 아웃, 파일을 삭제 한 다음 두 번째 셸에서 로그 아웃해야합니다.
cHao

지적 해 주셔서 감사합니다. 암호가 길어서 위쪽 화살표를 누르는 것이 훨씬 빠르기 때문에 명령에서 직접 -p + password 옵션을 사용하여 현명하다고 생각했습니다. 재고 시간 ..
Frank Vilea

5
unset HISTFILE현재 기록이 저장 되지 않도록 잊지 마십시오 .
Ignacio Vazquez-Abrams

답변을 편집하고 매번 비밀번호를 입력하지 못하게하는 솔루션을 추가했습니다.
sagi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.