Неограниченное 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: количество строк в файле истории
Я думаю, что мы можем согласиться с тем, что термин неограниченный часто совпадает с очень большим (или у вас есть неограниченное хранилище файлов?). Поэтому просто установите значения очень большие.