Mac OS X terminal geçmişini nasıl düzenlerim?


12

Mac OS X'te bash geçmişimi nasıl düzenlerim? Yanlışlıkla o pencereye bir şifre girdim ve tüm geçmişimi kaldırmak istemiyorum.

Yanıtlar:


14

Düzenlemek, .bash_historydosyayı bir düzenleyiciyle açmakla ilgilidir. Bunu başarmanın birkaç yolu vardır.

  1. In Terminali sadece tip vi ~/.bash_history, o zaman istediğiniz kadar dosyayı düzenleyin ve kaydedin. Alışık değiliz, bu seçenek, zor olabilir vi elbette.
  2. Bu talimatları izleyerek dosyayı görünür hale getirin , örneğin başka bir dosya olarak açın, değiştirin ve kaydedin.
  3. In Terminali sadece tip open ~/.bash_history -a /Applications/TextEdit.app. Bu komut dosyayı TextEdit ile açar, elbette başka bir metin düzenleyici seçebilirsiniz. Dosyayı değiştirin ve kaydedin.

Değişikliklerin fark edilebilir olması için bash'ı yeniden başlatmanız yeterlidir.


"İzin reddedildi" alıyorum. Bir sudo yaptığımda, girilen tüm komutları göremiyorum.
Karthick S

1
@KarthickS Bunu tam olarak ne yapıyorsunuz?
Thecafremo

Eğer .bash_history içeriğine bakarsam, içerikler bir geçmiş komutunun çıktısından farklıdır. İkisini de tanıyorum, dosyanın içeriği daha eski. Birden fazla komut penceresi açıksa ne olur? Aynı komut geçmişini paylaşmıyorlar. PS: Bash kullandığımı doğruladım.
Victor Engel

1
Sanırım cevabımı buldum. ECHO $ ​​HISTFILE düzenlenecek olanı gösterir.
Victor Engel

10

Terminal tipinde historyhat numarasını not edin. Bir sonraki çağrı history -d noted-line-number. historyTekrar kullanarak hattın silinip silinmediğini kontrol edebilirsiniz .


2
Bu ZSH ile Yosemite üzerinde çalışmaz.
Paulo Oliveira

Soru zh ile değil bash ile ilgiliydi. Dikkatlice oku!
İsimsiz_1

1
@DmitryDupelov haklısın, rahatsız ettiğim için üzgünüm. Her neyse, gelecekteki okuyuculara bir hatırlatma (bu ayrıntıyı da kaçırabilir). Yorumumu düzelttiğiniz için teşekkür ederim.
Paulo Oliveira

2
nano ~/.bash_history

işiniz bittiğinde ctrl+x ve doğru cevap vermek için geri gelin dostum


0

Geçmişi kaydetmeden önce Dmitry'nin cevabının ideal olduğunu düşünüyorum - varsayılan olarak kabuk / terminal çıkışında tasarruf gerçekleşir.

Geçmişi ~ / .bash_history'ye önceden kaydettiyseniz , Thecafremo'nun cevabını tercih ederim, ancak bash örneklerinin hiçbirinin geçmişi yüklemediğinden ve yeniden kaydedeceğinden emin olmak için Terminal'den çıkma adımını eklemenizi öneririm. Birden fazla terminaliniz varsa ve her türlü komut-komut geçmişi güncellemesini etkinleştirdiyseniz, bu özellikle zordur.

Arka fon:

  • bash geçmişi kabuğun bir örneği içine kaydeder
  • bash bu geçmişi genellikle kabuktan / Terminalden çıktığınızda gerçekleşen bir dosyaya yazabilir
  • bash bir dosyadan geçmişe okuyabilir, bu genellikle bir kabuk / Terminal açtığınızda gerçekleşir
  • geçmiş davranışının daha erken yayılması için varsayılan davranışı değiştirmek mümkündür, bu da BAD_TEXT dosyanızı dosyaya ve diğer pencerelere taşıyabilir

Hangi yöntemi kullanırsanız kullanın, bir adım eklerim: başarıyı doğrulayın!

  1. Terminal.app'dan çık
  2. Terminal.app dosyasını tekrar açın
  3. Sorunlu metnin geçmişte olmadığını, tercihen ek geçmiş oluşturmayacak şekilde olduğunu doğrulayın. Yani, yapma grep BAD_TEXT .bash_history! Bu yeni komut tarihe geçecekti. .Bash_history'yi en sevdiğiniz editörde açıp BAD_TEXT için arama yapardım.

Bu, ne tür bir deli bash kurulumuyla karşılaşırsanız karşılaşın BAD_TEXT'i ortadan kaldırdığınız için size huzur vermelidir.

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.