溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

五個常用的Bash歷史記錄操作方式分別是什么

發(fā)布時間:2021-11-26 15:42:47 來源:億速云 閱讀:135 作者:柒染 欄目:編程語言

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)五個常用的Bash歷史記錄操作方式分別是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

眾所周知,Bash歷史記錄里有許多快捷方式的記錄,讓人眼花繚亂。其實這些快捷方式使用起來,可以極大的提高我們學習和工作的效率。如果大家覺得這些方式很難記,可以循序漸進,每天只學一點內(nèi)容,這樣就能輕松掌握。下面小編將選五個最常用到的Bash歷史記錄操作方式為大家介紹。

1、最后一個參數(shù):!$

如果你僅想從本文中學習一種快捷方式,那就是這個。它會將最后一個命令的最后一個參數(shù)替換到你的命令行中。

看看這種情況:

啊哈,我在命令中寫了錯誤的文件名 “wrongfile”,我應該用正確的文件名 “rightfile” 代替。

你可以重新鍵入上一個命令,并用 “rightfile” 完全替換 “wrongfile”。但是,你也可以鍵入:

這個命令也可以奏效。

在 Bash 中還有其他方法可以通過快捷方式實現(xiàn)相同的目的,但是重用上一個命令的最后一個參數(shù)的這種技巧是我最常使用的。

2、搜索并替換:!!:gs

這將搜索所引用的命令,并將前兩個/之間的字符替換為后兩個/之間的字符。

假設我想告訴別人我的s鍵不起作用,而是輸出了f:

然后我意識到這里出現(xiàn)的f鍵都是錯的。要將所有f替換為s,我可以輸入:

它不只對單個字符起作用。我也可以替換單詞或句子:

測試一下

為了向你展示如何組合這些快捷方式,你知道這些命令片段將輸出什么嗎?

3、全部參數(shù):!:1-$

假設我運行了類似這樣的命令:

參數(shù)是正確的。然而,我想在文件中匹配 “ping” 或 “pong”,但我使用的是grep而不是egrep。

我開始輸入egrep,但是我不想重新輸入其他參數(shù)。因此,我可以使用!:1-$快捷方式來調(diào)取上一個命令的所有參數(shù),從第二個(記住它們的索引從零開始,因此是1)到最后一個(由$表示)。

你不用必須用1-$選擇全部參數(shù);你也可以選擇一個子集,例如1-2或3-9(如果上一個命令中有那么多參數(shù)的話)。

4、倒數(shù)第 n 行的最后一個參數(shù):!-2:$

當我輸錯之后馬上就知道該如何更正我的命令時,上面的快捷鍵非常有用,但是我經(jīng)常在原來的命令之后運行別的命令,這意味著上一個命令不再是我所要引用的命令。

例如,還是用之前的mv例子,如果我通過ls檢查文件夾的內(nèi)容來糾正我的錯誤:

我就不能再使用!$快捷方式了。

在這些情況下,我可以在!之后插入-n:(其中n是要在歷史記錄中回溯的命令條數(shù)),以從較舊的命令取得最后的參數(shù):

同樣,一旦你學會了它,你可能會驚訝于你需要使用它的頻率。

5、進入文件夾:!$:h

從表面上看,這個看起來不太有用,但我每天要用它幾十次。

想象一下,我運行的命令如下所示:

我可能要做的第一件事是轉(zhuǎn)到/etc文件夾,查看其中的內(nèi)容并找出我做錯了什么。

我可以通過以下方法來做到這一點:

這是說:“獲取上一個命令的最后一個參數(shù)(/etc/system),并刪除其最后的文件名部分,僅保留/etc?!?/p>

上述就是小編為大家分享的五個常用的Bash歷史記錄操作方式分別是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI