특정 쉘에서 bash_history를 일시적으로 중단하시겠습니까?

특정 쉘에서 bash_history를 일시적으로 중단하시겠습니까?

Bash에서 기록 추적을 일시적으로 중단하여 일종의 "스텔스" 모드로 들어갈 수 있는 방법이 있습니까? 기록하고 싶지 않은 민감한 금융 정보를 단말기에 입력하고 있습니다.

답변1

이렇게 하면 bash가 쉘을 종료할 때 새로운 기록을 저장하지 못하게 됩니다:

unset HISTFILE

구체적으로 다음과 같습니다 man bash.

HISTFILE이 설정되지 않거나 기록 파일에 쓸 수 없는 경우 기록이 저장되지 않습니다.

재설정하시면 HISTFILE이력이 정상적으로 저장되니 주의하시기 바랍니다. 이는 쉘 세션이 종료되는 순간에만 영향을 미칩니다.

또는 세션 중에 이 기능을 껐다가 다시 켜려는 경우 사용하기 더 쉬울 수 있습니다.set:

set +o history # temporarily turn off history

# commands here won't be saved

set -o history # turn it back on

답변2

bash를 사용하여 HISTCONTROL="ignorespace"기록에 기록하지 않으려는 명령을 설정하고 명령 앞에 공백을 추가하십시오. 조치를 취하는 것을 잊은 경우 history -d <number>특정 항목을 삭제하거나 history -c전체 명령 기록을 지울 수도 있습니다.

답변3

HISTCONTROL포함 해야 ignorespace합니다 HISTCONTROL=ignorespace. 그러면 공백으로 시작하는 모든 명령줄이 기록에서 생략됩니다.HISTCONTROL=ignoredups:ignorespace~/.bashrc

또 다른 가능성은 기록을 저장하지 않고 새로운 bash 세션을 시작하는 것입니다.

$ bash
$ unset HISTFILE
$ sooper-sekret-command
$ exit
$ #back in the parent shell

답변4

명령이 파일에 저장되지 않도록 기록을 끄는 쉬운 방법이 있습니다 .bash_history.

명령이 기록에 저장되지 않도록 명령 앞에 공백이나 탭 문자를 넣어야 합니다. 예를 들어:

$ ls 
print the list of file 
$ history 
ls
history

$  pwd
print the current  working directory 
$ history 
ls
history

명령 pwd앞에 공백이 있기 때문에 기록에 저장되지 않습니다.

관련 정보