Command-Line

如何呼叫先前的命令(不執行)以更改它?

  • October 17, 2015

我不記得在不執行它的情況下獲得最後一個命令的技巧:

假設我希望能夠在按下向上箭頭鍵並修改命令時訪問命令 !1255 。那麼呼叫命令的技巧是什麼,使其顯示在命令行中但不執行,然後通過向上箭頭鍵訪問?

我試著放一個迴聲,但是在命令之前我有一個迴聲,我不記得如何正確地做到這一點。

!1255:p

會這樣做

!是歷史召回

1255是行號

:p列印但不執行

然後你可以使用向上箭頭來取回之前的(未執行的)命令,你可以根據需要進行更改。

我經常將它與hg(“History Grep”)結合起來——我最喜歡的別名。

$ alias hg  # Maybe use hgr instead if you are a Mercurial CLI user.
alias hg='history | tail -200 | grep -i'

這將搜尋最近歷史行上的文本,無論大小寫如何,並以這種方式使用:

當我想搜尋最近的 vi 命令來編輯某個文件,然後我想重新使用其中一個命令來編輯同一個文件但具有不同的文件副檔名時。

$ hg variables
6153  vi Variables/user-extensions.js 
6176  vi Variables/user-extensions.js 
6178  vi Variables/user-extensions.js 
6190  vi Variables/user-extensions.js 
6230  hg variables
$ # Notice the difference in case with V and v is ignored
$ !6190:p
vi Variables/user-extensions.js 
$ ["up-arrow"]
$ vi Variables/user-extensions.[now change .js to .html]

我還定義hga(“History Grep All”)來搜尋我的整個歷史:

$ alias hga
alias hga='history | grep -i'

但我並沒有太多使用它,因為我的歷史(故意)非常大,而且我得到的輸出太多,以後會影響在我的終端中向後滾動頁面。

引用自:https://unix.stackexchange.com/questions/235100