Bash履歴の最後の5行を削除するにはどうすればよいですか?それで、Ubuntuサーバーをリロードしたり、再起動したりしても、まったくそこにないのですか?
history -cは現在のセッションからのみ削除しますが、再ログインするとコマンドが再び表示されるので、最後の5つをクリアします。
私が実行しました:
history
次に、コマンドの番号が表示されます例:
489 cd ..
490 cd .zshrc
491 cat .zshrc
次に、たとえば次を実行します。
history -d 489
history -c
次に、ターミナルを閉じて再度開きますが、まだ現在のセッションでのみ削除された行489が表示されますが、今後のすべてのセッションから完全に削除するにはどうすればよいですか?
お知らせ下さい。
このタスクを実行するにはさまざまな方法がありますが、先に進む前に何かを明確にしましょう。
~/.bash_history
という名前のファイルがあります。これには、古い端末セッション履歴が含まれ、端末を閉じるたびに、履歴がそこに保存されます。
同時に、現在のセッションとともに古いセッションの履歴は、ターミナルを閉じるまでhistory
コマンドによって一時的にアクセスでき、ターミナルは~/.bash_history
ファイルに保存されます。
したがって、~/.bash_history
の最後の5行を削除すると、ターミナルを閉じると、次のセッションで現在のコマンドにアクセスできるようになります。
.bash_historyでwc
を実行すると:
wc -l ~/.bash_history
ほとんどの場合、history | wc -l
の数よりも少ない数を取得します。
ファイルの最後の5行を削除する場合は、次のコマンドを使用できます。
for i in {1..5}; do sed -i '$d' .bash_history; done;
また、現在のセッションの実行で発行された最後の5つのコマンドを除くすべての履歴を保持する場合:
history | awk '{ print $2 }' | head -n -5 > .bash_history
history -c
も実行することを忘れないでください。
次の2つの手順でコマンドラインを使用して、履歴ファイルから削除できます。
history -d <line_number>
と入力すると、指定した行がメモリの履歴から削除されます。 history -w
と入力すると、現在のメモリ内履歴が〜/ .bash_historyファイルに書き込まれます。 2つのステップを合わせて、メモリ内の履歴と.bash_historyファイルから行を永久に削除します。
参照: StackExchange
あなたはこれをとても簡単で簡単に試す必要があると思います。
トレースなしで履歴を削除する方法
history -d $((HISTCMD-1)) && history -d NO_of_History_you_want_to_delete
トレースを残さずにコマンドを実行する場合。
history -d $((HISTCMD-1)) && type_your_command_here_and_execute
エディターで~/.bash_history
を開き、最後の5行を削除します。