在 Linux 的 Zsh 中啟用歷史命令的時間戳記
在歷史命令輸出中啟用時間戳可以幫助我們找出某個命令在 Linux 中的執行時間。我們已經看到如何在 Bash 歷史中啟用時間戳。今天讓我們看看如何在 Linux 的 Zsh shell 中為history命令啟用時間戳。
在 Zsh Shell 中啟用歷史命令的時間戳記
您可以使用 HISTTIMEFORMAT 環境變數在 Linux 的 Bash 歷史輸出中顯示日期和時間標記。然而,在 Zsh 中您不需要設置任何環境變數。Zsh 默認情況下已經有一些內建標誌可以在 history 命令輸出中顯示日期和時間。
首先,讓我們使用 history 指令查看 zsh 會話中先前執行的命令列表:
% history範例輸出:
1 lsb_release -a
2 uname -r
3 hostname
4 ls -l
5 touch ostechnix.txt
6 clear如您所見,history 命令不會顯示時間戳記。它只會顯示每個命令的前綴編號。
要為 history 命令啟用時間戳,即在 zsh shell 的所有命令中顯示日期和時間,請在 history 命令中使用 -f 標誌:
% history -f現在你將在 zsh 殼程式的 history 命令輸出中看到日期和時間:
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在這裡,-f 標誌用於以 'US MM/DD/YY hh:mm' 格式打印完整的日期和時間標記
如果你想以 ‘歐洲 dd.mm.yyyy 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 yyyy-mm-dd hh:mm' 格式列印日期和時間戳,請使用 -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 shell 中啟用歷史輸出時間戳的另一種方法是使用 fc 命令。fc 命令,全名為 fix commands,是一個 shell 內建命令,用於列出、編輯並重新執行最近輸入到互動式 shell 的命令。
要在歷史輸出中使用 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如前所述,-f 參數會以 美式格式 打印完整的日期時間戳,即 'MM/DD/YY hh:mm'。
如果你想在歷史輸出中以歐洲格式顯示時間戳,格式為dd.mm.yyyy 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 格式(即 yyyy-mm-dd hh:mm)顯示時間戳記,使用 -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您也可以從歷史記錄中的特定條目開始,顯示帶有時間戳的歷史輸出。例如,要在 zsh 中列出從第 5個命令開始的歷史輸出並帶有時間戳,請執行:
% 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 頁面:
% man zsh% man fc你正在使用 Fish shell 嗎?請查看以下指南以在 Fish shell 中啟用時間戳記:
- 在 Fish Shell 中為歷史命令啟用時間戳

