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