Как установить количество команд, которые история вызывает

15

Я использую Bash. Чтобы просмотреть историю команд, я вызываю historyкоманду, которая, как мне кажется, вызывает программу Gnu с тем же именем. (Я не знаю, есть ли лучший способ для Bash).

В моем .bashrc у меня есть строка export PROMPT_COMMAND='history -a'для сохранения истории из моих нескольких сессий bash, которые я запускаю.

Если я делаю историю, я в настоящее время вижу только 524 записи. Это настраивается? Я хотел бы увеличить это число до 2000.

жилль
источник

Ответы:

19

Во-первых, history это специфический для bash способ, но не лучше. Команда historyявляется встроенной в Bash, как вы можете увидеть, запустив

$ type history 
history is a shell builtin

Теперь количество запоминаемых команд контролируется HISTSIZEпеременной. Чтобы установить его на большее число, добавьте эту строку к себе .profile(почему это лучше, чем .bashrc, см. Здесь ):

export HISTSIZE=2000

Отныне historyвернет последние 2000 команд, которые вы выполнили.

Тердон
источник
5

Да, man bashговорит:

HISTSIZE - количество команд, которые нужно запомнить в истории команд

Но есть Readlineпеременная:history-size

Установите максимальное количество записей истории, сохраненных в списке истории. Если установлено в ноль, любые существующие записи истории удаляются, и новые записи не сохраняются. Если установлено значение меньше нуля, количество записей истории не ограничено. По умолчанию количество записей истории не ограничено.

Вы можете установить history-sizeс HISTSIZE=1000, bind 'set history-size 1000'или с следующей строкой в ~/.inputrc:set history-size 1000

Примеры :

HISTSIZE=1000
bind 'set history-size 0'
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 0
history # prints nothing

bind 'set history-size 0'
HISTSIZE=1000
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 1000
history # prints    13  echo $HISTSIZE\n14  bind -v | grep history-size\n15  history

history-sizeдоступно с bash-4.0-alpha: ИЗМЕНЕНИЯ

Евгений Верещагин
источник
2

В HISTSIZEдиктате переменный , сколько команд хранятся в бегущей истории и HISTFILESIZEопределяет , сколько команд из запущенных историй сохраняются после выхода из оболочки.

Bratchley
источник