私はターミナルを頻繁に使用し、時にはコマンドを実行していますが、これは他の人に見られたくないものではありませんが、誤って矢印を押して誤って実行すると多くのトラブルを引き起こすコマンドが増えます。
だから、特定のコマンドの実行時に履歴の記録を停止し、実行した後にのみ記録を開始できるターミナルの「シークレットモード」があるのか、それを作成できるのか疑問に思っていますもう一度履歴の記録を開始し、「シークレットモード」を終了するか、単にターミナルを再起動しますか?
後で.bash_history
からデータを削除することに気付いたので、そもそもそこで記録を停止するか、少なくともどこかに記録しようとしたらもっと簡単だったはずです。許可されず、記録しないだけになります。
コマンドを履歴に入れずに実行する:
コマンドの前にスペースを入れるだけです。 Bashは、先頭にスペースが追加されたコマンドを無視します。
例: Spaceecho "Some secret text"
注:これは、HISTCONTROL
変数がignorespace
またはignoreboth
に設定されている場合にのみ機能します。
履歴を一時的に無効にします:
set +o history
または Spaceshopt -uo history
は履歴を無効にします。set -o history
またはshopt -so history
を実行して、再度有効にします。現在のセッションの履歴を無効にします(セッションからのコマンドを覚えていません):
unset HISTFILE
注:コマンドを押すと表示されます Up ターミナルを閉じるまで。
履歴からコマンドを削除します:
走る Spacehistory | grep "part of your secret command"
以前に実行されたコマンドのリストが次の形式で表示されます。
casa@portátil:~$ history | grep pkill
302 pkill $$
467 pkill gone-cal
468 pkill actionaz
500 pkill chrome
550 pkill super
コマンドの左側でエントリ番号を選択します。でコピーできます Ctrl+Shift+C
走る Spacehistory -d <number>
ここで、<number>
は、エントリを削除するエントリ番号です。
その番号を貼り付けることができます Ctrl+Shift+V
その他の興味深い回答:
作業後にコマンドhistory -cw
を追加することにより、特定の端末セッションの履歴を簡単に削除できます。コマンドを実行する前に端末を閉じないでください。
shopt -uo history
が最善を尽くすはずです。
HISTFILE
(など)変数を削除しても、 Up 履歴が記録されますが、ディスクにプッシュされません。これはあなたにとってポジティブなことかもしれませんし、そうでないかもしれませんが、あなたがそれについて言及したならば、私はあなたがより良いものを望んでいると思います。 shopt
履歴設定を変更すると、履歴メカニズム全体がトリガーされなくなります。
shopt -so history
(-s
および-u
がそれぞれ設定および設定解除されます)を使用して、ロギングをオンに戻すことができます。
コマンド自体はおそらくログに記録されるため、変数をクリアする前に履歴に追加されるのを停止するためのスペースを先頭に追加してください。
履歴ファイルにログを記録せずに現在のシェルを強制終了する別の方法は次のとおりです。
kill -9 $$
これにより、bash(およびおそらく他のシェルも)自身にSIGKILLシグナルを送信し、その場でそれを殺し、ディスクに何かを書き込むことを防ぎます。
現在のセッションのコマンド履歴を一時的に無効にするには、HISTFILE環境変数を一時的に設定解除できます。
unset HISTFILE
セッションがアクティブな間は、通常どおり履歴にアクセスできますが、ディスクには保存されません。
同じセッションでリバースするには(すべての変更が記録されます)
HISTFILE=$HOME/.bash_history
現在のシェルセッションの履歴行を変更できます。歴史をさかのぼる場合(例: Up または Ctrl+P)、行を変更せずに実行せずに、変更されたバージョンの行のみが保存されます。任意の方法で変更できます。適切な選択には、使用が含まれます Ctrl+U 行を完全に空白にするか、 Esc# #
コメント文字を先頭に配置します。
行を実行せずに残すには、ヒットしないことを忘れないでください Return (Enter)。私がしていることは、履歴の最新の行に戻ることです Esc>。
(の代わりに Esc に続く >、ほとんどの端末で保持できます Alt を押す >;同じことが Esc# 上記の提案。)
注:この方法では、以前のセッションのエントリを永続的に変更することはできません。これらの変更は、セッションの終了時にHISTFILE
に適用されません。
.bash_historyを読み取り専用にすることもできます。最初にファイルを空にしてから実行します:
chattr +i .bash_history
画面セッションで機密コマンドを実行し、完了したらセッションを破棄できます。
または、そのスクリーンセッションを存続させたまま、切り離して、実際には別の方法で危険なコマンドに上矢印を使用できるようにする場合にのみアクセスできます。
tmux
、screen
などの端末マルチプレクサを使用することもできます。したがって、tmux
またはscreen
の履歴は保存されません。
個人的にはmksh
を使用しており、このシェルにはデフォルトで履歴ファイルがありません。つまり、mksh
やdash
(デフォルトで付属)などの代替シェルを起動して、ユーザーに見せたくないコマンドを実行し、終了したら終了できます。 bash
履歴には、代替シェルを起動したことが記録されるだけです。