Saya sangat menikmati menggunakan control+rsecara rekursif mencari riwayat perintah saya. Saya telah menemukan beberapa opsi bagus yang ingin saya gunakan:
# ignore duplicate commands, ignore commands starting with a space
export HISTCONTROL=erasedups:ignorespace
# keep the last 5000 entries
export HISTSIZE=5000
# append to the history instead of overwriting (good for multiple connections)
shopt -s histappend
Satu-satunya masalah bagi saya adalah bahwa erasedupshanya menghapus duplikat berurutan - sehingga dengan serangkaian perintah ini:
ls
cd ~
ls
The lsperintah akan benar-benar disimpan dua kali. Saya sudah berpikir tentang menjalankan w / cron secara berkala:
cat .bash_history | sort | uniq > temp.txt
mv temp.txt .bash_history
Ini akan mencapai penghapusan duplikat, tetapi sayangnya pesanan tidak akan dipertahankan. Jika saya tidak sortfile terlebih dahulu saya tidak percaya uniqbisa berfungsi dengan baik.
Bagaimana saya bisa menghapus duplikat di .bash_history saya, menjaga ketertiban?
Kredit tambahan:
Apakah ada masalah dengan menimpa .bash_historyfile melalui skrip? Sebagai contoh, jika Anda menghapus file log apache saya pikir Anda perlu mengirim sinyal nohup / reset dengan killitu flush itu koneksi ke file. Jika demikian halnya dengan .bash_historyfile, mungkin saya entah bagaimana dapat menggunakan psuntuk memeriksa dan memastikan tidak ada sesi yang terhubung sebelum skrip penyaringan dijalankan?
historyperintah. Di mana saya harus mencari?
ignoredupsalih-aliherasedupssebentar dan lihat bagaimana itu bekerja untuk Anda.