Cevap:
Tek yapmanız gereken HISTSIZE
bash profilinizde ( ~/.bash_profile
) ayarlanmıştır . HISTFILESIZE
Ayarsız bırakabilirsiniz . Bu, hem bellek içi geçmişini hem de dosya tabanlı geçmişi yapılandırır .
# Saves 10 million lines in memory and in the bash history file.
HISTSIZE=10000000
Açıklama, ek bilgi.
Sorun HISTFILESIZE, yalnızca bir oturumu başlattığınızda kaydedilecek maksimum geçmişi ayarlamasıdır. HISTSIZE, bir oturumun sonunda kaç satır kaydedileceğini belirler. HISTFILESIZE sizin HISTSIZE büyükse, dosya HISTSIZE komutları ile üzerine oluyor çünkü sizin HISTSIZE daha asla görmeyeceksin ( sürece eklerine size set tarihini, ama bu ayrı bir konudur: bakmak histappend
içinde komutlar yerleşik kabuk bunun için) .
Hiçbir etki görmemenizin nedeni budur. Varsayılan olarak HISTSIZE (muhtemelen 500) ile geçmiş dosyanız her zaman en son $ HISTSIZE komutları tarafından üzerine yazılır. Daha eski olan her şey (potansiyel olarak listeyi $ HISTSIZE geçecek şekilde büyütebilir) silinir.
Çoğu durumda HISTFILESIZE öğesinin HISTSIZE öğesinden bağımsız olarak ayarlanmasına gerek yoktur.
HISTSIZE, geçmiş dosyasına kaç satır yazılacağını belirler. Komut listesi, en son N satırını koruyarak geçmiş dosyasına yazmadan önce çıkışta kesilir. Varsayılan olarak, bu liste geçmiş dosyasının üzerine yazar.
HISTFILESIZE, geçmiş dosyasının (satırlar halinde) ne kadar büyük olabileceğini belirler. Dosya başlangıçta kesilir ve en son N satırı tutar. Ayrıca, HISTFILESIZE ayarlandığında geçmiş dosyası potansiyel olarak kesilir.
Son olarak, belgelenmemiş gibi görünse de, başlangıç sırasında HISTSIZE ayarlanmışsa BASH, HISTFILESIZE değerini HISTSIZE olarak ayarlar. Ben macOS ve birkaç Ubuntu çeşitleri denedim ve davranış tutarlıdır. HISTSIZE öğesini bir başlatma dosyasında ( herhangi bir şekilde komut satırı üzerinden değil ) ayarlarsanız, HISTFILESIZE eşleşecek şekilde ayarlanır. (Kendiniz deneyin: HISTSIZE değerini .bash_profile içinde geçici olarak büyük bir değere ayarlayın, yeni bir terminalden çıkıp başlayın echo $HISTSIZE $HISTFILESIZE
ve ardından eşleşen olduğunu göreceksiniz.)
Sonuç olarak, farklı değerler istemediğiniz sürece HISTFILESIZE öğesine dokunmak için bir neden yoktur ve farklı değerlere sahip kullanım durumları nadirdir (ve genellikle yararlı bir şey elde etmek için daha fazla geçmiş özelleştirme ayarı içerir).