주어진 쉘에서 bash_history를 일시적으로 중단 하시겠습니까? 방법이 있습니까? 기록 된

일종의 “시크릿”모드로 들어가기 위해 bash에서 기록 추적을 일시적으로 중지하는 방법이 있습니까? 기록 된 민감한 재무 정보를 원하지 않는 물건을 터미널에 입력하고 있습니다.



답변

이것은 당신이 찾고있는 것이어야합니다 :

unset HISTFILE

에서 man bash

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

또는이 기능을 껐다가 다시 켜려면 사용하기가 더 쉬울 수 있습니다 set.

끄다

set +o history

켜다

set -o history

답변

bash를 사용하여 HISTCONTROL="ignorespace"히스토리에 기록하지 않으려는 명령을 공백으로 설정 하고 선행하십시오. 조치를 잊어 버린 경우 history -d <number>특정 항목 history -c을 삭제하거나 전체 명령 기록을 지우는 것도 있습니다.


답변

HISTCONTROL포함되어 있는지 확인하십시오 ignorespace. 당신은 아마 추가 할 수 있습니다 HISTCONTROL=ignorespace(또는 HISTCONTROL=ignoredups:ignorespace당신 또는 무언가) ~/.bashrc. 그런 다음 공백으로 시작하는 명령 줄은 기록에서 생략됩니다.

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

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

답변

여러 명령을 저장하지 않아도되지만 여전히 위쪽 화살표를 사용하여 이전 명령에 액세스하려면 다음을 사용하십시오.

$ bash                        # open a new session.
$ unset HISTFILE              # avoid recording commands to file.
$ commands not recorded
.
.
$ exit
$

명령 저장 방법을 제어하는 ​​네 가지 방법 (레벨)이 있습니다.

  1. 첫 번째이자 가장 간단한 방법은 다음을 사용하는 것입니다 ignorespace.

    $ HISTCONTROL="ignorespace${HISTCONTROL:+:$HISTCONTROL}"

    그러면 메모리 목록에 기록하지 않으려는 명령 앞에 공백을 사용할 수 있습니다 history. 결과적으로 파일로 보낼 수있는 메모리에 기록 된 명령이 없으므로에 나열된 파일로 하나의 명령을 보내지 않아도 됩니다 $HISFILE.

  2. 에 파일에 명령을 기록하지 마십시오 $HISTFILE.

    $ unset HISTFILE

    설정하지 않으면, 쉘이 종료 될 때 명령 히스토리가 저장되지 않습니다.

    Null HISTFILE=''및 / 또는 HISTFILE=/dev/null동일한 효과 로 작동하도록 설정되었습니다 . 명령이 여전히 메모리 목록에 기록되고 있음을 이해 history하거나 명령 또는 위쪽 화살표를 시도하십시오 .

    경고 : 쉘이 존재하기 전에 HISTFILE을 재설정하면 메모리에 기록 된 모든 내용이 파일에 기록 될 수 있습니다.

  3. 메모리의 히스토리 목록에 명령을 기록하지 마십시오 . 그리고 메모리에 있지 않기 때문에 파일에 기록 할 수 없습니다.

    $ shopt -ou history              # or set +o history

    shopt -os history(또는 set -o history)로 다시 활성화

  4. 메모리의 히스토리 목록에서 모든 명령을 제거하십시오.

    $ HISTSIZE=0

    모든 명령은 (메모리에서) 지워 지므로 변수가 유효한 숫자 값으로 다시 설정 될 때까지 파일에 아무것도 저장할 수 없습니다.


답변

기록을 끄는 간단한 방법이 하나 있으므로 명령이 .bash_history파일에 저장되지 않습니다 .

명령 앞에 공백이나 탭 공간을 넣어야 명령이 기록에 저장되지 않습니다. 예를 들면 다음과 같습니다.

$ ls 
print the list of file 
$ history 
ls
history

$  pwd
print the current  working directory 
$ history 
ls
history

pwd는 앞에 공백이 있기 때문에 명령은, 역사에 매장을받지 않습니다.


답변

export HISTFILE=/dev/null 

그것이 나의 길입니다. 설정되지 않은 HISTORY / HISTFILE / HISTCONTROL 등이 작동하지 않는 경우 / dev / null로 내 보내면 항상 효과가 있습니다.