如何在linux或macos終端中使用bash歷史記錄

bashshell是大多數Linux發行版附帶的標準終端環境,macOS附帶,可在windows10上安裝。它會記住您鍵入的命令並將其儲存在歷史檔案中。您可能知道bash歷史的一些基本知識,但它比您可能意識到的強大得多。...

如何在linux或macos終端中使用bash歷史記錄

bashshell是大多數Linux發行版附帶的標準終端環境,macOS附帶,可在windows10上安裝。它會記住您鍵入的命令並將其儲存在歷史檔案中。您可能知道bash歷史的一些基本知識,但它比您可能意識到的強大得多。

鍵盤快捷鍵

相關:Bash的最佳鍵盤快捷鍵(又稱Linux和macOS終端)

要滾動瀏覽bash歷史,可以使用bash的許多有用的鍵盤快捷鍵中的一些。按這些快捷鍵,您以前使用過的命令將出現在提示處。

  • 向上箭頭或Ctrl+P:轉到歷史記錄中的上一個命令。多次按該鍵可向後瀏覽所使用的命令。
  • 向下箭頭或Ctrl+N:轉到歷史記錄中的下一個命令。多次按該鍵可瀏覽所使用的命令。
  • Alt+R:如果在當前行中編輯了從歷史記錄中提取的命令,則還原對該命令所做的任何更改。

Bash還有一種特殊的“回憶”模式,可以用來搜尋以前執行過的命令,而不是逐個滾動。

  • Ctrl+R:呼叫與您提供的字元匹配的最後一個命令。按此快捷方式並開始鍵入以搜尋bash歷史記錄中的命令。
  • Ctrl+O:使用Ctrl+R執行找到的命令。
  • Ctrl+G:離開歷史搜尋模式而不執行命令。

如何在linux或macos終端中使用bash歷史記錄

檢視bash歷史記錄

您可以透過執行一個命令將整個bash歷史記錄列印到螢幕上:

history

您將看到bash歷史中所有命令的列表,每個命令的左邊都有一個數字。旁邊帶有“1”的命令是bash歷史上最早的命令,而數字最大的命令是最近的命令。

如何在linux或macos終端中使用bash歷史記錄

相關:使用以下8個技巧成為Linux終端超級使用者

你可以用輸出做任何你喜歡的事情。例如,您可以透過管道將其傳送到grepcommand來搜尋您的命令歷史記錄。

history | grep your_search

如何在linux或macos終端中使用bash歷史記錄

您還可以透過管道將其傳送到tail命令,以便僅檢視最近執行的少量命令。例如,下面的命令將顯示歷史記錄中的最後5個條目。

history | tail -5

如何在linux或macos終端中使用bash歷史記錄

執行歷史記錄中的命令

Bash可以快速“擴充套件”以前的命令,或者擴充套件並修改它們。此功能稱為“歷史擴充套件”,並使用感嘆號,稱為“bang”。只需在提示符處鍵入它們,然後按Enter鍵執行它們,就像執行任何其他命令一樣。

要從歷史記錄中按編號執行特定命令,請使用以下命令:

!#

例如,假設您想執行bash歷史記錄中的第12個命令。當您執行history命令時,該命令的左邊有一個“12”。您可以鍵入以下命令。

!12

如何在linux或macos終端中使用bash歷史記錄

要重新執行上次執行的命令,請鍵入以下命令。這與按一次向上箭頭檢視上一個命令,然後按Enter鍵的效果相同。

!!

您也可以將某個命令引用回一定數量的行。例如!-2將執行您執行的倒數第二個命令!!意思和…一樣!-1 .

如何在linux或macos終端中使用bash歷史記錄

這個擴充套件線上路的任何地方都有效。你可以在之前或之後新增任何你喜歡的內容!!或本節中的任何其他表示式。例如,您可以鍵入以下命令來重新執行透過sudo執行的最後一個命令,並賦予它root許可權。如果在執行命令之前忘記新增sudo,這將特別有用。

sudo !!

或者,例如,您可以重新執行上一個命令並將其輸出傳輸到grep以搜尋某些文字。

!! | grep text

如何在linux或macos終端中使用bash歷史記錄

要在歷史記錄中搜索命令並執行它,請鍵入以下命令。這將執行與指定文字匹配的最後一個命令:

!text

因此,如果您最近運行了一個以ping開頭的命令,您可以執行以下命令來搜尋它。這將向後搜尋歷史記錄,找到以“pi”開頭的最新命令,並立即執行它:

!pi

如何在linux或macos終端中使用bash歷史記錄

您可以將:p附加到上述任何擴充套件中,bash將在不執行命令的情況下將命令列印到終端。如果要在執行命令之前確認選擇了正確的命令,這將非常有用。

!12:p !!:p !text:p

如何在linux或macos終端中使用bash歷史記錄

重用歷史中的引數

Bash還允許您執行新命令,但使用歷史記錄中以前命令的引數。這可以幫助您快速重用長引數或複雜引數,而無需重新鍵入它們。

command !$

例如,假設您運行了touch/home/chris/some\u long\u file\u name\u命令,您不想再次鍵入\u。你現在想執行命令nano/home/chris/some\u long\u file\u name\u你不想再輸入一次。您可以執行以下命令,而不是從頭開始鍵入整個內容:

nano !$

這個!$將使bash自動填充上一個命令的最後一個引數。

如何在linux或macos終端中使用bash歷史記錄

這隻會填充最後一個引數。所以,如果你跑平谷歌網站-C4然後跑平!$,這隻會擴充套件到“ping 4”。

要解決此問題,可以使用以下技巧展開行中的第一個引數,而不是最後一個引數:

command !^

所以,如果你跑平谷歌網站-C4然後冉平!^,bash將其擴充套件為“ping”谷歌網站".

如何在linux或macos終端中使用bash歷史記錄

要填充上一個命令中使用的所有引數,而不是一個引數,可以使用以下命令:

command !*

所以,如果你跑平了!*相反,bash會自動填充上一個命令中使用的所有引數。

如何在linux或macos終端中使用bash歷史記錄

您可以使用與從歷史記錄中執行命令以獲取引數相同的技巧。請用下面的表格。

command !abc:#

例如,我們在前面運行了sudo hostname命令。如果我們執行以下命令,bash將在歷史記錄中向後搜尋,找到以我們鍵入的字母開頭的最後一個命令,並填寫我們指定的引數。所以,如果我們執行echo!su:2,bash將返回搜尋以“su”開頭的最後一個命令,並填寫第二個引數,即“ubuntu”。

其他的小把戲也會如你所料發揮作用。例如,將數字替換為星號(萬用字元),會導致bash填充命令中的所有引數:

command !abc:*

如何在linux或macos終端中使用bash歷史記錄

重新執行上一個命令並修改它

Bash還允許您重新執行前面的命令並指定應該更改的內容。這對於糾正命令中的拼寫錯誤非常有用。例如,以下命令將重新執行上一個命令,將其中的文字“abc”替換為文字“xyz”。

^abc^xyz

例如,如果你不小心跑了平gogle.com,然後可以執行^gog^goog,bash將執行命令ping谷歌網站相反。

如何在linux或macos終端中使用bash歷史記錄

您的歷史記錄儲存在哪裡,以及如何清除它

預設情況下,bashshell將您在使用者帳戶的歷史檔案~/.bash\u history中執行的命令的歷史記錄儲存在~/.bash\u history中。例如,如果您的使用者名稱是bob,您將在/home/bob/.bash\u history中找到此檔案。

因為您的歷史記錄儲存在一個檔案中,所以它在會話之間保持不變。您可以執行一些命令,登出,第二天返回,這些命令仍將在歷史檔案中,隨時可以檢視和使用。每個使用者帳戶都有自己的歷史檔案和單獨的命令歷史記錄。

要清除bash歷史記錄,可以執行以下命令。這將刪除使用者帳戶的.bash\u歷史檔案的內容:

history -c

如何在linux或macos終端中使用bash歷史記錄

Bash在預設情況下只記住有限數量的命令,以防止歷史檔案變得太大。bash記住的歷史條目數由HISTSIZEvariable控制。預設值通常為500或1000個條目。您可以執行以下命令來檢視系統上bash歷史記錄的大小。

echo $HISTSIZE

要將歷史記錄設定為零,請執行以下命令。

HISTSIZE=0

對於當前會話,bash不會儲存任何歷史記錄條目,除非執行HISTSIZE=1000這樣的命令將其設定回一定數量的條目。

如何在linux或macos終端中使用bash歷史記錄

如何忽略空格和重複項

如果將HISTCONTROLvariable設定為ignorespace,Bash允許您忽略以空格開頭的歷史記錄條目。

HISTCONTROL=ignorespace

在bashshell中執行命令之前,在命令前面鍵入空格,命令將正常執行,但如果啟用此變數,則不會出現在歷史記錄中。這允許您保持您的歷史有點乾淨,選擇執行命令,而不讓它們出現在您的歷史中。

如何在linux或macos終端中使用bash歷史記錄

Bash還允許您忽略重複的命令,這些命令會使歷史變得混亂。為此,請將HISTCONTROL設定為ignoredups。

HISTCONTROL=ignoredups

如何在linux或macos終端中使用bash歷史記錄

要同時使用ignorespace和ignoredups功能,請將HISTCONTROL變數設定為ignoreboth。

HISTCONTROL=ignoreboth

請注意,您設定的bash變數將僅在當前會話中保持。如果願意的話,您需要將這些值新增到使用者帳戶的.bashrc檔案中,以便在啟動的每個bash會話中自動設定這些值。

如何在linux或macos終端中使用bash歷史記錄

bashshell是一個複雜的工具,有比這些更多的選項。請參考官方Bash手冊中的Bash歷史內建和歷史擴充套件部分,瞭解更多詳細資訊和其他可以使用的高階技巧。

  • 發表於 2021-04-08 02:29
  • 閱讀 ( 46 )
  • 分類:網際網路

你可能感興趣的文章

使用以下技巧和技巧成為linux命令列高手

... 如何掌握linux命令列:最後的想法 ...

  • 發佈於 2021-03-12 10:19
  • 閲讀 ( 44 )

如何恢復任何未儲存或覆蓋的microsoft excel檔案

...從頭開始要好得多。讓我們看看這些恢復方法,看看它是如何做到的! ...

  • 發佈於 2021-03-13 20:30
  • 閲讀 ( 54 )

如何定製mac終端並使其更有用

...個新手,現在堅持預設的bashshell是可以的。但你應該知道如何在需要的時候切換它們。 ...

  • 發佈於 2021-03-21 20:13
  • 閲讀 ( 47 )

如何在macos終端中定製zsh提示符

...進行修飾,使其最小化並充分利用空間。我們將向您展示如何定製終端應用程式中的zsh提示符,使其在您選擇的任何背景中都脫穎而出。 ...

  • 發佈於 2021-03-26 16:03
  • 閲讀 ( 57 )

啟動linux的9個基本命令

... 如何在linux下開啟終端 ...

  • 發佈於 2021-03-26 18:33
  • 閲讀 ( 57 )

在linux中,“bash”是什麼意思?

...在這篇短文中,我們將探討Bash是什麼,它做什麼,以及如何開始使用它。 ...

  • 發佈於 2021-03-28 13:14
  • 閲讀 ( 61 )

哪個linux shell最好?比較了5種常見的貝殼

...你的計算機需要一個翻譯層。這介於你告訴它做什麼和它如何理解之間。 ...

  • 發佈於 2021-03-30 18:45
  • 閲讀 ( 49 )

如何使用chsh在linux上更改預設shell

Bash不是唯一的Linux shell。很容易嘗試其他的shell,比如非常流行的Zsh。找到一個您喜歡的shell後,使用chsh命令將其設定為預設shell。我們會教你怎麼做。 為什麼貝殼很重要 shell位於您和作業系統之間。它在終端視窗內提供環境...

  • 發佈於 2021-04-02 06:04
  • 閲讀 ( 64 )

如何在linux上的bash中設定環境變數

Linux上有多種型別的環境變數。瞭解如何檢視它們,為本地和遠端登入建立它們,並使它們在重新啟動後仍然有效。 環境變數的工作原理 啟動終端視窗及其內部的shell時,會引用一組變數,以確保shell配置正確。這些變數還確...

  • 發佈於 2021-04-02 06:44
  • 閲讀 ( 57 )

如何在linux上使用history命令

...複您過去執行的命令。一旦您瞭解了Linux history命令以及如何使用它,它就可以顯著地提高您的生產效率。 操縱歷史 正如喬治桑塔亞納(georgestantayana)的一句名言:“那些記不住過去的人註定要重蹈覆轍。”不幸的是,在Linux...

  • 發佈於 2021-04-02 18:17
  • 閲讀 ( 49 )
tfxulb517395
tfxulb517395

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦