control+r
Komuta 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, erasedups
sadece sıralı kopyaları silmektir - bu komut dizileriyle:
ls
cd ~
ls
ls
Komut 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 sort
dosyayı ilk inanmıyorum uniq
düzgün çalışabilir.
.Bash_history'deki sıralarımı koruyarak kopyalarımı nasıl kaldırabilirim?
Ekstra kredi:
.bash_history
Dosyanı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 kill
olan bağlantısını kesmek için bir nohup / reset sinyali göndermeniz gerektiğini düşünüyorum . Eğer .bash_history
dosyada durum buysa , belki de bir şekilde ps
filtreleme komut dosyası çalıştırılmadan önce bağlı oturum olmadığından emin olmak için kontrol edebilir ve kullanabilirim ?
history
Komuta tüm seçenekler için man sayfasını bulamıyorum . Nereye bakmalıyım?
ignoredups
yerine deneyin ve bununerasedups
sizin için nasıl çalıştığını görün.