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

Вопрос или проблема

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

export HISTSIZE=10000
export HISTFILESIZE=10000

в ‘~/.profile’ и ‘использую’ его

source .profile

затем я ввожу

echo $HISTSIZE
echo $HISTFILESIZE

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

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

# для установки длины истории смотрите HISTSIZE и HISTFILESIZE в bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

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

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

    Если значение равно 0, 
       **команды не сохраняются** в списке истории. 

    Числовые значения меньше нуля приводят к тому, что 
       каждая команда сохраняется в списке истории (лимита нет). 

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

HISTFILESIZE 
    Максимальное количество строк, содержащихся в файле истории. 

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

        Файл истории также усечен до этого размера после 
        его записи при выходе оболочки. 

    Если значение равно 0, 
        **файл истории усечен до нулевого размера.** 

    Ничего незначащие значения и числовые значения меньше нуля 
        препятствуют усечению. 

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

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

export HISTSIZE=10000
export HISTFILESIZE=10000

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

Для Ubuntu Bash отредактируйте файл ~/.bashrc

HISTSIZE=-1
HISTFILESIZE=-1

после этого перезагрузите оболочку

exec $SHELL

Выполните эту команду в терминале, она установит размер истории в 1000.

HISTSIZE=1000;HISTFILESIZE=1000

Вы можете напечатать размер истории с помощью

echo $HISTSIZE
echo $HISTFILESIZE

Ответ или решение

Вопрос изменения размера истории команд в Ubuntu − это распространенная задача среди пользователей, особенно тех, кто часто работает в терминале. Это позволяет не только запоминать больше команд, но и значительно упрощает работу с задачами, которые необходимо выполнять многократно. Давайте подробно рассмотрим, как изменить размер истории команд в Ubuntu на постоянной основе.

Шаг 1: Понимание переменных HISTSIZE и HISTFILESIZE

  • HISTSIZE – это максимальное количество команд, сохраненных в текущей сессии истории. Значение 0 означает, что команды не сохраняются. Если вы укажете значение меньше 0, то все команды будут сохраняться без ограничений.

  • HISTFILESIZE – это максимальное количество строк в файле истории. При достижении этого количества старые команды будут удаляться. Также значение 0 обнуляет файл истории.

Шаг 2: Использование конфигурационных файлов

Основной проблемой, с которой вы столкнулись, является то, что переменные HISTSIZE и HISTFILESIZE, установленные в файле ~/.profile, не применяются в обычных терминалах. Для изменения этих переменных необходимо редактировать файл ~/.bashrc, который используется при открытии новых оболочек.

Изменение размера истории команд:

  1. Откройте терминал и отредактируйте файл ~/.bashrc:

    nano ~/.bashrc
  2. Добавьте или измените следующие строки в конце файла:

    export HISTSIZE=10000
    export HISTFILESIZE=10000
  3. Сохраните изменения и закройте редактор.

Шаг 3: Применение изменений

Чтобы изменения вступили в силу, вам необходимо перезапустить терминал или выполнить команду:

source ~/.bashrc

Это перезагрузит настройки текущей оболочки. Вы можете проверить изменения, выполнив:

echo $HISTSIZE
echo $HISTFILESIZE

Теперь они должны отображать 10000.

Шаг 4: Настройка на глобальном уровне (по желанию)

Если вы хотите применить эти изменения ко всем пользователям системы, их можно добавить в файл /etc/bash.bashrc. Для этого выполните:

  1. Откройте файл с правами администратора:

    sudo nano /etc/bash.bashrc
  2. Добавьте строки:

    export HISTSIZE=10000
    export HISTFILESIZE=10000
  3. Сохраните изменения и закройте редактор.

Шаг 5: Установка бесконечного размера истории (по желанию)

Если вы хотите, чтобы ваш файл истории и его размер не имели ограничений, замените значения на -1:

HISTSIZE=-1
HISTFILESIZE=-1

Не забудьте выполнить source ~/.bashrc после внесения изменений.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...