Существует ли максимальный размер файла истории bash?


17

Могу ли я увеличить размер истории команд в bash?

Обратите внимание, что здесь я использую компьютер Red Hat Linux в отделе астрофизики для студентов (так что у меня не так много привилегий).


Ответы:


15

Вместо указания номеров вы можете сделать

unset HISTSIZE 
unset HISTFILESIZE
shopt -s histappend

в этом случае ограничивается только размер вашего диска (и ваш «максимальный лимит файлов», если у вашей ОС или ФС).

Тем не менее, имейте в виду, что это в конечном итоге замедлит bash все больше и больше. Посмотрите этот документ BashFAQ и статью администрации Debian (оригинальная ссылка умерла, посмотрите в зеркало: archive.is и archive.org ) о методах, которые лучше масштабируются.


Вы также можете увеличить history-sizeсвой inputrc.
Крис Даун

Предупреждение: как отмечалось [ unix.stackexchange.com/a/76129/78713](below) , это может привести к тому, что Bash унаследует значения по умолчанию и, если ваш существующий .bash_historyразмер будет больше, чем у них, усечет его.
Крис Повирк

8

Вы можете использовать logrotate для сохранения старых записей. Это позволяет вам, например, установить ограничения размера, которые будут запускать архивирование. Обычно он запускается из ежедневного cronjob, но вы также можете вызвать его из своего .bash_logoutскрипта.


Похоже, самый устойчивый подход для меня, так как снятие ограничений по размеру, в конечном счете, повлияет на производительность. Хотя я не уверен, что скоро достигну порога, я боюсь, что потребуется некоторое время, чтобы начать замечать такие последствия. Кстати, рассмотрите возможность добавления установленной конфигурации и добавьте необязательную команду выхода из системы bash.
Balmipour

Ссылка не работает. Может быть, изменить, чтобы указать на другую ссылку с той же предполагаемой информацией?
Доктор Беко

7

@Philomath, отключение этих переменных среды не работает для меня вообще! Для меня это приводит к тому, что bash использует свои встроенные настройки по умолчанию (кажется) обрезания .bash_history до 9KiB.

Что работает для меня, так это в моем .bashrc:

export HISTSIZE=
export HISTFILESIZE=
shopt -s histappend
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.