如何在 Linux 中有效地使用 history 命令

Linux Story

純正開源之美 有趣、有料、有意思

GNOME.Asia 2017 峰會優秀志願者!

許多 Linux 服務器的管理員需要花費大量時間在命令行上,因此查看 history 命令對他們來說是必不可少的。

以 BASH(Bourne Again SHell)為代表的用於與操作系統交互的默認命令行 Shell 在大多數主要的 Linux 發行版中被使用。

什麼是 history 命令

history 命令被用於列出以前輸入的命令和 Bash 日誌。

這個日誌被稱為 “history” ,它能夠使我們快速查看以前在系統上執行的內容。

BASH 將關閉終端會話時所運行的所有命令並寫入你的歷史記錄文件。

<table><tbody>

1

2

~/.bash_history

/<tbody>/<table>

當你同時運行兩個會話的時候,history 命令將單獨顯示當前的會話記錄,而不會顯示其他的歷史會話記錄。

如何查閱歷史命令

單獨運行 history 命令,無需其他選項就可以查閱先前運行的命令。如果你有大量的歷史記錄,則無法正確地看到這些記錄。在這些情況下,你必須使用諸如 less , more 等的文件視圖命令。

如何查閱最後的“ n ”命令

默認情況下,history 命令顯示我們執行的最後1000條命令。如果你只想列出“ n ”個命令,請使用以下命令。例如,顯示最近的10個歷史記錄,請運行以下命令。

history n

如何運行先前執行的命令

使用 UP 和 DOWN 方向鍵來回滾動用於瀏覽以前輸入的命令。

按 Enter 鍵執行它們或使用 Left 和 Right 鍵編輯命令。

重複上一個命令

重複執行你的最後一條命令,請運行以下命令。

!! – Double exclamation point

使用它的編號重複執行先前的命令

使用它的編號重複執行之前的命令。這將會很快地運行先前執行的命令,而不需要再次輸入長長的命令。

搜索並運行先前執行的命令

History 命令提供了各種搜索選項,這將允許我們搜索並運行先前執行的命令。

運行在字符串開始處匹配的命令

運行匹配給定字符串的命令

為了能夠執行這個操作,這裡作者調取了最後30個歷史日誌來進一步說明。

如果你想運行在字符串開始處匹配的命令,請使用以下格式,它將運行以 doc 字符串開頭的最新命令。以作者的情況為例,它將運行位於756行的 docker run 命令。


docker run

如果你想運行匹配給定字符串的命令,請使用以下格式,以作者的情況為例,它將運行以位於754行的 docker ps 命令。

docker ps

如何替換字符串並運行先前執行的命令

如果你想用新字符串重複上一個命令,只需要將 string1 替換為 string2 即可。(相當於使用以下命令)

<table><tbody>

1

2

> !!:s/string1/string2/

/<tbody>/<table>

請使用以下格式。首先在下面的例子中,作者以及運行了 Fedora docker image,然後用 CentOS 而不是 Fedora 替換字符串。

如果你想運行先前使用的新字符串執行的任何具體命令,請使用以下任何一種命令格式。

以作者的情況為例。位於821行的 history 命令是 fedora docker 的容器。要想運行 centos 容器,只需將字母替換成 centos 。

使用 grep 命令列出匹配字符串

如果你已經在 docker 運行了很多命令,那麼使用 grep 和 docker 命令可以很容易地顯示匹配的命令列表。

如何在歷史命令中顯示日期和時間

默認情況下,history 命令只顯示用戶執行的命令,不顯示日期和時間,但會記錄運行命令的時間。

如果你想在 history 命令中輸出添加日期和時間,請導航至以下的鏈接。

Suggested Read :How To Display Date And Time In History Command

如何使用 YUM 命令來回滾更新

Yum( Yellowdog Update Modified )是 CentOS 和 Red Hat 系統的 RPM 軟件包管理工具。Yum 的 history 命令允許管理員將系統回滾到先前的狀態,但由於一些限制,回滾在所有的情況下都不起作用,或者 yum 命令可能不會執行任何操作,同時也可能移除您所不期望的包。

Suggested Read :How To Use YUM History Command To Rollback An Updates

如何查看其他用戶的歷史記錄

使用以下命令查看其他用戶記錄。

<table><tbody>

1

2

> # more /home/$USER/.bash_history

/<tbody>/<table>

如何通過 BASH History 進行搜索

我們可以通過敲擊 CTRL-R 鍵使用關鍵字搜索先前執行的命令(這將會在歷史記錄中向後搜索並且優先顯示最近的結果)。再次按 CTRL-R 查看下一個結果。

<table><tbody>

1

2

> # (reverse-i-search)'dock': docker run -ti centos /bin/bash

/<tbody>/<table>

本文由 LinuxStory 志願者 Sunling 翻譯,更多詳情請查看原文。

原文鏈接:https://www.2daygeek.com/how-to-use-history-command-effectively-in-linux/

本文鏈接:https://linuxstory.org/how-to-use-histo…ctively-in-linux/