Bash'ta sonsuz komut geçmişi nasıl elde edilir?


54

Belirledim export HISTSIZE=99999999999999ama bu en iyi yol mu? Taşma meydana gelebilir mi bilmiyorum. Komut geçmişi sınırlarını kaldırmak için test edilmiş, güvenilir bir yol arıyorum.


Bildiğim kadarıyla yapmam gereken bir mekanizma yok.

Ben sadece yorum yapıyorum, böylece bu cevaplandığında ben de bileceğim!

2
debian-administration.org/articles/543 daha iyi bir cevap olabilir. En azından, süper kullanıcıdaki çözümden daha büyük sonsuzluk değerlerini kullanır. :-)

Muhtemelen pratikte 9999'a kadar kesebilirsin (hatta 999; 1000 kullanıyorum). Yararlı olması için 1000'den büyük bir tarih bulamadım. Bir betiğe dönüştürmek için bir komutu kurtarmak istersem, normalde bin komut içinde bunu iyi yaparım. Aksi takdirde, gidebilir ve hiçbir zararı yoktur.
Jonathan Leffler

@JonathanLeffler: Mine 1300 satır ve yapabileceğim kadar küçük. Ctrl-R çok kullanışlıdır.
l0b0

Yanıtlar:


69

Gerçekten de (iyi) belgelenmemiş ve sanırım bu planlı bash kullanıcısının% 99'u HISTSIZE'i veeery çok sayıda yaptı.

GNU bash tarihinde, güçlü okuma satırı kütüphanesi aracılığıyla ele alınır. Kütüphane tarih boyutunu sınırlama seçeneğine sahiptir (okuma çizgisi jargonunda "boğma") veya değil ve bash, okuma çizgisi geçmişini boğulmuş / boğulmamış olarak ayarlar. Örneğin GNU bash 4.2, dosya değişkenleri.c, satır 4443, void sv_histsize (char *) fonksiyonuna bakarsanız, bu yorumu (ve aşağıdaki fonksiyonda boğucu / çürüyen) bulacaksınız:

/ * HISTSIZE veya HISTFILESIZE değişkenleri değiştikten sonra ne yapılmalı.
Bu HISTSIZE için bir değer varsa (ve sayısalsa), o zaman geçmişi boğun. Aksi takdirde, bu değişken için NO değeri
varsa, geçmişin işaretini kaldırın. Eğer isim HISTFILESIZE ise ve değeri nümerikse,
o kadar fazla
satırdan fazla tutmayacak şekilde tarih dosyasını kesiniz. * /

Yani bu hile yapmak gerekir:

export HISTSIZE=""

Ve ayrıca bu (meydan okuyan hissediyorsanız):

export HISTSIZE="GOTCHA"

Bu yardımcı olur umarım.


2
Tux sizi korusun :)
meeDamian

17
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.