Linux中國

如何在 Linux 中使用 history 命令

隨著我在終端中花費越來越多的時間,我感覺就像在不斷地尋找新的命令,以使我的日常任務更加高效。GNU 的 history 命令是一個真正改變我日常工作的命令。

GNU history 命令保存了從該終端會話運行的所有其他命令的列表,然後允許你重放或者重用這些命令,而不用重新輸入它們。如果你是一個老玩家,你知道 history 的力量,但對於我們這些半吊子或新手系統管理員來說, history 是一個立竿見影的生產力增益。

歷史 101

要查看命令歷史,請在 Linux 中打開終端程序,然後輸入:

$ history

這是我得到的響應:

1  clear
2  ls -al
3  sudo dnf update -y
4  history

history 命令顯示自開始會話後輸入的命令列表。 history 有趣的地方是你可以使用以下命令重放任意一個命令:

$ !3

提示符中的 !3 告訴 shell 重新運行歷史列表中第 3 個命令。我還可以輸入以下命令來使用:

linuser@my_linux_box: !sudo dnf

history 將搜索與你提供的模式相匹配的最後一個命令,並運行它。

搜索歷史

你還可以輸入 !! 重新運行命令歷史中的最後一條命令。而且,通過與grep 配對,你可以搜索與文本模式相匹配的命令,或者通過與 tail 一起使用,你可以找到你最後幾條執行的命令。例如:

$ history | grep dnf
3  sudo dnf update -y
5  history | grep dnf
$ history | tail -n 3
4  history
5  history | grep dnf
6  history | tail -n 3

另一種實現這個功能的方法是輸入 Ctrl-R 來調用你的命令歷史記錄的遞歸搜索。輸入後,提示變為:

(reverse-i-search)`':

現在你可以開始輸入一個命令,並且會顯示匹配的命令,按回車鍵執行。

更改已執行的命令

history 還允許你使用不同的語法重新運行命令。例如,如果我想改變我以前的命令 history | grep dnfhistory | grep ssh,我可以在提示符下執行以下命令:

$ ^dnf^ssh^

history 將重新運行該命令,但用 ssh 替換 dnf,並執行它。

刪除歷史

有時你想要刪除一些或全部的歷史記錄。如果要刪除特定命令,請輸入 history -d <行號>。要清空歷史記錄,請執行 history -c

歷史文件存儲在一個你可以修改的文件中。bash shell 用戶可以在他們的家目錄下找到 .bash_history

下一步

你可以使用 history 做許多其他事情:

  • 將歷史緩衝區設置為一定數量
  • 記錄歷史中每行的日期和時間
  • 防止某些命令被記錄在歷史記錄中

有關 history 命令的更多信息和其他有趣的事情,請參考 GNU Bash 手冊

via: https://opensource.com/article/18/6/history-command

作者:Steve Morris 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國