私はMac OSXで作業しているので、bashを使用していると思います...?
時々、記憶に残したくないものを入力します。どうすれば削除できますか?
履歴に保存せずにコマンドを実行する場合は、追加のスペースをコマンドに追加します
Prompt$ echo saved
Prompt$ echo not saved \
> # ^ extra space
これが機能するには、ignorespace
にignoreboth
またはHISTCONTROL
が必要です。たとえば、実行
HISTCONTROL=ignorespace
この設定を永続化するには、.bashrc
。
コマンドをすでに実行していて、履歴から削除したい場合は、最初に
history
履歴にあるコマンドのリストを表示します。削除する番号(1234など)の横にある番号を見つけて実行します。
history -d 1234
さらに、削除する行がすでに$ HISTFILEに書き込まれている場合(通常、デフォルトでセッションを終了すると発生します)、$ HISTFILEに書き戻す必要があります。そうしないと、新しい行を開いたときにその行が再び表示されます。セッション:
history -w
すべての履歴をクリアするには、次を使用します
history -c
1行を削除するには、
history -d linenumber
私はこれを~/.bashrc
、コマンド$ forget
履歴から前のコマンドを削除
function forget() {
history -d $(expr $(history | tail -n 1 | grep -oP '^ \d+') - 1);
}
~/.bash_history
のエントリはいつでも編集および削除できます。1つまたは複数のエントリを削除する場合に便利です。
Bashセッション全体を忘れたい場合は、現在のbashプロセスをkill
できます。変数$$
現在のシェルのpid
を保持すると、次のことができます。
kill -9 $$
簡単な手順:
echo $HISTFILE
を使用して、端末の履歴ファイルの場所を確認しますhistory
コマンドを実行することでそれを検証できますUbuntuでは(確かに、他のLinuxディストリビューションでもMacOSでも同じように機能するでしょう)bash履歴ファイルは、任意のテキストエディターで簡単に編集できます。
$ nano ~/.bash_history
保存場所がわからない場合は、次のようにして見つけることができます。
$ echo $HISTFILE
または、もう少し一般的な方法で行うこともできます。
$ nano $HISTFILE
履歴をクリアした後、変更を書き込む必要があります。そして、履歴に履歴ワイプコマンドを含めたくない場合は、次のようにコマンドを実行する必要があります。
history -c && history -w && logout
幸運を。
履歴ファイルから1行を削除するには、-dオプションを使用します。たとえば、上記のシナリオのようにクリアテキストのパスワードを入力したコマンドをクリアする場合は、履歴ファイルで行番号を見つけてこのコマンドを実行します。
$ history -d 2038
Bash履歴からすべてのエントリを削除またはクリアするには、-cオプションを指定して以下のhistoryコマンドを使用します。
$ history -c
または、以下のコマンドを使用して、ファイル内で最後に実行されたすべてのコマンドの履歴を完全に削除できます。
$ cat /dev/null > ~/.bash_history
また、Bash 5では、範囲を削除することもできます
history -d 511-520
1- bash端子タイプ
history
#これは、履歴.bash_historyファイル内のすべてのコマンドを行番号とともにリストします
例:
...
987 cd
988 ssh [email protected]
990 exit
991 cd
2-削除するCMD行番号を選択します
history -d 988
注:たとえば最後の3つのCMDを削除する場合は、下から3番目の行番号ex:988を選択し、CMD history -d 988
を3回続けて繰り返します。