Geçmişinizde tek bir komut kaydetmemek için komuttan önce bir boşluk ( ␣burada işaretli olan ) ile devam edin:
$ echo test
test
$ history | tail -n2
3431 echo test
3432 history | tail -n2
$ ␣echo test2
test2
$ history | tail -n2
3431 echo test
3432 history | tail -n2
Bu davranış, ~/.bashrcdosyanızda, yani şu satırda ayarlanır :
HISTCONTROL=ignoreboth
man bash diyor:
HISTCONTROL
Komutların geçmiş listesine nasıl kaydedileceğini kontrol eden iki nokta üst üste işaretli değerler listesi. Değerler listesi yoksayma içeriyorsa
, boşluk karakteriyle başlayan satırlar geçmiş listesine kaydedilmez . Yoksayılanların değeri , önceki geçmiş girdisiyle eşleşen satırların kaydedilmemesine neden olur. Değeri
ignoreboth'un için kısaltmadır ignorespace ve ignoredups .
ignoredupsbu arada history | tail -n2yukarıdaki testte tarihte sadece bir kez görünmesinin nedeni .
Bir terminalin geçmişi RAM'e kaydedilir ~/.bash_historyve terminal kapatılır kapatılmaz temizlenir . Belirli bir girişi sizden silmek ~/.bash_historyistiyorsanız, bunu aşağıdakilerle yapabilirsiniz sed:
# print every line…
sed '/^exit$/!d' .bash_history # … which is just “exit”
sed '/^history/!d' .bash_history # … beginning with “history”
sed '/>>log$/!d' .bash_history # … ending with “>>log”
sed '\_/path/_!d' .bash_history # … containing “/path/” anywhere
Sonuncusu ise varsayılan sınırlayıcı değişti /için _aslında bu eşittir, bu arama terimi içine kullanılan gibi sed -i '/\/path\//d' .bash_history. Komut çıkışları Eklemek silmek istediğiniz tek satır halinde -iseçeneği ve değişimi !diçin dsilme işlemini gerçekleştirmek için:
# delete every line…
sed -i '/^exit$/d' .bash_history # … which is just “exit”
sed -i '/^history/d' .bash_history # … beginning with “history”
sed -i '/>>log$/d' .bash_history # … ending with “>>log”
sed -i '\_/path/_d' .bash_history # … containing “/path/” anywhere