Как включить временную метку в истории Bash в Linux
Вы можете легко найти список недавно выполненных команд в Linux, используя команду history
, верно? Да. Но как узнать время выполнения команды? Конечно, вы можете искать в файлах журналов. Однако есть более простой способ. Вы можете просто включить временную метку в истории Bash в Linux, чтобы было легче найти, когда в Linux была выполнена конкретная команда.
Включить временную метку в истории Bash в Linux
Bash хранит историю команд, введенных в Терминал. Этот список команд сохраняется в файле с именем .bash_history
в нашем HOME-каталоге. Большинство дистрибутивов Linux по умолчанию запоминают последние 1000 команд. Мы можем получить недавно выполненные команды, используя ash команды history
, показанный ниже:
history
Пример вывода:
вывод команды истории без отметки времени
Как вы видите в приведенном выше выводе, хотя команда истории отображает список ранее выполненных команд, она не показывает, когда эти команды были выполнены.
Чтобы включить временную метку в истории Bash в Linux, вам необходимо установить переменную среды HISTTIMEFORMAT
. Эта переменная используется для печати отметки времени, связанной с каждой отображаемой записью истории.
Выполните следующую команду, чтобы установить переменную env HISTTIMEFORMAT
:
export HISTTIMEFORMAT='%F %T '
Здесь опция %F
используется для отображения даты в формате ГГГГ-ММ-Д
D (Год-Месяц-Дата). А опция %T
используется для отображения времени в формате ЧЧ:ММ:СС
(часы-минуты-секунды).
Теперь снова запустите команду history
, и вы увидите временную метку перед каждой командой:
Включить временную метку в истории Bash
Идеальный! Теперь вы можете легко узнать, когда в вашей системе Linux выполняется определенная команда.
Если вы хотите отобразить временные метки для последних команд «N», например 10
, передайте вывод команды history
команде tail
, как показано ниже. :
history | tail -10
Обратите внимание, что временные метки для новых записей history
будут установлены только после того, как для сеансов будет установлена переменная среды HISTTIMEFORMAT
.
Вы также можете настроить формат даты по своему вкусу, как показано в следующей команде:
export HISTTIMEFORMAT='%d/%m/%y %T '
Эта переменная среды показывает дату и время в истории команды в формате дд/мм/год, например: 27.11.20 19:11:55
.
Чтобы сделать переменную env HISTTIMEFORMAT
постоянной при перезагрузке системы, отредактируйте файл ~/.bashrc
:
nano ~/.bashrc
Добавьте в конце следующую строку:
export HISTTIMEFORMAT='%F %T '
Или,
export HISTTIMEFORMAT='%d/%m/%y %T '
Нажмите CTRL+O
, чтобы сохранить файл, и нажмите CTRL+X
, чтобы выйти.
Выполните следующую команду, чтобы изменения вступили в силу немедленно:
source ~/.bashrc
При этом будет отображаться только временная метка текущего пользователя. Чтобы включить временную метку истории Bash для всех пользователей системы, отредактируйте файл /etc/profile
:
sudo nano /etc/profile
и добавьте эту строку:
export HISTTIMEFORMAT='%F %T '
Или,
export HISTTIMEFORMAT='%d/%m/%y %T '
Сохраните и закройте файл. Чтобы изменения вступили в силу, запустите:
sudo source /etc/profile
Более подробную информацию можно найти на страницах руководства:
man bash
Теперь вы знаете, как отображать дату и время в выводе команды истории в Linux. Как уже говорилось, если вы когда-нибудь хотели проверить, когда выполняется команда, просто включите временную метку в команде истории bash, как описано выше.
Вы используете оболочку Fish или Zsh? Ознакомьтесь со следующими уроками, чтобы узнать, как включить временную метку в команде history
:
- Включить временную метку для команды истории в Fish Shell
- Включить временную метку для команды истории в Zsh в Linux
Надеюсь это поможет.
Связанное чтение:
- Как очистить историю командной строки в Linux
- Как отобразить историю Bash без номеров строк
- Как избежать дублирования записей в истории Bash в Linux
- Определение времени выполнения команды или процесса в Linux