Terminal Geçmişini nasıl temizlerim?


93

Linux Mint 17.1 Rebecca'yı yaklaşık 2 gün kullanıyorum ve yanlışlıkla şifreyi daha önce yazdığım komutların geçmiş listesinde görüntülenen terminale yazdım.

Terminal geçmişini tamamen silmek istiyorum. Terminalde, geçmişi sonsuza dek temizleyeceğini düşündüğüm aşağıdaki komutları kullanmayı denedim ama yapmıyorlar:

history -c
reset
tput reset

Yukarıdaki komutlar "terminalden geçmişi" temizleyecektir "fakat çıkıp yenisini açtığımda önceki geçmişim hala var ve hepsi - geçmiş komutunu kullanarak ve klavyemdeki YUKARI okuna basarak tekrar listelenebiliyor . Tarihimi tamamen temizleyene kadar bunun olmasını istemiyorum, sonra kullanmaya devam etmek istiyorum.

Terminal geçmişimi tamamen nasıl silebilirim - sonsuza dek ve yeni başlayabilirim?

Lütfen Dikkat: Geçmişi kaydetmeden terminalden çıkmak istemiyorum, sadece bu durumda sonsuza dek silin.


1
sed -i "s/$your_pass//g" ~/.bash_history...
jasonwryan

3
@ Jasonwryan Sed komutunun kabuk tarihinde sona ereceği için tek başına sorunu çözmez.
Gilles,

1
@Jasonwryan kodunu kullanmaya çalıştım ama anladım: sed: -e expression # 1, char 0: daha önce neden yaptığımı bilmediğimi ve bunun beni bir arayıştan ve etrafa karıştırdığımı bildiğimden önceki normal bir ifade yok: cat / dev / null> ~ / .bash_history && geçmişi -c && exit
Shambhala

1
@Gilles: haklısın: emrinin önünde bir boşluk olması gerekiyor ...
jasonwryan

Yanıtlar:


145

resetveya tput resetsadece terminale işler yapar. Tarih, tamamen etkilenmemiş olan kabuk tarafından yönetilir.

history -cgeçmişinizi geçerli kabukta siler. Parolanızı yeni yazdıysanız ve bu kabuktan çıkmadıysanız veya geçmişini açık bir şekilde kaydetmediyseniz, bu yeterli (ancak fazladan yorum).

Bash'ten çıktığınızda, geçmiş varsayılan olarak .bash_historygiriş dizininizde bulunan geçmiş dosyasına kaydedilir . Daha doğrusu, geçerli oturum sırasında oluşturulan geçmiş dosyaya eklenir; zaten mevcut olan girişler etkilenmez. Geçerli dosyanın geçmişiyle birlikte geçmiş dosyanın üzerine yazmak için, çalıştırın history -w.

Tüm geçmiş girişlerinizi kaldırmak yerine, .bash_historybir düzenleyicide açabilir ve saklamak istemediğiniz satırları kaldırabilirsiniz. Ayrıca, historytüm girişleri görüntülemek, sonra history -distemediğiniz girişleri silmek ve son history -wolarak kaydetmek için kullanarak, bash içinde daha az uygun şekilde de yapabilirsiniz .

Geçmiş dosyasını düzenledikten sonra bile, şifreniz hala dosyanın önceki bir sürümünde diskte bir yerde bulunabilir. Artık dosya sisteminden alınamıyor, ancak diske doğrudan erişerek onu bulmak hala mümkün (ama muhtemelen kolay değil) olabilir. Bu şifreyi başka bir yerde kullanırsanız ve diskiniz çalınırsa (veya birisi diske erişirse), bu bir sorun olabilir.


1
Cevabınızı beğendim ve çok yararlı olduğunu bilmediğim bir kaç şeyi söylediğiniz gibi kabul edeceğim. Şifremi de değiştireceğim!
Shambhala

İlk historyönce tarih günlüğünün içeriğini ve silmek istediğiniz satır numaralarını kontrol etmek için yazın , tarih satırındaki 1000 satır numarasını silmek istediğinizi history -d 1000
varsayalım

.Bash_history dosyasını doğrudan değiştirirsem, history komutu hala değişiklik yapmadan önceki komutları gösteriyor, oturum / oturum açana kadar.
Benitok

35

Tarihi denedim.

cat /dev/null > ~/.bash_history && history -c && exit

Bu işlem, tarih dosyasına kaydedilmiş geçmişi ve geçerli oturumdaki geçmişi temizler (böylece bashçıkışta dosyaya kaydedilmez ). Daha sonra kabuktan çıkar. Bir sonraki kabuk oturumunun geçmişi olmaz.


18

Tüm geçmiş girişlerinizi kaldırmak yerine, bu komutları terminalinize yazın:

  1. history -c (silme geçmişi için)
  2. history -w (geçmişi kaydet)

inc_append_historyVeya share_historyseçenek ayarlanmışsa bu , zsh ile yeterli olmaz .
efsane

5

Burada bir güvenlik sorunu olduğu için geçmiş dosyasını güvenli bir şekilde silmeyi düşünmelisiniz.

$ shred -u ~/.bash_history && touch ~/.bash_history

3

Bir neofit aynı sorunla karşılaştığında, tarih dosyasını silme ve yeniden yaratmaya yönelik acımasız bir deneyime başvurdum: -

rm .bash_history
touch .bash_history

Farkında olduğum rahatsız edici yan etkilere neden olmadan benim için çalıştı.


3

Tür: history -c; rm ~/.bash_history

history -cşu anki oturumunuzun geçmişini rm ~/.bash_historytemizler, uzun vadeli geçmişinizi history -c; rm ~/.bash_historytemizler , böylece her ikisini de temizler.


açıklama OP'nin daha iyi anlamasına yardımcı olabilir.
Mongrel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.