Давно хотел запостить статейку, как напоминалку для себя. Но не так давно, наш хороший товарищ Евгений опубликовал у себя на форуме опередив нас.
Итак, очень часто приходиться обращаться к 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