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

Включить временную метку для команды истории в Zsh в Linux

Включение отметки времени в выводе команды истории помогает нам определить, когда в Linux выполняется определенная команда. Мы уже видели, как включить временную метку в истории Bash. Сегодня давайте посмотрим, как включить временную метку для команды history в оболочке Zsh в Linux.

Включить временную метку для команды истории в оболочке Zsh

Вы можете отображать отметки даты и времени в выводе истории Bash в Linux, используя переменную среды HISTTIMEFORMAT. Однако вам не нужно устанавливать переменную env в Zsh. Zsh по умолчанию имеет несколько встроенных флагов для отображения даты и времени в выводе команды истории.

Сначала давайте просмотрим список ранее выполненных команд в сеансе zsh с помощью команды history:

% history

Пример вывода:

    1  lsb_release -a
    2  uname -r
    3  hostname
    4  ls -l
    5  touch ostechnix.txt
    6  clear

вывод команды истории в сеансе zsh

Как видите, команда history не отображает временную метку. Он отображает только номер префикса каждой команды.

Чтобы включить временную метку для команды истории, т. е. показывать дату и время во всех командах оболочки zsh, используйте флаг -f с командой history:

% history -f

Теперь вы увидите дату и время в выводе команды history в оболочке zsh:

    1  11/28/2020 17:00  lsb_release -a
    2  11/28/2020 17:00  uname -r
    3  11/28/2020 17:00  hostname
    4  11/28/2020 17:00  ls -l
    5  11/28/2020 17:00  touch ostechnix.txt
    6  11/28/2020 17:00  clear
    7  11/28/2020 17:01  history

Включить временную метку для команды истории в оболочке Zsh

Здесь флаг -f используется для печати полных отметок даты и времени в формате 'US MM/DD/YY hh:mm'.

Если вы хотите распечатать полные отметки даты и времени в формате 'Европейский дд.мм.гггг чч:мм', используйте флаг -E.

% history -E

Пример вывода:

    1  28.11.2020 17:00  lsb_release -a
    2  28.11.2020 17:00  uname -r
    3  28.11.2020 17:00  hostname
    4  28.11.2020 17:00  ls -l
    5  28.11.2020 17:00  touch ostechnix.txt
    6  28.11.2020 17:00  clear
    7  28.11.2020 17:01  history
    8  28.11.2020 17:06  history -f

Аналогично, чтобы распечатать отметки даты и времени в формате 'ISO8601 гггг-мм-дд чч:мм', используйте флаг -i:

% history -i

Пример вывода:

    1  2020-11-28 17:00  lsb_release -a
    2  2020-11-28 17:00  uname -r
    3  2020-11-28 17:00  hostname
    4  2020-11-28 17:00  ls -l
    5  2020-11-28 17:00  touch ostechnix.txt
    6  2020-11-28 17:00  clear
    7  2020-11-28 17:01  history
    8  2020-11-28 17:06  history -f
    9  2020-11-28 17:18  history -E

Если вы хотите напечатать только время, используйте флаг -d.

% history -d

Пример вывода:

    1  17:00  lsb_release -a
    2  17:00  uname -r
    3  17:00  hostname
    4  17:00  ls -l
    5  17:00  touch ostechnix.txt
    6  17:00  clear
    7  17:01  history
    8  17:06  history -f
    9  17:18  history -E
   10  17:18  history -i

Отображение отметок даты и времени в выводе истории с помощью команды fc

Другой способ включить временные метки в вывод истории в оболочке zsh — использовать команду fc. Команда fc, сокращение от fix commands, представляет собой встроенную команду оболочки, используемую для перечисления, редактирования и повторного выполнения наиболее недавно введенные команды в интерактивную оболочку.

Чтобы отобразить полную временную метку в выводе истории с помощью команды fc, просто запустите:

% fc -lf

Пример вывода:

    1  11/28/2020 17:00  lsb_release -a
    2  11/28/2020 17:00  uname -r
    3  11/28/2020 17:00  hostname
    4  11/28/2020 17:00  ls -l
    5  11/28/2020 17:00  touch ostechnix.txt
    6  11/28/2020 17:00  clear
    7  11/28/2020 17:01  history
    8  11/28/2020 17:06  history -f
    9  11/28/2020 17:18  history -E
   10  11/28/2020 17:18  history -i
   11  11/28/2020 17:19  history -d

Отображение отметок даты и времени в выводе истории с помощью команды fc

Как упоминалось ранее, флаг -f печатает полные отметки времени и даты в формате США, т. е. 'MM/DD/YY hh:mm' .

Если вы хотите отображать временные метки в выводе истории в европейском формате, то есть дд.мм.гггг чч:мм, используйте флаг -E:

% fc -lE

Пример вывода:

    1  28.11.2020 17:00  lsb_release -a
    2  28.11.2020 17:00  uname -r
    3  28.11.2020 17:00  hostname
    4  28.11.2020 17:00  ls -l
    5  28.11.2020 17:00  touch ostechnix.txt
    6  28.11.2020 17:00  clear
    7  28.11.2020 17:01  history
    8  28.11.2020 17:06  history -f
    9  28.11.2020 17:18  history -E
   10  28.11.2020 17:18  history -i
   11  28.11.2020 17:19  history -d
   12  28.11.2020 17:43  fc -lf

Чтобы отображать временные метки в формате ISO8601 (т. е. гггг-мм-дд чч:мм), используйте флаг -i:

% fc -li

Пример вывода:

    1  2020-11-28 17:00  lsb_release -a
    2  2020-11-28 17:00  uname -r
    3  2020-11-28 17:00  hostname
    4  2020-11-28 17:00  ls -l
    5  2020-11-28 17:00  touch ostechnix.txt
    6  2020-11-28 17:00  clear
    7  2020-11-28 17:01  history
    8  2020-11-28 17:06  history -f
    9  2020-11-28 17:18  history -E
   10  2020-11-28 17:18  history -i
   11  2020-11-28 17:19  history -d
   12  2020-11-28 17:43  fc -lf
   13  2020-11-28 18:01  fc -lE

Если вы хотите показывать только время, используйте флаг -d:

% fc -ld

Пример вывода:

    1  17:00  lsb_release -a
    2  17:00  uname -r
    3  17:00  hostname
    4  17:00  ls -l
    5  17:00  touch ostechnix.txt
    6  17:00  clear
    7  17:01  history
    8  17:06  history -f
    9  17:18  history -E
   10  17:18  history -i
   11  17:19  history -d
   12  17:43  fc -lf
   13  18:01  fc -lE
   14  18:02  fc -li

Вы также можете отображать выходные данные истории с временными метками, начиная с определенной записи в истории. Например, чтобы просмотреть вывод истории, начиная с команды 5th, с временными метками в zsh, выполните:

% fc -li 5

Пример вывода:

    5  2020-11-28 17:00  touch ostechnix.txt
    6  2020-11-28 17:00  clear
    7  2020-11-28 17:01  history
    8  2020-11-28 17:06  history -f
    9  2020-11-28 17:18  history -E
   10  2020-11-28 17:18  history -i
   11  2020-11-28 17:19  history -d
   12  2020-11-28 17:43  fc -lf
   13  2020-11-28 18:01  fc -lE
   14  2020-11-28 18:02  fc -li
   15  2020-11-28 18:05  fc -ld

Более подробную информацию можно найти на странице руководства:

% man zsh
% man fc

Вы используете оболочку Fish? Ознакомьтесь со следующим руководством, чтобы включить временную метку в оболочке Fish:

  • Включить временную метку для команды истории в Fish Shell

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