Linux — дата и время в history

Давно хотел запостить статейку, как напоминалку для себя. Но не так давно, наш хороший товарищ Евгений опубликовал у себя на форуме опередив нас.

Итак, очень часто приходиться обращаться к bash history для информации, что и что делал на серваке, но вот тут засада, он не отображает ни даты, ни времени и мы попробуем с Вами узнать как отобразить время в Linux history время:

Для начала, что такое history — это команда, которая отображает список, а точнее историю вводимых команд, т.е. для просмотра последних вводимых команд достаточно ввести в терминале команду history и просмотреть всю историю, которая будет выглядеть например так:

history
...
12 firewall-cmd --permanent --add-service=http
13 firewall-cmd --reload
14 reboot
...

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

HISTTIMEFORMAT="%d/%m/%y %T "

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

Срузу уточню, тут кому как угодно или одной строкой в терминале как в примере ниже или открываете  nano .bash_profile

echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bash_profile

Так же рекомендую перед сохранением настроек сделать следующие настройки:

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

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

export HISTSIZE=100000

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

export HISTFILESIZE=100000

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

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

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

shopt -s histappend

Добавляем Команды 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'

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

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

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

export HISTIGNORE="ls:ps:history"

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

export HISTIGNORE="s*"

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

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

shopt -s cmdhist

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

. ~/.bash_profile

Вводим пару команд, снова смотрим используя команду history:

history
...
78 11/01/19 21:12:38 echo "Hello from Securixy.kz"
79 11/01/19 21:12:54 history
 Взято © https://sys-adm.in и https://www.shellhacks.com
Tagged with: