1.最後一個參數:!$
它會將最後一個命令的最後一個參數替換到你的命令行中
2.第 n 個參數:!:2
各個參數的索引是從零開始的,並且可以用 !: 之後跟上該索引數字代表各個參數
3.全部參數:!:1-$
想在文件中匹配 “ping” 或 “pong”,但我使用的是 grep 而不是 egrep
如果不想重新輸入其他參數。因此,我可以使用 !:1-$ 快捷方式來調取上一個命令的所有參數,從第二個(記住它們的索引從零開始,因此是 1)到最後一個(由 $ 表示)
4.倒數第 n 行的最後一個參數:!-2:$
我們一般會查看一下,這個時候就不能使用!$命令了
在這些情況下,我可以在 ! 之後插入 -n:(其中 n 是要在歷史記錄中回溯的命令條數),以從較舊的命令取得最後的參數:
5.進入文件夾:!$:h
我可能要做的第一件事是轉到 /etc 文件夾,查看其中的內容並找出我做錯了什麼
這是說:“獲取上一個命令的最後一個參數(/etc/system),並刪除其最後的文件名部分,僅保留 /etc。”
6.當前行:!#:1
有時候想知道是否可以在當前行引用一個參數。我多希望我能早早學會這個快捷方式。我經常常使用它製作備份文件:
7、搜索並替換:!!:gs
這將搜索所引用的命令,並將前兩個 / 之間的字符替換爲後兩個 / 之間的字符。
假設我想告訴別人我的 s 鍵不起作用,而是輸出了 f:$
$ !!:gs/f /s /
echo my s key does not work
my s key does not work
它不只對單個字符起作用。我也可以替換單詞或句子:
$ !!:gs/does/did/
echo my s key did not work
my s key did not work