Neden biri 'histaff'ı' bash'ta ayarlamıyor?


36

Bunun ne shopt -s histappend anlama geldiğini öğrendikten sonra , çok akıllıca bir ayar gibi görünüyor ve varsayılan olmadığına şaşırdım. Neden birileri her bir kabuk çıkışındaki geçmişini silmek istesin ki?


Bu seçeneğin ne yaptığının yanlış anlaşılmasının yanı sıra - @ maxscchlepzig tarafından düzeltilmiş - "varsayılan" en az iki kaynağa sahiptir: bash'saf' veya dağıtılmamış bir ürün .bashrc. İlki için, @Gilles muhtemelen doğrudur. İkinci anlamda -s histappend ise 2008 yılından bu yana, örneğin, Debian üzerinde varsayılan: bugs.debian.org/cgi-bin/bugreport.cgi?bug=452459
underscore_d

3
Unix, aklı başında çalışanlar için tam olarak ünlü değil mi? Varsayılan olarak en dostça olmayan varsayılanları beklemeye geldim: P (küçük abartılı)
olejorgenb 20:16

Yanıtlar:


34

Peki, histappendayarlanmadığında, bu, her kabuk çıkışında tarihin silindiği anlamına gelmez. histappendBash olmadan başlangıçta hist dosyasını belleğe okur - işlem sırasında yeni girişler eklenir - ve kabuk çıkışında son HISTSIZE satırları eklenmeden geçmiş dosyaya yazılır, yani önceki içeriği değiştirir.

Örneğin, hist dosyası 400 giriş içeriyorsa, bash çalışma zamanı sırasında 10 yeni giriş eklenir - hist boyutu 500 olarak ayarlanır, sonra yeni hist dosyası 410 giriş içerir.

Bu davranış yalnızca paralel olarak daha fazla bash örneği kullanıyorsanız sorunludur. Bu durumda, geçmiş dosyası yalnızca son çıkmakta olan kabuğun içeriğini içerir.

Bundan bağımsız: Gizlilik nedenlerinden dolayı tarihlerini kabuk çıkışında silmek isteyen bazı insanlar var.


Ayrıca, güvenlik nedeniyle, kök kullanıcı için geçmişi kaydetmemek iyi bir fikir olabilir. Bu özellik, kök diske kaydedilmeden kabuk geçmişine sahip olmasını sağlar.
Mei,

1
+1, "her kabuk çıkışında tarihin silindiği anlamına gelmez". Bu, başka yerlerde çok iyi bir şekilde açıklanmıştır - ancak özellikle seçeneğin adı bağlamında, bazı okuyuculara ulaşmak için yeterince yeterli olmayabilir (Tamam, bir süredir okuyuculardan biri olabilirdim). @Mei, tarihin bir diske ulaşıp ulaşmadığına histappendilişkin herhangi bir permütasyonun nasıl bir ilgisi var root? Yine, sadece yazılı olanı etkiler , eğer değilse .
underscore_d

5
Kimse 2 bash den az örneği çalıştırıyor mu? histappendyanı sıra HISTCONTROL=ignoredups:erasedups:ignorespaceçoğu insan için iyi bir varsayılan gibi görünüyor.
dashesy

Sonsuz bir tarihe sahipsem ve histappendbenim için etkili olması anlamsız mıdır ? HISTFILESIZE=HISTSIZE=
Marc.2377

@ Marc.2377 Hayır, histappendeşzamanlı olarak çalışan mermilerden yeni bir geçmiş olmadan o zaman kaybolacak ve sadece son çıkan kabuğun girdileri kaydedilecekti. BT, HISTSIZE=negatif ile aynı etkiye sahip olup olmadığını bilmiyorum HISTSIZE.
maxschlepzig

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.