概述討論shell命令查詢以前的事件
學(xué)習(xí)shell命令行時(shí),你可能會遇到執(zhí)行問題,這里將介紹執(zhí)shell命令問題的解決方法,在這里拿出來和大家分享一下。利用history命令能夠查詢以前的事件,并可把它們顯示到shell命令行上執(zhí)行這一事件。最簡便的方法就是利用上下箭頭鍵,把先前的事件逐次顯示到命令行。這個(gè)操作不需要運(yùn)行history命令就可以執(zhí)行。按動一下上箭頭鍵,那么上一次執(zhí)行的一個(gè)事件就將出現(xiàn)在命令行上,再按一下,上一次的前一事件又會出現(xiàn)在命令行上;按動一下下箭頭鍵,將會使當(dāng)前事件的下一事件出現(xiàn)在命令行上。
Bash也可以通過鍵入Esc、Tab鍵來完成對歷史事件的字符擴(kuò)展。和標(biāo)準(zhǔn)shell命令行擴(kuò)展特性一樣,鍵入歷史事件的部分字符串,然后鍵入Esc,再鍵入Tab鍵,與剛才鍵入的字符串相匹配的歷史事件將自動擴(kuò)展并回顯到命令行處。如果不止一個(gè)事件與輸入的字符串相匹配,就會聽到一聲響鈴,繼續(xù)鍵入字符或字符串,shell命令將會唯一確定用戶所要鍵入的歷史事件。
還有一個(gè)查詢和執(zhí)行歷史事件的命令——!shell命令。在!命令后鍵入與歷史事件相關(guān)聯(lián)的字符,這個(gè)關(guān)聯(lián)字符可以是歷史事件的歷史事件號,也可以是該事件的前幾個(gè)字符。在下面的例子中,查詢到歷史事件號為3的事件,然后又用其開頭的幾個(gè)字符去匹配,也查詢到該shell命令。
$ !3 mv mydata reports
$ !mv mv mydata reports
也可以用一個(gè)偏移量(相對于歷史事件列表中***一個(gè)事件)來查詢歷史事件。負(fù)的偏移量將從歷史事件列表表尾向前偏移。在下面的例子中,歷史事件號為2的事件“vi mydata”就是用一個(gè)負(fù)的偏移量查詢到的。必須注意的是,這個(gè)偏移量是相對于歷史事件列表中的***一個(gè)事件的。在本例中,歷史事件列表中***一個(gè)事件是事件5,歷史事件列表中***個(gè)事件為1。從歷史事件號為5的事件,往前偏移4,即是歷史事件號為2的事件。
$ !-4 vi mydata
如果鍵入!!,則系統(tǒng)默認(rèn)為上一事件。下面的例子中,用戶在shell命行上鍵入!!命令,系統(tǒng)將執(zhí)行上一事件:“l(fā)s”命令。
$ !! ls mydata today reports
shell命令行也可以用“模式”來搜索一個(gè)歷史事件。搜索的“模式”必須用符號“?”括起來。下例是用“模式”“?myd?”來搜索歷史事件號為3的歷史事件“vi mydata”。 $ !?myd? vi mydata
【編輯推薦】