Историей команд в Bash
7 Советов, которые помогут Вам управлять историей команд в Bash.
Вы узнаете как добавить дату и время в .bash_history
, увеличить размер хранимой истории, не сохранять определенные команды и многое другое ...
<info>Каждая вводимая в терминале команда сохраняется в файле ~/.bash_history. Чтобы посмотреть историю команд наберите history.</info>
Настройка истории команд в Bash осуществляется путем добавления переменных окружения в файл ~/.bashrc
.
Чтобы изменеия в ~/.bashrc
вступили в силу, выполните :
source ~/.bashrc
Добавляем Отображение Даты и Времени в 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
Увеличиваем Размер Хранимой Истории
Увеличьте HISTSIZE
- количество команд, которые необходимо запоминать в списке истории (стандартное значение - 500).
export HISTSIZE=10000
Увеличьте HISTFILESIZE
- максимальное количество строк, содержащееся в файле истории (стандартное значение - 500).
export HISTFILESIZE=10000
Добавляем Команды Bash в Файл с Историей
Bash перезаписывает файл .bash_history
?
Чтобы добавлять новые команды в файл с историей, а не переписывать его каждый раз, добавьте следующую строку в ~/.bashrc
:
shopt -s histappend
Мгновенно Сохранять Историю Команд
По умолчанию, Bash записывает историю команд в .bash_history
, при завершении сессии.
Если сессия внезапно оборвется Вы потеряете текущую историю команд.
Используйте переменную $PROMPT_COMMAND
, чтобы сохранять команды сразу после выполнения :
Добавьте следующую строку в файл ~/.bashrc
, если переменная $PROMPT_COMMAND
не была задана ранее :
PROMPT_COMMAND='history -a'
Добавьте следующую строку, если переменная $PROMPT_COMMAND
уже была задана :
PROMPT_COMMAND='$PROMPT_COMMAND; history -a'
Контролируйте Bash History
HISTCONTROL - представляет из себя список опций, разделенных двоеточиями.
Они контролируют каким образом список команд сохраняется в истории.
Опция | Описание |
---|---|
ignorespace | не сохранять строки начинающиеся с символа <пробел> |
ignoredups | не сохранять строки, совпадающие с последней выполненной командой |
ignoreboth | использовать обе опции 'ignorespace' и 'ignoredups' |
erasedups | удалять ВСЕ дубликаты команд с истории |
Опция | Описание |
---|---|
ignorespace | не сохранять строки начинающиеся с символа <пробел> |
ignoredups | не сохранять строки, совпадающие с последней выполненной командой |
ignoreboth | использовать обе опции 'ignorespace' и 'ignoredups' |
erasedups | удалять ВСЕ дубликаты команд с истории |
Пример :
export HISTCONTROL=ignorespace:erasedups
Игнорировать Определенные Команды
HISTIGNORE - список шаблонов через двоеточие, используемых для принятия решения о сохранении строк с командами в списке истории.
Не сохранять команды ls
, ps
и history
:
export HISTIGNORE="ls:ps:history"
Не сохранять команды начинающиеся с s
:
export HISTIGNORE="s*"
Одна Команда - Одна Запись в Истории
Сохранять все строки многострочной команды в одной записи списка истории :
shopt -s cmdhist
Изменить Имя Файла с Историй Команд
Используйте HISTFILE
для изменения имени файла, в котором сохраняется история команд. Стандартное значение ~/.bash_history
.
export HISTFILE=~/.custom_file