Использование команды history в Linux: 3 полезных совета

Вы наверняка знаете, что способ, которым history логирует команды может быть громоздкими. Некоторые команды даже могут перезаписываться. Что с этим делать? Читайте далее.

Команда history является встроенной командой оболочек C shell (csh) и bash (но не sh). Она предназначена для повторного исполнения ранее осуществляемых команд. Обычно история команд хранится в отдельном файле. Например, командная оболочка bash хранит её в файле .bash_history. Расположен он в домашней директории пользователя. Команда history позволяет сэкономить много времени, которое уходит на повторный ввод длинных команд.

Базовый синтаксис команды выглядит следующим образом:

$ history [параметры]

3 полезных совета использования команды history

  1. Как игнорировать повторяющиеся записи?

Вы можете установить следующую опцию в вашем файле ~ / .bashrc .</div>

Чтобы игнорировать повторяющиеся записи и не перезаписывать экспорт истории:

# ignore duplicate entries and don’t overwrite the history

export HISTCONTROL=ignoredups
shopt -s histappend

После определения переменных вы можете использовать новые значения, выполнив следующую команду:

$ source .bashrc

  1. Как контролировать размер 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

Проверить размер истории в Linux

По умолчанию эти переменные и размеры выделены каждому пользователю, включая root. Если вы хотите изменить, отредактируйте файл .bashrc в вашем домашнем каталоге и установите переменные размера на 2000 команд:

# control the size of the history file
export HISTSIZE=2000
export HISTFILESIZE=2000

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

$ source .bashrc

Чтобы подтвердить, что ваши новые значения теперь активны для вашей текущей оболочки и любой подоболочки:

$ echo $HISTSIZE
$ echo $HISTFILESIZE

Подтвердить размер истории

Подтвердить размер истории 

  1. Как избежать сохранения повторяющихся команд?

ls, pwd и uptime — обычно не очень интересны для аудита. Если вы не хотите хранить их и другие общие команды в истории bash — используйте переменную HISTIGNORE

Откройте файл .bashrc в своем домашнем каталоге и добавьте следующие:

# ignore common commands

export HISTIGNORE=”:pwd:id:uptime:resize:ls:clear:history:”

После добавления указанных выше переменных, нужно выполнить следующую команду, чтобы использовать новые значения:

$ source .bashrc

Дополнительную информацию можно найти на здесь.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *