control+rKomuta geçmişimi yinelemeli olarak aramaktan zevk alıyorum. Kullanmak istediğim birkaç iyi seçenek buldum:
# 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
Benim için tek sorun, erasedupssadece sıralı kopyaları silmektir - bu komut dizileriyle:
ls
cd ~
ls
lsKomut aslında iki kez kaydedilecektir. Periyodik olarak w / cron çalışması hakkında düşündüm:
cat .bash_history | sort | uniq > temp.txt
mv temp.txt .bash_history
Bu, kopyaları çıkarmayı başarır, ancak maalesef sipariş korunmazdı. Ben yapmazsam sortdosyayı ilk inanmıyorum uniqdüzgün çalışabilir.
.Bash_history'deki sıralarımı koruyarak kopyalarımı nasıl kaldırabilirim?
Ekstra kredi:
.bash_historyDosyanın üzerine bir komut dosyası ile yazmak ile ilgili herhangi bir sorun var mı? Örneğin, bir apache günlük dosyasını kaldırırsanız, dosya ile killolan bağlantısını kesmek için bir nohup / reset sinyali göndermeniz gerektiğini düşünüyorum . Eğer .bash_historydosyada durum buysa , belki de bir şekilde psfiltreleme komut dosyası çalıştırılmadan önce bağlı oturum olmadığından emin olmak için kontrol edebilir ve kullanabilirim ?
historyKomuta tüm seçenekler için man sayfasını bulamıyorum . Nereye bakmalıyım?
ignoredupsyerine deneyin ve bununerasedupssizin için nasıl çalıştığını görün.