Geçmiş boyutunu kontrol eden iki değişken vardır:
HISTFILESIZE Geçmiş dosyasında bulunan maksimum satır sayısı. Bu değişkene bir değer atandığında, gerekirse en eski girişleri kaldırarak bu sayıdan daha fazla satır içermeyecek şekilde geçmiş dosyası kesilir. Geçmiş dosyası, bir kabuk çıktığında yazıldıktan sonra da bu boyuta kısaltılır. Değer 0 ise, geçmiş dosyası sıfır boyutuna kesilir. Sayısal olmayan değerler ve sıfırdan küçük sayısal değerler kesmeyi engeller. Kabuk, başlangıç dosyalarını okuduktan sonra varsayılan değeri HISTSIZE değerine ayarlar.
ve
HISTSIZE Komut geçmişinde hatırlanması gereken komut sayısı (aşağıdaki TARİH'e bakın). Değer 0 ise, komutlar geçmiş listesine kaydedilmez. Sıfırdan küçük sayısal değerler her komutun geçmiş listesine kaydedilmesine neden olur (sınır yoktur). Kabuk, başlangıç dosyalarını okuduktan sonra varsayılan değeri 500 olarak ayarlar.
Bu iki değişken, geçmişinizin davranışını kontrol etmenizi sağlar. Temel olarak, HISTSIZEgeçerli oturumunuz sırasında kaydedilen komut HISTFILESIZEsayısı ve oturumlar arasında hatırlanacak komut sayısıdır. Yani mesela:
$ echo $HISTSIZE
10
$ echo $HISTFILESIZE
5
$ history | wc
10 29 173
Yukarıdaki örnekte, HISTSIZE10 olarak ayarlandığından history, 10 komutun bir listesini döndürür. Ancak, oturumu kapatıp yeniden oturum açarsanız, history5 HISTFILESIZEolarak ayarlandığından yalnızca 5 komut döndürür . Bunun nedeni, oturumunuzdan çıktıktan sonra HISTFILESIZEgeçmişinizin satırlarının geçmiş dosyanıza kaydedilmesidir ( ~/.bash_historyvarsayılan olarak HISTFILE). Başka bir deyişle, komutlar , bu noktaya HISTFILEulaşana kadar eklenir, eklenen $HISTFILESIZEher satır, dosyanın ilk komutunun kaldırılacağı anlamına gelir.
Bu değişkenlerin değerlerini ~/.profile(veya ~/.bash_profilebu dosya varsa) içinde ayarlayabilirsiniz . Bunları ~/.bashrcilk önce ayarlamayın, çünkü orada hiçbir iş ayarlanmamıştır ve ikincisi, girişte diğer sorunlara yol açabilecek giriş dışı kabuklara karşı farklı davranışlara sahip olmanıza neden olacaktır .
Geçmişinizin davranışına ince ayar yapmanıza izin veren diğer faydalı değişkenler şunlardır:
HISTIGNORE: Bu, nadiren ilgilenilen bazı ortak komutları görmezden gelmenizi sağlar. Örneğin, şunları ayarlayabilirsiniz:
export HISTIGNORE="pwd:df:du"
Bu herhangi bir komut ile başlayan neden olur pwd, dfya da dugöz ardı edilecek ve geçmişine kaydedilmediğini.
HISTCONTROL: Bu, tarihin nasıl çalışacağını seçmenizi sağlar. Şahsen, HISTCONTROL=ignoredupsyinelenen komutları yalnızca bir kez kaydetmesine neden olana ayarladım . Diğer seçenekler, ignorespaceboşlukla başlayan erasedupsve geçerli satırla eşleşen tüm önceki satırların bu satır kaydedilmeden geçmiş listesinden kaldırılmasına neden olan komutları yok saymaktır . ignorebothignorespace ve ignoredups için kısayol.
HISTTIMEFORMAT: Bu, geçmiş dosyasının saat biçimini ayarlamanızı sağlar. Ayrıntılar için Pandya'nın cevabına bakın veya okuyun man bash.
Daha fazla ince ayar için şunlara sahipsiniz:
histappendBash seçeneği. Bu, shopt -s histappendo komutu çalıştırarak veya cihazınıza ekleyerek ayarlanabilir ~/.bashrc. Bu seçenek belirlenirse
geçmiş listesi, kabuk çıkarken dosyanın üzerine yazmak yerine HISTFILE değişkeninin değeri ile adlandırılan dosyaya eklenir.
Bu, farklı oturumların geçmişlerini birleştirmenize izin verdiği için çok kullanışlıdır (örneğin farklı terminaller düşünün).
historyKomut iki yararlı seçenekleri vardır:
Örneğin, bu iki komutu, PROMPT_COMMAND(kabuğunuz her istemi gösterdiğinde yürütülür, böylece yeni bir kabuk başlattığınızda ve içinde çalıştırdığınız her komuttan sonra yürütülür) öğesine ekleyebilirsiniz :
export PROMPT_COMMAND='history -a;history -r;'
Birlikte, açtığınız herhangi bir yeni terminalin diğer kabuk oturumlarının geçmişini hemen içe aktarmasını sağlarlar. Sonuç, tüm terminaller / kabuk oturumlarında ortak bir geçmiştir.