特定のシェルで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

もう1つの可能性は、記録を保存せずに新しい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の前にスペースがあるため、履歴に保存されません。

関連情報