[Mac/Linux] 取出曾執行過的 shell 指令,重新執行
在 Mac/Linux 上,有許多方法可以執行之前曾經執行過的指令,
簡單記錄一下我常用的吧~
1. 使用 Ctrl-R 組合鍵搜尋執行過的指令
在命令列提示符號下,
按下 Ctrl-R 組合鍵,會跳出一個 (reverse-i-search) 的提示符號,
這時可以輸入指令的部分字元,
它會自動從最近執行過的指令中找出符合的。
舉例來說,我在按下 Ctrl-R 之後,鍵入 brew 四個字元,
系統就會將最後一次指令裡有 brew 的列出來:
- 倘若是想要執行的指令,可以按 Enter 鍵取用這個指令
- 倘若想往前尋找其他符合的指令,可以再按多次 Ctrl-R 往回找
- 倘若想放棄搜尋的話,按下 Ctrl-C 就會退出
testuser@localhost ~ $ (reverse-i-search)`brew': brew update && brew upgrade
這個算是我非常愛用的方法之一,
只要打幾個字,就能得到之前執行過的長串指令,非常好用且快速~
2. 使用上下方向鍵取用最近執行過的指令
這算是基門入門用法,
用 ↑方向鍵就可以取用上一個指令,↓方向鍵取用下一個指令。
多按幾次,就可以往前往後列出執行過的指令。
適合用這方法來再次執行才剛跑過的指令~
3. 使用 history 列出執行過的指令
執行 history 指令後,可以看到之前曾下過的指令,例如:
testuser@localhost ~ $ history ...... 66 ll 67 brew list 68 brew update && brew upgrade 69 youtube-dl --help | egrep -i video 70 ls 71 history
這時就可以複製想要的指令,再貼上執行了。
這方法比較麻煩,但適合用在指令不太記得的狀況下~
4. 使用 !! 執行上一個指令
這算是我較少用的方式,因此筆記下來。
!! 可以執行上一個指令,因此它事實上可以用↑方向鍵取代掉。
舉例來說,我先執行了 ls,
接著執行 !! 的話,就會再執行一次 ls:
testuser@localhost ~ $ ls AndroidStudioProjects Desktop Movies testuser@localhost ~ $ !! ls AndroidStudioProjects Desktop Movies
5. 使用 !num 執行指定編號的指令
這個 !num 得搭配 history 指令使用。
像剛剛 history 有列出編號 67 的指令是 brew list,
因此 !67 就會直接執行 brew list:
testuser@localhost ~ $ !67 brew list apktool fontconfig graphviz libtool pev readline xz autoconf freetype hexcurse libunistring pixman shellcheck yara
這些方法都值得記起來,加速在 Mac/Linux 上 shell 的操作喔~
參考資料:Is there any way to execute commands from history?
(本頁面已被瀏覽過 2,150 次)