Отображение времени в выводе команды history в Linux

Автор: | 13/05/2024

Для отображения времени, нужно определить формат переменной окружения HISTTIMEFORMAT, например указав дату и время в такой последовательности:

Где %d – день, %m – месяц, %y – год, %T – время
Эту переменную необходимо добавить в свой .bash_profile:

Применяем настройки:

Дата и время должны появится в выводе команды history.

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

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

Запретить перезапись файла .bash_history
Добавьте следующую строку в ~/.bashrc:

Мгновенное сохранение истории команд

По умолчанию, Bash записывает историю команд в .bash_history, при завершении сессии.
Если сессия внезапно оборвется Вы потеряете текущую историю команд.
Используйте переменную $PROMPT_COMMAND, чтобы сохранять команды сразу после выполнения:

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

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

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

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

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

Не забываем применять настройки после добавления переменных и дополнительных настроек:

https://securixy.kz/hack-faq/linux/linux-data-i-vremja-v-history.html