Zshell'de bir komutun tarihe kaydedilmesi nasıl önlenir?


Yanıtlar:


37

HIST_IGNORE_SPACE seçeneğini kullanın.

setopt HIST_IGNORE_SPACE

erkek zshoptions

HIST_IGNORE_SPACE

Satırdaki ilk karakter boşluk olduğunda veya genişletilmiş diğer adlardan biri baş boşluk içerdiğinde komut satırlarını geçmiş listesinden kaldırın. Komutun, yok edilmeden önce bir sonraki komuta girilene kadar dahili tarihte kaldığını ve hattı yeniden kullanmanıza veya düzenlemenize izin verdiğine dikkat edin. Başka bir komuta girmeden hemen kaybolmasını istiyorsanız, bir boşluk bırakın ve return tuşuna basın.


Bunu, OSX’de açıldığından bu yana yazılan terminaller penceresindeki komutlar için yapabilseydim. Yanlış ağacın havladığını anladığın için.
Dan Rosenstark

2
Ve sonra, engel olmak isteyen komutlar için, ben takma ad kullanılan ve bir boşluk öneki: takma Jrnl = "Jrnl"
Sagar Jauhari

2
@Yar öldürmek -9 bu kabuk (satır başına tarih dosyası
yazmıyor

1
@MichaelShigorin Teşekkürler! kill -9 $$Mevcut terminal oturumunda verilen tüm komutların tarihe kaydedilmesini engellemek gerçekten fantastik.
Jeffrey Lebowski,

2
@ CMCDragonkai Komut satırınızdan unset HISTFILEönce yapabilirsiniz . HISTFILEGeçmişinizde istediğiniz komutları tutmak için daha sonra sıfırlamanız veya yeni bir kabuk açmanız gerekir .
Chauncey Garrett

2

ZSH geçmişine eklenenler üzerinde daha ayrıntılı bir denetim istiyorsanız, içindeki zshaddhistoryişlevi tanımlayabilirsiniz .zshrc. Aşağıdaki tanım, yoksayılacak bir deseni tanımlamak için bir regex kullanır:

function zshaddhistory() {
  emulate -L zsh
  if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
      print -sr -- "${1%%$'\n'}"
      fc -p
  else
      return 1
  fi
}

Dan davranış unutmayın man zshoptsunder HIST_IGNORE_SPACEhala mevcutsa:

Komutun, yok edilmeden önce bir sonraki komuta girilene kadar dahili tarihte kaldığını ve hattı yeniden kullanmanıza veya düzenlemenize izin verdiğine dikkat edin.

Bu yüzden test etmek için, fazladan vurmanız gerekecek [Enter]. Bu komutu hem çıktısından hem historyde ok geçmişinden kaldırır .

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.