zshellのコマンドが履歴に保存されるのを防ぐ方法は?


回答:


37

HIST_IGNORE_SPACEオプションを使用します。

setopt HIST_IGNORE_SPACE

man zshoptions

HIST_IGNORE_SPACE

行の最初の文字がスペースの場合、または展開されたエイリアスの1つに先頭のスペースが含まれる場合、履歴リストからコマンドラインを削除します。コマンドは、消える前に次のコマンドが入力されるまで内部履歴に残るため、行を簡単に再利用または編集できることに注意してください。別のコマンドを入力せずにすぐに消したい場合は、スペースを入力してReturnキーを押します。


OSXのopen-since-opence-in-a-terminal-window-in-in-a-terminal-window-in-open-in-open-opence 間違ったツリーをbarえていることに気付いたときのために。
ダンローゼンスターク

2
そして、私は予防したいコマンドのために、私は別名を使用してスペースを接頭辞:別名JRNL =「JRNL」
サーガルJauhari

2
@Yar kill -9そのシェル(行ごとの履歴ファイルの書き込みを行わない場合)
Michael Shigorin

1
@MichaelShigorinありがとう!kill -9 $$現在の端末セッションで発行されたすべてのコマンドが履歴に保存されるのを避けるのは本当に素晴らしいです。
ジェフリー

2
@CMCDragonkai unset HISTFILEコマンドブロックの前にできます。HISTFILE後でリセットするか、新しいシェルを開いて、必要なコマンドを履歴に保存する必要があります。
チャウンシーギャレット

2

ZSH履歴に追加するものをより細かく制御したい場合は、でzshaddhistory関数を定義できます.zshrc。次の定義では、正規表現を使用して無視するパターンを定義しています。

function zshaddhistory() {
  emulate -L zsh
  if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
      print -sr -- "${1%%$'\n'}"
      fc -p
  else
      return 1
  fi
}

man zshopts下からの動作HIST_IGNORE_SPACEがまだ存在することに注意してください:

コマンドは、消える前に次のコマンドが入力されるまで内部履歴に残るため、行を簡単に再利用または編集できることに注意してください。

そのため、テストするには、余分なキーを押す必要があります[Enter]。これにより、の出力とhistory↑矢印履歴の両方からコマンドが削除されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.