是否有一個快捷方式可以使用上一個命令的參數重新運行命令(不是 cd、ls 或 echo)

是否有一個快捷方式可以使用上一個命令的參數重新運行命令(不是 cd、ls 或 echo)

使用以下內容搜尋傳遞的日誌檔案:

/路徑/到/日誌檔 | grep -iEw '此處某些 ip 位址|此處對應的 mac 位址'

這給了我到目前為止所有通過的日誌行,這樣我就可以看到已經發生了什麼。現在我也想看看發生了什麼事所以我需要交換cattail -f我這個:

尾部-f/路徑/到/日誌檔 | grep -iEw '此處某些 ip 位址|此處對應的 mac 位址'

答案1

您可以使用!!:*來引用除最後一個命令行的第 0 個單字之外的所有單字。

!!指前一個命令,:將事件規範與字指示符分開,*指除第零個字之外的所有字。

這是來自HISTORY EXPANSIONbash(1) 的部分。

wieland@host in ~» cat foo | grep bar
bar
wieland@host in ~» tail -f !!:*
tail -f foo | grep bar
bar

您也可以使用快速替換來^string1^string2^重複最後一個命令,替換string1string2

wieland@host in ~» cat foo | grep bar
bar
wieland@host in ~» ^cat^tail -f
tail -f foo | grep bar
bar

答案2

  1. UpCtrl+P調出上一行。如果您想要之前的行等,請重複。
  2. HomeCtrl+A前往行首。
  3. Alt+D刪除遊標下的單字,即要取代的指令。
  4. 鍵入您現在要執行的命令。
  5. Enter運行命令。

相關內容