Хотите добавить временую метку (дату и время) рядом с каждой выполненной командой в истории Bash? Это можно сделать, используя переменную HISTTIMEFORMAT Bash.
Bash хранит историю введенных вами команд, доступ к которой можно получить, набрав команду history. По умолчанию вы видите число, за которым следуют команды, которые вы недавно использовали:
1 2 3 4 5 6 7 |
$ history 1889 cd Cloaker/ 1890 ./Cloaker.run 1891 sudo apt upgrade 1892 sudo apt autoremove 1893 history |
С помощью переменной Bash <strong>HISTTIMEFORMAT</strong> вы можете показать дату и время выполнения каждой команды. Это может быть полезно в различных случаях, в том числе для запоминания того, какие команды вы выполняли в определенный период времени, для отмены различных операций.
РЕКОМЕНДУЕМ:
Использование терминала Linux в качестве калькулятора
Стоит отметить, что если эта переменная установлена, отметки времени записываются в файл истории, поэтому они сохраняются в сеансах оболочки. Исходя из этого, при первом включении вы не увидите правильную дату и время для ранее использованных вами команд.

Задайте историю Bash, чтобы отображать временную метку для истории команд (только для текущего сеанса терминала) с помощью этой команды:
1 |
HISTTIMEFORMAT="%F %T " |
Эта команда предназначена только для этого сеанса, поэтому вы можете посмотреть, как она выглядит, и при желании настроить формат даты и времени (см. Ниже).
Теперь введите history, и вы должны увидеть метки времени для ваших команд истории Bash:
1 2 3 4 5 6 7 |
$ history 2027 2019-07-12 13:02:31 sudo apt update 2028 2019-07-12 13:02:33 history 2029 2019-07-12 13:03:35 HISTTIMEFORMAT="%F %T " 2029 2019-07-12 13:03:38 man date 2030 2019-07-12 13:03:55 history |
Мы экспортировали HISTTIMEFORMAT со следующей отметкой времени:
- <strong>%F</strong>: полная дата (год-месяц-дата)
- <strong>%T</strong>: время (час: минуты: секунды)
Есть проблем после <strong>%T</strong> и до <strong>"</strong>, так что в истории Bash есть пробел между временем выполнения команды и самой командой. Без нее эти два не будут разделены.
Вы можете настроить формат даты и времени. Используйте <strong>HISTTIMEFORMAT="%Y/%m/%d %T "</strong>, чтобы показать дату и время как год (4 цифры) или вывести дату в виде месяц/день/год (2 цифры) <strong>%m/%d/%y</strong>.
Теперь пришло время экспортировать <strong>HISTTIMEFORMAT</strong> из вашего файла <strong>~/.bashrc</strong>, чтобы установить его по умолчанию для всех новых сеансов терминала вашего пользователя. Вы можете открыть файл <strong>~/.bashrc</strong> в текстовом редакторе и вставить экспорт <strong>export HISTTIMEFORMAT="%F %T "</strong> (или другой формат даты и времени) внизу, затем сохранить файл или запустить эту команду, чтобы записать это в ваш <strong>~/.bashrc</strong>:
1 |
echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc |
Запустите эту команду только один раз, потому что она добавляет <strong>export HISTTIMEFORMAT="%F %T "</strong> в <strong>~/.bashrc</strong> при каждом запуске.
После этого остается только получить файл <strong>~/.bashrc</strong>, чтобы текущий сеанс терминала использовал новые настройки (или вы можете открыть новый терминал, и он автоматически выберет новые настройки HISTTIMEFORMAT):
1 |
source ~/.bashrc[crayon-67af1a9099f5f028986452 inline="true" ] |
[/crayon]
РЕКОМЕНДУЕМ:
Как изменить цвет терминала Linux и добавить интересные функции
На этом все. Теперь вы знаете как отобразить точное время выполнения команд в истории команд Bash.