OS Xで.bash_historyに保存せずに端末コマンドを実行しますか?


19

このサイトでは、Linux上でspaceターミナルコマンドの前にaを追加してそれを寄せ付けないと言ってい.bash_historyます。

これはMac OS Xでは機能しないようです。履歴に保存せずにターミナルで単一のコマンドを実行する方法を知っている人はいますか?

私は歴史をクリアしたくありません。

ここに画像の説明を入力してください


端末コマンドの前に ``(スペース)を追加しても、履歴から除外されない
ウォーレン

2
@warrenいいえ、そうです。bashで機能を有効にする必要があります。
-goweon

@firebat-正しい:ただし、有効にする必要があるため、どこでも機能する場合と機能しない場合があります :)
ウォーレン

回答:


24

〜/ .bashrcに次の行を追加します

export HISTCONTROL=ignorespace

次にsource ~/.bashrc、設定を更新します

これにより、bashでその機能が有効になります。動作しない場合は、OS Xがlinuxとは少し異なる方法で読み込むため、〜/ .bashrcではなく〜/ .bash_profileに追加する必要があります。


それで2つのオプションを使用するにはどうすればよいですか?使用したいのですexport HISTCONTROL=erasedups,ignorespaceが、構文が機能しないと思います
...-cwd

2
export HISTCONTROL=erasedups:ignorespace
-goweon

2
しかし、実際にはそうだと思いますexport HISTCONTROL=ignoredups:ignorespace
-goweon

3
「ignoredups」設定は、繰り返される行を無視します。「ls」を20回続けて入力すると、履歴の1つだけになります。ただし、「ls」、「ps」、「ls」の順に入力すると、毎回「ls」と「ps」が保存されます(bash 3を使用して「erasedups」を設定しない限り)。それが設定されている場合、bash履歴に重複はまったく入力されません。- cyberciti.biz/faq/bash-for-loop-array
CWD

1
これは私にはうまくいきません。私は両方試してみました export HISTCONTROL=erasedups:ignorespaceexport HISTCONTROL=ignoredups:ignorespaceexport HISTCONTROL=ignoredups:ignoreboth。しかし、私が取得するのは、セッション間ではなく各セッションの単一のエントリです。つまり、コマンドが.bash_historyセッションの開始時にすでに入力されており、再度入力された場合、履歴に追加されます(そのセッションに対して1回のみ) 。ターミナルを起動したときにすでに `.bash_historyにあるコマンドが再度入力されても追加されないようにするにはどうすればよいですか?
オロム

1

セッションをアクティブに保つことに関心がない場合、これはうまくいくかもしれません:

kill -9 $$

ログアウトする代わりに現在のセッションを強制終了します。つまり、[理論的には]履歴は保存されません。

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