Yanıtlar:
Komutu tarihe kaydetmeden çalıştırmak istiyorsanız, fazladan bir boşluk ile hazırlayın.
prompt$ echo saved
prompt$ echo not saved \
> # ^ extra space
Bu işlemin gerçekleşmesi için ya da gerek ignorespaceyoksa ignorebothiçinde HISTCONTROL. Örneğin, koş
HISTCONTROL=ignorespace
Bu ayarı kalıcı hale getirmek için içine koyun .bashrc.
Komutu zaten çalıştırdıysanız ve geçmişi geçmişten kaldırmak istiyorsanız, ilk önce
history
Geçmişinizde komutların listesini görüntülemek için Silmek istediğiniz numaranın yanındaki numarayı bulun (örn. 1234) ve
history -d 1234
Ek olarak, silmek istediğiniz satır zaten $ HISTFILE’nize yazılmışsa (bu genellikle varsayılan olarak bir oturumu sonlandırdığınızda olur), $ HISTFILE’a tekrar yazmanız gerekir; oturum, toplantı, celse:
history -w
history -a, normal konfigürasyonda çıkış yapmak yerine geçmiş dosyaya zaten yazıldığından ayarladım . Özellikle: mywiki.wooledge.org/BashFAQ/088
history -w. Aksi halde çıktığınızda, silinen çizgi hala oradadır!
history -wSONRA history -d {num}kritik çerez cevaba eklenmesi gerektiğini, aksi takdirde bir kullanıcı geçerli kabuk aslında kalıcıdır gelen geçici silmek düşünebilir - tam olarak ne ihtiyaç vardı.
history -w, zaten .bash_historydosyaya yazılmış olan girişler için gereklidir . Nasıl yeniden üretilir (örneğin, stok konfigürasyonlu CentOS 7'de): 1. giriş 2. komutu girin echo foo3. çıkış 4. tekrar giriş 5. giriş echo foo6. silme çıkış 7. giriş tekrar: giriş hala var. Bash tarihinizi nasıl yapılandırdığınıza bağlı olarak, belki de bu konuyu başka şekillerde de çoğaltabilirsiniz - örneğin, oturumu kapatmadan önce tarih yazmasını kışkırtıyorsanız.
Tüm geçmişinizi temizlemek için
history -cTek bir satırı silmek için
history -d linenumberBu benim içinde var ~/.bashrc, bu komutun $ forgetönceki komutu silip tarihe geçmesini sağlar.
function forget() {
history -d $(expr $(history | tail -n 1 | grep -oP '^ \d+') - 1);
}
history -d $( history | tail -n 1 | cut -f 1 -d " " )basit olmaz mıydı ?
history | tail -n1olduğunu historybu yüzden bu sayıyı silme komutu kendisi yanlış girdiyi alır. Bununla birlikte, history -d $( history | awk 'END{print $1-1}' )satır seçimi, alan seçimi ve çıkarma işlemlerini birleştirir.
Bash oturumunun tamamını unutmak istiyorsanız kill, geçerli bash işlemini yapabilirsiniz. Değişken yana $$tutun pidşimdiki kabuğun, bunu yapabilirsiniz:
kill -9 $$
Geçmişi temizledikten sonra değişiklikleri yazmanız gerekir. Geçmişinizde geçmiş silme komutunu almak istemiyorsanız, komutu şöyle çalıştırmanız gerekir:
history -c && history -w && logout
İyi şanslar.
Adding another point suppose if you want to delete a range of history lines
You can use below script.
Below example will delete history output from line 1 to line 150.
for i in `history | awk 'NR > 1 && NR <=150{print $1}'`; do history -d $i; done