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

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

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

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

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

решение1

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

$ type history 
history is a shell builtin

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

export HISTSIZE=2000

С этого момента historyбудет возвращать последние 2000 выполненных вами команд.

решение2

Переменная HISTSIZEопределяет, сколько команд будет храниться в истории выполнения, а также HISTFILESIZEсколько команд из истории выполнения будет сохранено после выхода из оболочки.

решение3

Да, 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:ИЗМЕНЕНИЯ

решение4

For more information, I am adding it. I used ubuntu 18. This worked for me.
$ echo $HISTSIZE
1000
$ echo $HISTFILESIZE
1000
$ echo $HISTFILE

vi /home/siva/.bashrc  # here we need to update the HISTSIZE variable to the required thing.
NOTE: open new terminal and check updated value will bere printed if you run $ echo $HISTSIZE

Reference Link:
https://www.redhat.com/sysadmin/history-command

Связанный контент