7 Советов — Настройка Истории Команд в Bash

7 Советов, которые помогут Вам управлять историей команд в Bash.

Вы узнаете как добавить дату и время в .bash_history, увеличить размер хранимой истории, не сохранять определенные команды и многое другое …

Каждая вводимая в терминале команда сохраняется в файле ~/.bash_history. Чтобы посмотреть историю команд наберите history.

Настройка истории команд в Bash осуществляется путем добавления переменных окружения в файл ~/.bashrc.

Чтобы изменеия в ~/.bashrc вступили в силу, выполните:

source ~/.bashrc

1. Добавляем Отображение Даты и Времени в Bash History

Иногда очень полезно узнать время, когда какая-либо команда была выполнена.

Установите HISTTIMEFORMAT, чтобы сохранять время выполнения каждой команды.

Для этого добавьте следующую строку в файл ~/.bashrc:

export HISTTIMEFORMAT="%h %d %H:%M:%S "

Теперь, набрав history, Вы получите следующий вывод:

113  Jun 08 16:31:06 sudo ifconfig
114  Jun 08 16:31:10 top
115  Jun 08 16:31:19 ping 8.8.8.8
116  Jun 08 16:31:22 history

2. Увеличиваем Размер Хранимой Истории

Увеличьте HISTSIZE — количество команд, которые необходимо запоминать в списке истории (стандартное значение — 500).

export HISTSIZE=10000

Увеличьте HISTFILESIZE — максимальное количество строк, содержащееся в файле истории (стандартное значение — 500).

export HISTFILESIZE=10000

3. Добавляем Команды Bash в Файл с Историей

Bash перезаписывает файл .bash_history?

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

shopt -s histappend

4. Мгновенно Сохранять Историю Команд

По умолчанию, Bash записывает историю команд в .bash_history, при завершении сессии.

Если сессия внезапно оборвется Вы потеряете текущую историю команд.

Используйте переменную $PROMPT_COMMAND, чтобы сохранять команды сразу после выполнения:

Добавьте следующую строку в файл ~/.bashrc, если переменная $PROMPT_COMMAND не была задана ранее:

PROMPT_COMMAND='history -a'

Добавьте следующую строку, если переменная $PROMPT_COMMAND уже была задана:

PROMPT_COMMAND='$PROMPT_COMMAND; history -a'

5. Контролируйте Bash History

HISTCONTROL — представляет из себя список опций, разделенных двоеточиями.

Они контролируют каким образом список команд сохраняется в истории.

Опция Описание
ignorespace не сохранять строки начинающиеся с символа <пробел>
ignoredups не сохранять строки, совпадающие с последней выполненной командой
ignoreboth использовать обе опции ‘ignorespace’ и ‘ignoredups’
erasedups удалять ВСЕ дубликаты команд с истории

Пример:

export HISTCONTROL=ignorespace:erasedups

6. Игнорировать Определенные Команды

HISTIGNORE — список шаблонов через двоеточие, используемых для принятия решения о сохранении строк с командами в списке истории.

Не сохранять команды ls, ps и history:

export HISTIGNORE="ls:ps:history"

Не сохранять команды начинающиеся с s:

export HISTIGNORE="s*"

7. Одна Команда — Одна Запись в Истории

Сохранять все строки многострочной команды в одной записи списка истории:

shopt -s cmdhist

Изменить Имя Файла с Историй Команд

Используйте HISTFILE для изменения имени файла, в котором сохраняется история команд. Стандартное значение ~/.bash_history.

export HISTFILE=~/.custom_file

5 Replies to “7 Советов — Настройка Истории Команд в Bash”

  1. Спасибо за познавательную статейку.
    Давно, когда-то, про настройку bash-а читал и применял, но после того раза позабыл про это…. а сейас часто в историю заглядывать приходится и вспомнил про такую возможность.
    И настроил по Вашей статье.
    Больше спасибо.
    P.S.
    А про Yii2 не пишите? Желательно для чайников или «для тех, кто в танке»? (:

    1. Рад, что статья была вам полезна. С Yii2 не знаком.

  2. О, ништяк, спасибо!

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