- Вопрос или проблема
- Из справочного руководства по Bash:
- Ответ или решение
- Шаг 1: Понимание переменных HISTSIZE и HISTFILESIZE
- Шаг 2: Использование конфигурационных файлов
- Изменение размера истории команд:
- Шаг 3: Применение изменений
- Шаг 4: Настройка на глобальном уровне (по желанию)
- Шаг 5: Установка бесконечного размера истории (по желанию)
- Заключение
Вопрос или проблема
Размер истории по умолчанию в 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
, который используется при открытии новых оболочек.
Изменение размера истории команд:
-
Откройте терминал и отредактируйте файл
~/.bashrc
:nano ~/.bashrc
-
Добавьте или измените следующие строки в конце файла:
export HISTSIZE=10000 export HISTFILESIZE=10000
-
Сохраните изменения и закройте редактор.
Шаг 3: Применение изменений
Чтобы изменения вступили в силу, вам необходимо перезапустить терминал или выполнить команду:
source ~/.bashrc
Это перезагрузит настройки текущей оболочки. Вы можете проверить изменения, выполнив:
echo $HISTSIZE
echo $HISTFILESIZE
Теперь они должны отображать 10000.
Шаг 4: Настройка на глобальном уровне (по желанию)
Если вы хотите применить эти изменения ко всем пользователям системы, их можно добавить в файл /etc/bash.bashrc
. Для этого выполните:
-
Откройте файл с правами администратора:
sudo nano /etc/bash.bashrc
-
Добавьте строки:
export HISTSIZE=10000 export HISTFILESIZE=10000
-
Сохраните изменения и закройте редактор.
Шаг 5: Установка бесконечного размера истории (по желанию)
Если вы хотите, чтобы ваш файл истории и его размер не имели ограничений, замените значения на -1:
HISTSIZE=-1
HISTFILESIZE=-1
Не забудьте выполнить source ~/.bashrc
после внесения изменений.
Заключение
Изменение размера истории команд в Ubuntu позволяет значительно повысить эффективность работы в терминале. Подводя итог, вам нужно убедиться, что изменения сделаны в ~/.bashrc
, а не в ~/.profile
, чтобы они применялись в обычных терминалах. Это полезная настройка, которая поможет сохранить важные команды и ускорить вашу работу.