bash履歴から長すぎるコマンドを削除する簡単な方法(bashコマンドなど)はありますか?一部の長いコマンドはデフォルトでレンダリングされるため、CTRL使用Rできません。 (理想的には、今後も長すぎるコマンドを履歴に保存しないことをお勧めします。)
答え1
次のように bash 関数を作成できます。
myhistory(){
history -w
gawk -i inplace '{if(length($0)<60)print}' "$HISTFILE"
history -c
history -r
}
メモリ内の履歴をファイルに保存したいときに実行し、
history -w
gnuを使用してファイルをawk
編集し、制限(ここでは60)より短い行だけを書き換えます。メモリの記録を消去し、-c
ファイルからメモリに戻ります-r
。
入力されたすべてのコマンドに対してこれを行うには、すべてのプロンプトの前に呼び出されるように設定できますPROMPT_COMMAND='myhistory'
。
答え2
次のコマンドで Bash 履歴を表示できます。
history
ここから履歴から不要なコマンド番号を削除できます。Nコマンド経由
history -d <n>
一度に複数のコマンド番号を指定(したがって削除)できます。
また、コマンドの実行が履歴に保存されないようにするには、コマンドを実行する前にコマンドの前にスペースを追加します。
[root@mylinuxbox ~]# cat /etc/hostname
履歴に保存されます。
[root@mylinuxbox ~]# cat /etc/hostname
いいえ。
@phuclvがコメントで指摘したように、HISTCONTROL
変数(yoursなど)を設定して~/.bashrc
この動作を有効にします。
export HISTCONTROL=ignorespace
答え3
~/.bash_history
エディタを使用してこれらの行を編集および削除できます。