Command-Line
理解 bash 中的驚嘆號 (!)
我用了
history | less
獲取先前命令的行並從左側的數字中找到我想要重複的行(例如 22)並做了
!22
在命令提示符下,它起作用了——在我當時做的那一行執行命令集。我無法弄清楚驚嘆號在哪裡使用,它在 bash 採取的操作方面代表什麼,以及在哪裡使用它。從文件中我看不到“有形”的解釋。
!
呼叫歷史擴展,這是最初出現在C shell中的一個特性,早在你可以指望終端有箭頭鍵的日子裡。如果您將目前命令編號添加到提示符 (PS1="\!$ "
) 中,這將特別有用,這樣您就可以快速查看螢幕以獲取過去命令的編號。現在您可以使用箭頭鍵和
Ctrl-R
搜尋命令歷史記錄之類的東西,我認為該功能沒有多大用處。您可能仍然覺得有用的一個變體是
!!
,它重新執行上一個命令。就其本身而言,我沒有發現!``!``Enter
比 just 更快的↑
Enter
方法,但是當組合成一個更大的命令時它會很有幫助。**範例:**基於系統的常見飛行員錯誤
sudo
是忘記了sudo
需要額外權限的命令的前綴。新手重新鍵入整個命令。勤奮的學生從 shell 的命令歷史中編輯命令。開明的一類sudo !!
。這種方式的處理
!
在 Bash 中預設在互動式 shell 中啟用,並且可以使用set +o histexpand
或禁用set +H
。您可以在 Zsh 中使用set -K
.