歷史:改進控制台的使用

終端

在此,我的第一篇文章 DesdeLinux,我想簡單介紹一下任何 Linux 的一個不太出名但非常實用的控制台或 shell 命令。我是說 歷史.

幾乎每個使用 Linux 的人都知道,如果我們在終端中按向上箭頭,它會向我們顯示之前使用的命令,如果我們繼續按,我們將返回該命令列表。 轉向你 !! 將執行最後使用的命令。 嗯,這要歸功於 歷史,但它的潛力並不止於此,因為如果我們直接執行它,我們將獲得包含最後一千個命令的列表:

sebastian:~$ history
1543 ping -c 2 desdelinux.net
1544 clear
1545 sudo apt-get update
1546 uname
1547 history

該列表本身會更長,但僅舉幾個例子就足夠了。 從現在開始 我們可以看到所有使用過的命令的歷史記錄 旁邊有一個數字,可以讓我們在所述列表中找到我們想要的數字。 如果你願意你也可以這樣做 歷史 顯示相同的執行日期.

所以,寫 ! 加上行號,shell 將執行與該行對應的命令:

sebastian:~$ !1543
ping -c 2 desdelinux.net
PING desdelinux.net (192.31.186.28) 56(84) bytes of data.

但是,我們也可以通過字母執行,因為如果我們把 !+un 將執行“1546”行,因為 運行以這些字母開頭的最後一個命令.

sebastian@soporte-mesi01:~$ !un
uname
Linux

但要小心,因為這可能有風險,因為我們不知道哪個命令是以這些字母開頭的最後一個命令,因此恢復以前使用的命令的最佳方法是 組合鍵 CTRL+r,它將為我們提供一個搜索引擎 並且,正如我們所寫,它將向我們顯示最後一個匹配的完整命令。 所以用擠壓 進入 會運行它。

相反,如果我們想列出所有使用命令的時間,則必須使用 grep:
sebastian:~$ history | grep uname
1499 uname -r
1500 uname -a
1546 uname
1549 uname
1550 history | grep uname

它只會列出搜索單詞所在的行,在本例中為“UNAME“。


14條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   拉夫 他說:

    傑出的! 謝謝你的提示

  2.   靜態 他說:

    恭喜,非常好的提示。

  3.   uk 他說:

    這就是我一直在尋找的,謝謝!

  4.   勝利者 他說:

    我不知道 Ctrl+r,我要練習它,以便它保留在大腦數據庫中。
    您還可以在帖子中添加命令“$history-c”,如您所知,該命令用於刪除歷史記錄,如果我們不想留下線索或者如果我們通過輸入某些命令弄髒了太多歷史記錄,則通常很有用錯誤的。
    問候和感謝的帖子!

    1.    Thalskarth 他說:

      我知道使用 -c 參數,但事實是我從未使用過它

  5.   阿爾貝托 他說:

    非常有趣的快捷鍵“Ctrl + r”。 添加,如果我們打開多個終端,“歷史記錄”命令僅顯示該終端中的終端,直到打開另一個新終端。
    它還可以與“tail”命令(查看最後的命令)或“less”一起使用以按頁查看它們。

    您好!

  6.   加布里埃爾 他說:

    這些是一些有時會被忘記的小技巧,但它們非常有用,謝謝😉

  7.   維托 他說:

    太棒了
    多虧了這一點,而不是輸入 rsync -avl -stats -progress /media/data/WEBS/ /media/WD/WEBS
    我只要寫!496,以後就這樣了!!
    我總是後悔自己開始接觸Linux的時間太晚,但也總是為自己開始接觸Linux而感到幸運。
    感謝您提供這些命令。 說明書上肯定有,但我從來不看,就像我買一個小玩意兒時,我最後看的就是說明書。
    謝謝。
    收到熱烈的問候。

    1.    丹尼爾·羅哈斯(Daniel Rojas) 他說:

      Vito,請記住,歷史記錄中的行數將會改變,因為會添加更多行。 為了避免輸入整行,我建議您將其作為別名添加到 .bashrc 中,這樣只需輸入您分配的別名的名稱就會執行您分配給它的整行。

      的問候!

      1.    維托 他說:

        謝謝。
        這個數字就是我的案例的例子。 我的歷史中就有這個數字,因此我嘗試了這個技巧。 我知道它會發生變化,每次運行它時,都會出現相同的命令並帶有新的數字。

        關於 .bashrc 中的別名,我知道它,我只用它來用“pan”而不是適當的命令關閉監視器(sleep 1 && xset dpms 強制關閉),但我不經常使用別名,因為我使用的命令很多,那麼我就有必須記住別名的問題; 我最終遇到了兩倍的麻煩。 記住命令或記住命令別名。

        這樣,我記住“歷史”就省錢了,甚至更容易記住“歷史|歷史”。 grep rsync”,用於當我需要備份我的工作時。 後者是我看到的實用程序之一的示例。

        毫無疑問,我發現它對於保護我的大腦 RAM 非常有用,至少對我來說是這樣,因為我的大腦 RAM 非常低。 這樣我就不用記住幾十條命令了。

        謝謝你的回复。

        接受親切的問候。

  8.   迭戈 他說:

    執行(不帶引號)“history>history.txt”也非常有用,從而將我們執行的命令保存在文本文件中。

    1.    Thalskarth 他說:

      是的,您甚至可以始終在中間使用 grep 進行過濾,例如使用類似的內容
      history | grep uname >pru.txt
      然後,txt 只會使用“uname”命令保存結果😉

  9.   華金 他說:

    最好的:Ctrl + r

  10.   約達 他說:

    好文章,非常有用。 謝謝你的信息🙂