Як отримати нескінченну історію команд у bash?


54

Я встановив, export HISTSIZE=99999999999999але це найкращий спосіб? Я не знаю, чи може статися перелив. Я шукаю перевірений, надійний спосіб зняти межі історії команд.


не існує вбудованого механізму, який би робив те, що я знаю.

Я коментую лише так, що коли на це надійде відповідь, я теж буду знати !!

2
debian-administration.org/articles/543 може бути кращою відповіддю. Принаймні, він обробляє більші значення нескінченності, ніж розчин на суперрусері. :-)

Напевно, ви могли би скоротити це до 9999 на практиці (або навіть 999; я використовую 1000). Я ніколи не знаходив корисну історію, яка перевищує 1000. Якщо я хочу відновити команду, щоб перетворити її в скрипт, я це роблю добре в межах тисячі команд. В іншому випадку це може піти і шкоди не буде зроблено.
Джонатан Леффлер

@JonathanLeffler: Mine 1300 рядків, і це настільки ж мало , як я можу це зробити. Ctrl-R дуже корисний.
l0b0

Відповіді:


69

це насправді не (добре) задокументовано, і я думаю, що 99% користувачів bash на цьому плануваному встановили HISTSIZE на велику кількість veeery.

У GNU історія башів обробляється через могутню бібліотеку читань У бібліотеці є можливість обмежити розмір історії ("задушити" в жаргоні читання) чи ні, і bash просто встановлює історію читання ліній на задушену / не сформовану. Якщо ви заглянете, наприклад, GNU bash версії 4.2, файл variables.c, рядок 4443, функція void sv_histsize (char *), ви знайдете цей коментар (і всю задушку / нестихію у функції, що випливає):

/ * Що робити після зміни змінних HISTSIZE або HISTFILESIZE.
Якщо для цього HISTSIZE є значення (а воно є числовим), тоді заглушіть історію. В іншому випадку, якщо для цієї змінної немає значення НІ,
відкажіть історію. Якщо ім'я HISTFILESIZE, а його значення
числове, усікайте файл історії, щоб містити не більше, ніж багато
рядків. * /

Тому для цього слід зробити трюк:

export HISTSIZE=""

А також це (якщо ви відчуваєте зухвалий характер):

export HISTSIZE="GOTCHA"

Сподіваюся, це допомагає.


2
Нехай Тукс вас благословить :)
meeDamian

17
Пропоную: експортувати HISTSIZE = "INFINITE"
AmanicA
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.