Использование команды history в Linux: 3 полезных совета
Вы наверняка знаете, что способ, которым history логирует команды может быть громоздкими. Некоторые команды даже могут перезаписываться. Что с этим делать? Читайте далее.
Команда history является встроенной командой оболочек C shell (csh) и bash (но не sh). Она предназначена для повторного исполнения ранее осуществляемых команд. Обычно история команд хранится в отдельном файле. Например, командная оболочка bash хранит её в файле .bash_history. Расположен он в домашней директории пользователя. Команда history позволяет сэкономить много времени, которое уходит на повторный ввод длинных команд.
Базовый синтаксис команды выглядит следующим образом:
$ history [параметры]
3 полезных совета использования команды history
Как игнорировать повторяющиеся записи?
Вы можете установить следующую опцию в вашем файле ~ / .bashrc .</div>
Чтобы игнорировать повторяющиеся записи и не перезаписывать экспорт истории:
# ignore duplicate entries and don’t overwrite the history
export HISTCONTROL=ignoredups
shopt -s histappend
После определения переменных вы можете использовать новые значения, выполнив следующую команду:
$ source .bashrc
Как контролировать размер history?
Команда history может занимать много места на диске. Чтобы этого не произошло, вам нужно использовать три переменные среды: HISTFILE, HISTFILESIZE и HISTSIZE.
HISTFILE—/home/<username>/.bash_history
HISTFILESIZE—1000
HISTSIZE—1000
- HISTFILE — переменная определяет имя и местоположение файла .bash_history
- HISTFILESIZE — определяет максимальное количество команд, которые могут быть сохранены в файле истории
- HISTSIZE — переменная определяет, сколько кэшированных команд должно храниться в файле истории.
Как только вы превысите 1000 команд, самые старые из них будут отброшены, так как сохраняться будут новые.
$ echo $HISTSIZE
$ echo $HISTFILESIZE
$ echo $HISTFILE
Проверить размер истории в Linux
По умолчанию эти переменные и размеры выделены каждому пользователю, включая root. Если вы хотите изменить, отредактируйте файл .bashrc в вашем домашнем каталоге и установите переменные размера на 2000 команд:
# control the size of the history file
export HISTSIZE=2000
export HISTFILESIZE=2000
Чтобы использовать новые значения без выхода и повторного включения, вы можете запустить файл .bashrc:
$ source .bashrc
Чтобы подтвердить, что ваши новые значения теперь активны для вашей текущей оболочки и любой подоболочки:
$ echo $HISTSIZE
$ echo $HISTFILESIZE
Подтвердить размер истории
Как избежать сохранения повторяющихся команд?
ls, pwd и uptime — обычно не очень интересны для аудита. Если вы не хотите хранить их и другие общие команды в истории bash — используйте переменную HISTIGNORE.
Откройте файл .bashrc в своем домашнем каталоге и добавьте следующие:
# ignore common commands
export HISTIGNORE=”:pwd:id:uptime:resize:ls:clear:history:”
После добавления указанных выше переменных, нужно выполнить следующую команду, чтобы использовать новые значения:
$ source .bashrc
Дополнительную информацию можно найти на здесь.