Linux調(diào)整命令歷史方法詳解
Linux 系統(tǒng)中的 bash history 命令有助于記住你以前運(yùn)行過(guò)的命令,并重復(fù)這些命令,而不必重新輸入。
如果可以的話,你肯定會(huì)很高興不用翻閱十幾頁(yè)的手冊(cè),每過(guò)一會(huì)再次列出你的文件,而是通過(guò)輸入 history 查看以前運(yùn)行的命令。在這篇文章中,我們將探討如何讓 history 命令記住你希望它記住的內(nèi)容,并忘記那些可能沒(méi)有什么“歷史價(jià)值”的命令。
查看你的命令歷史
要查看以前運(yùn)行過(guò)的命令,你只需輸入 history。你可能會(huì)看到一長(zhǎng)串命令。記憶的命令數(shù)量取決于在 ~/.bashrc 文件中設(shè)置的名為 $HISTSIZE 的環(huán)境變量,但是如果你想保存更多或更少的命令,你可以根據(jù)你的需要改變這個(gè)設(shè)置。
要查看歷史記錄,請(qǐng)使用 history 命令:
$ history 209 uname -v 210 date 211 man chage ... ...
要查看將顯示的最大命令數(shù)量:
$ echo $HISTSIZE 500
你可以通過(guò)運(yùn)行這樣的命令來(lái)改變 $HISTSIZE 并使之永久化:
$ export HISTSIZE=1000 $ echo 'HISTSIZE=1000' >> ~/.bashrc
在為你保留多少歷史記錄和當(dāng)你輸入 history 時(shí)顯示多少歷史記錄之間也有區(qū)別。$HISTSIZE 變量控制顯示多少歷史記錄,而 $HISTFILESIZE 變量控制在你的 .bash_history 文件中保留多少命令。
$ echo $HISTSIZE 1000 $ echo $HISTFILESIZE 2000
你可以通過(guò)計(jì)算歷史文件中的行數(shù)來(lái)驗(yàn)證第二個(gè)變量:
$ wc -l .bash_history 2000 .bash_history
需要注意的是,在登錄會(huì)話中輸入的命令在注銷前不會(huì)被添加到你的 .bash_history 文件中,盡管它們會(huì)立即顯示在 history 命令輸出中。
使用歷史
有三種方法可以重發(fā)你在 history 中發(fā)現(xiàn)的命令。最簡(jiǎn)單的方法,特別是當(dāng)你想重用的命令是最近運(yùn)行的時(shí)候,通常是輸入一個(gè) ! 后面跟上命令中足夠多的首字母來(lái)唯一地識(shí)別它。
$ !u uname -v #37-Ubuntu SMP Thu Mar 26 20:41:27 UTC 2020
另一種簡(jiǎn)單的重復(fù)命令的方法是,只需按上箭頭鍵,直到顯示了該命令,然后按回車鍵。
另外,如果你運(yùn)行 history 命令,并看到你想重新運(yùn)行的命令被列出,你可以輸入一個(gè) ! 后面跟著命令左邊顯示的序號(hào)。
$ !209 uname -v #37-Ubuntu SMP Thu Mar 26 20:41:27 UTC 2020
隱藏歷史
如果你想在一段時(shí)間內(nèi)停止記錄命令,你可以使用這個(gè)命令:
$ set +o history
當(dāng)你輸入 history 時(shí),你輸入的命令不會(huì)顯示出來(lái),當(dāng)你退出會(huì)話或退出終端時(shí),它們也不會(huì)被添加到你的 .bash_history 文件中。
要取消這個(gè)設(shè)置,使用 set -o history
要使它永久化,你可以把它添加到你的 .bashrc 文件中,盡管不使用命令歷史記錄通常不是一個(gè)好主意。
$ echo ’set +o history’ >> ~/.bashrc
要暫時(shí)清除歷史記錄,這樣在輸入 history 時(shí)只顯示之后輸入的命令,可以使用 history -c(清除)命令:
$ history | tail -3 209 uname -v 210 date 211 man chage $ history -c $ history 1 history
注意:在輸入 history -c 后輸入的命令不會(huì)被添加到 .bash_history 文件中。
控制歷史
許多系統(tǒng)上的 history 命令的設(shè)置會(huì)默認(rèn)包括一個(gè)名為 $HISTCONTROL 的變量,以確保即使你連續(xù)運(yùn)行同一命令七次,也只會(huì)被記住一次。它還可以確保你在首先輸入一個(gè)或多個(gè)空格后跟著的命令將從你的命令歷史記錄中忽略。
$ grep HISTCONTROL .bashrc HISTCONTROL=ignoreboth
ignoreboth 的意思是“忽略重復(fù)的命令和以空格開頭的命令”。例如,如果你輸入這些命令:
$ echo try this $ date $ date $ date $ pwd $ history
你的 history 命令應(yīng)該像這樣報(bào)告:
$ history $ echo try this $ date $ history
請(qǐng)注意,連續(xù)的 date 命令被縮減為一條,以空格縮進(jìn)的命令被省略。
忽略歷史
要忽略某些命令,使它們?cè)谀爿斎?history 時(shí)不會(huì)出現(xiàn),也不會(huì)被添加到你的 .bash_history 文件中,可以使用 $HISTIGNORE 設(shè)置。例如:
$ export HISTIGNORE=”history:cd:exit:ls:pwd:man”
這個(gè)設(shè)置將導(dǎo)致所有的 history、cd、exit、ls、pwd 和 man 命令從你的 history 命令的輸出和 .bash_history 文件中被忽略。
如果你想把這個(gè)設(shè)置變成永久性的,你必須把它添加到你的 .bashrc 文件中。
$ echo ’HISTIGNORE='history:cd:exit:ls:pwd:man'’ >> .bashrc
這個(gè)設(shè)置只是意味著當(dāng)你回看以前運(yùn)行的命令時(shí),列表不會(huì)被你在查看命令歷史記錄時(shí)不想看到的命令所干擾。
記住、忽略和忘記過(guò)去的命令
命令歷史記錄很有用,因?yàn)樗梢詭椭阌涀∽罱褂眠^(guò)的命令,并提醒你最近所做的更改。它還可以讓你更容易地重新運(yùn)行命令,特別是那些有一串參數(shù)但你不一定想重新創(chuàng)建的命令。定制你的歷史設(shè)置可以讓你對(duì)命令歷史的使用變得更容易,更有效率。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. WinXP系統(tǒng)提示“Windows無(wú)法配置此無(wú)線連接”怎么辦?2. 每次重啟Win7系統(tǒng)后打印機(jī)都顯示脫機(jī)該怎么辦?3. Win10系統(tǒng)hyper-v與vmware不兼容怎么辦?4. Win11分辨率調(diào)到了推薦但還是有黑邊的解決方法5. Win7窗口最大化后看不到任務(wù)欄怎么辦?Win7窗口最大化后看不到任務(wù)欄的解決方法6. Win7系統(tǒng)如何自定義修改鼠標(biāo)指針樣式?7. 基于 Ubuntu 的 elementary OS 7 版本發(fā)布 附官方下載8. Win10系統(tǒng)不能調(diào)整任務(wù)欄大小怎么辦?Win10系統(tǒng)不能調(diào)整任務(wù)欄大小的解決方法9. 蘋果 macOS 13.2 開發(fā)者預(yù)覽版 Beta 2 發(fā)布10. Win7純凈版沒(méi)有USB驅(qū)動(dòng)怎么辦?Win7系統(tǒng)沒(méi)有USB驅(qū)動(dòng)解決教程
