Linux 下,若是要執行一條或多條以前輸過的指令,要怎麼處理?不少人會想到使用上下箭頭去翻查歷史輸入的命令。這固然是能夠了,除了這種方法,本文再介紹另外 5 種方法來實現這樣的效果。程序員
在正式開始以前,咱們先隨便執行幾條命令,便於後面演示。爲了節約篇幅,執行結果暫時不列出來。面試
$ ls -l $ pwd $ date $ uname -a
沒錯,兩個歎號也是一條命令,它會重複執行最後執行的那條命令。centos
$ !!
這條命令等同於以下效果:安全
$ !! uname -a Linux VM_0_16_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
若是須要 root 權限,一樣只需在前面加 sudo 便可。架構
$ sudo !!
假如咱們在操做的過程當中輸入了很是多的命令,如今要重複執行其中的一條,該怎麼處理?有一種簡單的方法,就是利用上下箭頭去翻查,但若是以前輸入了太多命令,翻查起來能夠要找半天。學習
這時候,!un
這種命令就顯現出它的做用來了。記住,這個 un 不是固定的,它是表明你想要重複輸入的命令的前幾個字符。網站
好比在這個例程中,咱們想重複執行 uname -a
這條命令,只需這樣執行:code
$ !un uname -a Linux VM_0_16_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
若是你以前輸入的命令有多個是以 un 開頭的,那麼你可能須要多輸入幾個字符。資源
$ !uname
這個方法就比較靈活了,!-1
表明重複執行最後一條命令,!-2
表示重複執行倒數第二條命令,!-n
表示重複執行倒數第 n 條指令。開發
$ !-1 uname -a Linux VM_0_16_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux $ !-3 # 注意,前面的 !-1 也算一條指令,因此倒數第 3 條指令是 date ,而不是 pwd date Sun May 19 18:30:26 CST 2019
ctrl+r
這個快捷鍵可讓你搜索你以前輸入過的全部的命令。其實良許更喜歡這個快捷鍵,由於它會讓你看到你將要執行的命令。而若是是 !! 命令的話,它是直接執行最後一條命令。若是這條命令是安全的還好,要是像 rm -rf /* 這樣的命令,那就悲劇了。
假如我如今要重複執行 uname -a ,咱們能夠先按一下 ctrl+r 這個組合鍵,而後再依次敲入 ‘u' 'n' 'a' ,若是以前輸入的命令比較少的話,基本只需敲一個 u 或 n 就能夠找到你要輸入的命令了。
(reverse-i-search)`u': uname -a
找到以後,再敲一下回車,便可重複執行你要輸入的命令了。
假如說你要對找到的那條命令進行一些小修改,那麼只需敲一下左或右的箭頭便可。
若是你是懶癌晚期,不想再敲任何字母,只想翻查找到想要的命令並執行,要怎麼操做?
前面提到,翻查歷史輸入的命令,可使用上下箭頭。但這不是最高效的,咱們可使用 ctrl+p 和 ctrl+n 來達到一樣的效果。這樣更高效,由於你的手不用擡起來並移動到箭頭區。
經過 ctrl+p/n 的組合鍵找到想要的命令以後,咱們能夠按 ctrl+o
來執行這條命令。這個組合鍵與回車不太相同,由於它除了回車以外,還另外跳轉到最後一條命令。經過不斷地 ctrl+p/n ,而後 ctrl+o ,就能夠高效的重複執行你要執行的命令了。
重複執行以前執行過的命令在咱們的工做中很是常常用到。若是命令比較短還好,再輸一遍也花不了多少時間。而若是命令很長,那再重複輸入就比較耗時間了,效率也比較低。除了使用上下箭頭以外,咱們還有不少方法去實現一樣的效果。將這些技巧掌握了,確定會大大提高你的工做效率!
最後,最近不少小夥伴找我要Linux學習路線圖,因而我根據本身的經驗,利用業餘時間熬夜肝了一個月,整理了一份電子書。不管你是面試仍是自我提高,相信都會對你有幫助!
免費送給你們,只求你們金指給我點個贊!
也但願有小夥伴能加入我,把這份電子書作得更完美!
推薦閱讀: