Как изменить размер истории навсегда?

69

Размер истории по умолчанию в Ubuntu - 1000, но он слишком мал. Я хочу изменить его на 10000, поэтому я добавляю

export HISTSIZE=10000
export HISEFILESIZE=10000

чтобы .profile и «источник» его

source .profile

тогда я бегу

echo $HISTSIZE
echo $HISTFILESIZE

1000 отображалось для обоих, но я перезагружал свой компьютер, он стал «по умолчанию». Почему это не работает?

Mitoxys
источник
Здесь у вас есть опечатка в вопросе: export HISEFILESIZE=10000(хотя кажется, что вы не сделали, .profileесли эхо сработало). На всякий случай, если кто-то смотрит на это здесь, это должно бытьHISTFILESIZE
Лев

Ответы:

71

Я попробовал то же самое, только чтобы обнаружить, что подлый Ubuntu устанавливает эти переменные ~/.bashrcпо умолчанию, что выполняется вместо ~/.profileоболочек без входа в систему, таких как просто открытие окна терминала. Изменение этих строк ~/.bashrcисправило это для меня:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
Павел
источник
6
его размер в КБ?
Патоши シ ト シ
12
@duckx Нет, HISTFILESIZE - это номер строки, сохраненной в файле истории , а HISTSIZE - это номер строки, сохраненной и доступной для каждого процесса оболочки (а затем сохраненной в HISTFILESIZE). Обратите внимание, что без значения (или без числа, или с отрицательным значением) ограничение не возникает.
Вааб
2
По какой-то причине это не работает на терминале XFCE
Михал Пжибилович
1
@MichalPrzybylowicz: можно исправить, написав, /etc/bash.bashrcесли это приемлемо для вас. Смотри ниже. (возможно, это был также пропавший без вести export)
serv-inc
43

Из справочного руководства Bash :

HISTSIZE 
    The maximum number of commands to remember on the history list.

    If the value is 0, 
       **commands are not saved** in the history list. 

    Numeric values less than zero result in 
       every command being saved on the history list (there is no limit). 

Так что для бесконечного списка истории , сделайте:
HISTSIZE = (некоторое число меньше 0 )

HISTFILESIZE 
    The maximum number of lines contained in the history file. 

    When this variable is assigned a value, 
        the history file is truncated, if necessary, 
        to contain no more than that number of lines 
        by removing the oldest entries. 

        The history file is also truncated to this size after 
        writing it when a shell exits. 

    If the value is 0, 
        **the history file is truncated to zero size.** 

    Non-numeric values and numeric values less than zero 
        inhibit truncation. 

Так что для .bash_history файла бесконечной истории , сделайте:
HISTFILESIZE = (некоторое число меньше 0 )

Pair Sir Parser
источник
2

Как упоминал @Michal Przybylowicz , эти файлы иногда игнорируются в Xubuntu (и Lubuntu). Если это так, вы могли бы вместо этого написать строки

export HISTSIZE=10000
export HISTFILESIZE=10000

к/etc/bash.bashrc . Это изменит значения этих переменных среды глобально.

Serv-вкл
источник