Linux系統(tǒng)中重復(fù)執(zhí)行歷史命令的方法有哪些?
今天小編要跟大家分享的文章是關(guān)于Linux系統(tǒng)中重復(fù)執(zhí)行歷史命令的方法有哪些?各位正在從事Linux運(yùn)維工作的小伙伴們,如果要執(zhí)行一條或多條之前輸過(guò)的指令,要怎么處理?很多人會(huì)想到使用上下箭頭去翻查歷史入的命令。這當(dāng)然是可以了,今天小編就為大家介紹一下除了這個(gè)方法外的其他方法。Linux入門(mén)新手和正在Linux學(xué)習(xí)的小伙伴快來(lái)看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?/p>
在正式開(kāi)始之前,我們先隨便執(zhí)行幾條命令,便于后面演示。為了節(jié)約篇幅,執(zhí)行結(jié)果暫時(shí)不列出來(lái)。
$ ls -l $ pwd $ date $ uname -a
方法1:!!
沒(méi)錯(cuò),兩個(gè)嘆號(hào)也是一條命令,它會(huì)重復(fù)執(zhí)行最后執(zhí)行的那條命令。
$ !!
這條命令等同于如下效果:
$ !!
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 權(quán)限,同樣只需在前面加 sudo 即可。
$ sudo !!
方法2:!un
假如我們?cè)诓僮鞯倪^(guò)程中輸入了非常多的命令,現(xiàn)在要重復(fù)執(zhí)行其中的一條,該怎么處理?有一種簡(jiǎn)單的方法,就是利用上下箭頭去翻查,但如果之前輸入了太多命令,翻查起來(lái)可以要找半天。
這時(shí)候,!un 這種命令就顯現(xiàn)出它的作用來(lái)了。記住,這個(gè) un 不是固定的,它是代表你想要重復(fù)輸入的命令的前幾個(gè)字符。
比如在這個(gè)例程中,我們想重復(fù)執(zhí)行 uname -a 這條命令,只需這樣執(zhí)行:
$ !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
如果你之前輸入的命令有多個(gè)是以 un 開(kāi)頭的,那么你可能需要多輸入幾個(gè)字符。
$ !uname
方法3:!-1
這個(gè)方法就比較靈活了,!-1 代表重復(fù)執(zhí)行最后一條命令,!-2 表示重復(fù)執(zhí)行倒數(shù)第二條命令,!-n 表示重復(fù)執(zhí)行倒數(shù)第 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 也算一條指令,所以倒數(shù)第 3 條指令是 date ,而不是 pwd
date
Sun May 19 18:30:26 CST 2019
方法4:ctrl+r
ctrl+r 這個(gè)快捷鍵可以讓你搜索你之前輸入過(guò)的所有的命令。其實(shí)良許更喜歡這個(gè)快捷鍵,因?yàn)樗鼤?huì)讓你看到你將要執(zhí)行的命令。而如果是 !! 命令的話,它是直接執(zhí)行最后一條命令。如果這條命令是安全的還好,要是像 rm -rf /* 這樣的命令,那就悲劇了。
假如我現(xiàn)在要重復(fù)執(zhí)行 uname -a ,我們可以先按一下 ctrl+r 這個(gè)組合鍵,然后再依次敲入 ‘u’ ‘n’ ‘a(chǎn)’ ,如果之前輸入的命令比較少的話,基本只需敲一個(gè) u 或 n 就可以找到你要輸入的命令了。
(reverse-i-search)`u': uname -a
找到之后,再敲一下回車(chē),即可重復(fù)執(zhí)行你要輸入的命令了。
假如說(shuō)你要對(duì)找到的那條命令進(jìn)行一些小修改,那么只需敲一下左或右的箭頭即可。
方法5:ctrl+p 或 ctrl+n 配合 ctrl+o
如果你是懶癌晚期,不想再敲任何字母,只想翻查找到想要的命令并執(zhí)行,要怎么操作?
前面提到,翻查歷史輸入的命令,可以使用上下箭頭。但這不是最高效的,我們可以使用 ctrl+p 和 ctrl+n 來(lái)達(dá)到同樣的效果。這樣更高效,因?yàn)槟愕氖植挥锰饋?lái)并移動(dòng)到箭頭區(qū)。
通過(guò) ctrl+p/n 的組合鍵找到想要的命令之后,我們可以按 ctrl+o 來(lái)執(zhí)行這條命令。這個(gè)組合鍵與回車(chē)不太相同,因?yàn)樗嘶剀?chē)之外,還另外跳轉(zhuǎn)到最后一條命令。通過(guò)不斷地 ctrl+p/n ,然后 ctrl+o ,就可以高效的重復(fù)執(zhí)行你要執(zhí)行的命令了。
小結(jié)
重復(fù)執(zhí)行之前執(zhí)行過(guò)的命令在我們的工作中非常經(jīng)常用到。如果命令比較短還好,再輸一遍也花不了多少時(shí)間。而如果命令很長(zhǎng),那再重復(fù)輸入就比較耗時(shí)間了,效率也比較低。除了使用上下箭頭之外,我們還有很多方法去實(shí)現(xiàn)同樣的效果。將這些技巧掌握了,肯定會(huì)大大提升你的工作效率!
以上就是小編今天為大家分享的關(guān)于Linux系統(tǒng)中重復(fù)執(zhí)行歷史命令的方法有哪些?的文章,希望本篇文章能夠?qū)φ趶氖翷inux相關(guān)工作的小伙伴們有所幫助。想要了解更多Linux相關(guān)知識(shí)記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來(lái)源于網(wǎng)絡(luò),侵刪!