當前位置:妙知谷 >

遊戲數碼 >電腦 >

如何在Linux或macOS終端中使用Bash歷史?

如何在Linux或macOS終端中使用Bash歷史?

Bash是Linux系統(包括MacOS)默認的shell,它也可以安裝在Windows 10上,Bash shell可以保存你運行過的命令的歷史記錄,並將它們保存在歷史文件中。Bash在運行時,會將內部命令列表保存在內存中,在退出時會寫入bash歷史中。

如何在Linux或macOS終端中使用Bash歷史?

實時保存

Bash在運行時,會將內部命令列表保存在內存中,在退出時會寫入_history中。如果你想確保它們總是實時寫入,你可以將該命令放入PROMPT_COMMAND變量中:export PROMPT_COMMAND='history -a'

如何在Linux或macOS終端中使用Bash歷史? 第2張

設置歷史存儲默認值

在我們開始使用bash history之前,我們可以修改一些bash的設置來讓他更好使用。Bash允許我們修改它在歷史中存儲的先前命令的數量。
有兩種不同的方式處理:HISTFILESIZE 參數配置歷史文件中存儲了多少個命令,而HISTSIZE控制當前會話存儲在內存中的數量。

如何在Linux或macOS終端中使用Bash歷史? 第3張

用 nano ~/rc
打開~ /rc文 在編輯器中更改這些設置:

如何在Linux或macOS終端中使用Bash歷史? 第4張
如何在Linux或macOS終端中使用Bash歷史? 第5張

找到HISTSIZE和HISTFILESIZE這兩個參數。如果它們已經被設置過來,就修改這些值。如果這些參數還沒有出現,只需添加它們。出於我們的目的,我們可以輕鬆地將1000行存儲到磁盤,並將最後的500行加載到內存中。對於大多數系統,這是一個保守的估計,但是如果你覺得對性有的影響,可以進行調整:
修改後使用快捷鍵Ctrl+O保存,回車寫入,Ctrl+X退出到nano。

如何在Linux或macOS終端中使用Bash歷史? 第6張
如何在Linux或macOS終端中使用Bash歷史? 第7張
如何在Linux或macOS終端中使用Bash歷史? 第8張

默認情況下,bash在每個會話結束時寫入其歷史記錄,並覆蓋以前存在的文件。這意味着如果你使用多個bash會話登錄,只有最後一個bash窗口退出才會保存其歷史記錄。

如何在Linux或macOS終端中使用Bash歷史? 第9張

使用快捷鍵

為了查看我們最後運行的bash命令,我們可以使用許多擊鍵來獲得優勢並節省時間。
下箭頭或Ctrl+N:轉到下一個命令。多次點擊將顯示我們上次運行的命令。

如何在Linux或macOS終端中使用Bash歷史? 第10張

向上箭頭或Ctrl + P:轉到上一個命令。
多次敲擊相同的按鍵將通過我們使用的命令向後移動。

如何在Linux或macOS終端中使用Bash歷史? 第11張

Alt + R:這也稱為反向搜索,並且很有用。
當你只記你之前輸入的命令的零散部分時候,這會很有幫助,有的系統是Ctrl+R
如圖所示,''被搜索,bash尋找歷史記錄中最後與之相匹配的命令。

如何在Linux或macOS終端中使用Bash歷史? 第12張

查看bash歷史記錄

查看命令的歷史很容易,直接運行history命令。

如何在Linux或macOS終端中使用Bash歷史? 第13張
如何在Linux或macOS終端中使用Bash歷史? 第14張

我們可以使用grep命令來縮小搜索範圍。

如何在Linux或macOS終端中使用Bash歷史? 第15張
如何在Linux或macOS終端中使用Bash歷史? 第16張

我們甚至可以通過tail命令來查看最近五次使用的命令。

如何在Linux或macOS終端中使用Bash歷史? 第17張

或者,我們甚至可以截斷tail命令,並簡單地傳遞我們想要查看的命令的數量。

如何在Linux或macOS終端中使用Bash歷史? 第18張

從bash history中執行第n個命令

將整個bash歷史顯示出來很不錯,但它並不能幫助我們輕鬆訪問這些命令,除非作為參考。如果我們想要執行bash歷史記錄中的第n個命令,比如第15個命令,輸入 !15 就會立即回顧並執行與歷史記錄第15個關聯的命令。

如何在Linux或macOS終端中使用Bash歷史? 第19張

特別提示

現在我們很好地瞭解瞭如何利用bash提供的歷史操作,其中的某些方法很有效。
當我們需要找到某條命令的位置,如果知道bash具有這樣操作命令就非常方便了。
熟練掌握上面的命令可幫助我們提高工作效率喲!

  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/diannao/om4xj.html