Неограниченное Bash История

Я хочу, чтобы мой файл .bash_history был неограниченным. например Поэтому я всегда могу вернуться и посмотреть, как я создал/сконфигурировал что-то, или что эта отличная команда, или как какая-то команда сломала что-то несколько недель назад. Как изменить этот параметр?

Ответ 1

Установите HISTSIZE и HISTFILESIZE в пустую строку:

HISTSIZE= HISTFILESIZE=

В bash 4.3 и более поздних версиях вы также можете использовать HISTSIZE=-1 HISTFILESIZE=-1:

n.  Setting HISTSIZE to a value less than zero causes the history list to be
    unlimited (setting it 0 zero disables the history list).

o.  Setting HISTFILESIZE to a value less than zero causes the history file size
    to be unlimited (setting it to 0 causes the history file to be truncated
    to zero size).

Ответ 2

После многих больших, уродливых итераций и странных краевых случаев за эти годы у меня теперь есть краткий раздел

Примечание: каждая команда записывается сразу после ее запуска, поэтому, если вы случайно ввели пароль, вы не можете просто "убить -9 %%", чтобы избежать записи истории, вам нужно удалить ее вручную.

Также обратите внимание, что каждый сеанс bash загружает полный файл истории в память, но даже если ваш файл истории увеличится до 10 МБ (что займет много времени, долгое время), вы не заметите значительного влияния на ваш bash время запуска.

Ответ 3

Как упоминал выше Йорг Бейер, ключевые слова HISTSIZE и HISTFILESIZE.

Кроме того, вы должны определенно проверить переменную окружения HISTCONTROL, которая позволяет делать классные вещи, например, не хранить дубликаты команд истории (HISTCONTROL=erasedups). Нет смысла иметь неограниченную историю, если вам нужно просматривать сотни строк cd .. или аналогичных.

Ссылки здесь и работают с bash историей. bash Variable FAQ также стоит просмотреть.

Ответ 4

Здесь (по крайней мере) есть два соответствующих env vars:

  • HISTSIZE: количество записей в файле истории
  • HISTFILESIZE: количество строк в файле истории

Я думаю, что мы можем согласиться с тем, что термин неограниченный часто совпадает с очень большим (или у вас есть неограниченное хранилище файлов?). Поэтому просто установите значения очень большие.