Поиск по сайту:

Как включить временную метку в истории 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

Статьи по данной тематике