回答:
シェルの履歴は、HISTFILE
変数によって示されるファイルに保存されます。そう:
unset HISTFILE
これはzshにも適用されますが$HISTFILE
、シェルの開始時に示されるファイルに保存し続けるkshには適用されません(逆に、シェルを開始したら履歴をkshに保存することにします)。
短い答え:
プロンプトでこれを入力します。
$ kill -9 $$
これにより、シェルはシグナルをトラップする、履歴を保存する、実行する、停止したジョブについて警告するなど、何もできずにすぐにシェルを強制終了します~/.bash_logout
。
長い答え:
注:これらのオプションは相互に排他的ではありません。それらはすべて一度に使用できます。
オプション1:
履歴ファイルを整理することに関して完璧主義者である場合、できることは、HISTIGNORE
記録したくないコマンドのグロブを含めるように変数を変更することです。たとえば、追加する場合HISTIGNORE='ls*:cd*'
、あなたに~/.bashrc
、その後の任意のインスタンスをls
し、cd
あなたの履歴ファイルに挿入されていません。
オプション2:
どのコマンドが履歴から除外されるかをコマンドごとに制御する場合は、設定できます HISTCONTROL='ignorespace'
は、スペースで始まるコマンド行を省略するコマンドを。を使用ignoreboth
すると、繰り返される行も省略されます。次に、コマンドを入力する前にスペースバーを押すと、履歴ファイルに表示されなくなります。
オプション3:
ターミナルを閉じたときにシェルがすぐに終了するようにしたい場合はtrap
、ターミナルプログラムがシェルに送信するシグナル(xterm
たとえば、送信SIGHUP
してシェルが終了するのを待つ)と、履歴を保存せずに終了することができますこの信号を受信します。これを追加してください~/.bashrc
:
# don't record history when the window is closed
trap 'unset HISTFILE; exit' SIGHUP
kill -9
他のすべてが失敗したような悲惨な状況を除いて、何かを使用することを促進することは良い考えだとは思いません。
イーライはすでにあなたにBashの正しい答えを与えていましたHISTSIZE=0
。
GNU screen用にメソッドを追加するだけです。Ctrl+A
(画面エスケープシーケンス)を押してからを押します:scrollback 0
。これにより、スクロールバック履歴が削除されます。これで、すぐに:scrollback 15000
スクロールバックバッファサイズをリセットできます。
screen(1)
ですか?
scrollback=0
、同様に行う必要があります。
Ctrl+a H
もCtrl+a :clear
の歴史を削除します。あなたが必要Ctrl+a :scrollback 0
です。自分でテストできます。フレッシュスクリーンセッションを開始します。今すぐcat /etc/passwd
。次に、上記のいずれかを実行します- Ctrl+a H
またはCtrl+a :clear
。ここで、donig aにCtrl+a [
続いて上矢印キーを押してスクリーンバッファからコピーしてみて、上に移動してコピーできる範囲を確認します。にCtrl+a :scrollback
続いてを実行した場合clear
、スクロールバックバッファはないため、現在のウィンドウで表示できる範囲までしか移動できません。
set HISTFILE
次回ログインする必要はありませんか?(これが正しいか間違っている場合だけ言う)