0
A
回答
3
Bash會記錄您運行的命令。這稱爲您的命令歷史記錄。使用history
命令可以訪問和操作您的命令歷史記錄。
的-p
標誌告訴history
命令在它的參數執行歷史替換並打印在標準輸出的結果。執行歷史替換時,history
將用前一個命令替換!!
。在你的情況下,每個!
都被轉義爲\!
,大概是因爲bash可以讓你將!
設置爲超魔法,並且這個別名的作者想要壓制額外的魔法。
當bash看到$(...)
時,它執行命令替換。這意味着它運行括號之間的命令,並用命令的標準輸出替換$(...)
,
sudo
命令以root身份運行其參數。
因此,此別名可讓您鍵入hello
以root身份運行您的上一個命令。如果前面的命令引用了空格(我認爲),你會遇到麻煩,但通常它應該起作用。
您可以通過使用fc
得到相同的效果(在我看來)魔法少一點:
alias hello='sudo $(fc -ln -1)'
的fc
命令還執行歷史訪問和操作。 -l
標誌表示「打印一些歷史條目」。 -n
標誌表示不打印歷史記錄條目編號(僅打印命令)。 -1
(負數)意味着只打印最近的歷史記錄。
相關問題
- 1. 運行.bashrc時未找到別名命令
- 2. 命令別名
- 3. 瞭解xcopy命令
- 4. 瞭解trace32命令
- 5. 無法瞭解線的.bashrc
- 6. 命令或別名
- 7. 命令不認識bash命令別名
- 8. 我向用戶〜/ .bashrc添加了別名,但「sudo -u user -i'alias_name'」仍然報告「找不到命令」?
- 9. SVG:瞭解翻譯命令
- 10. 命令被bash誤解了
- 11. 瞭解命令:使distclean
- 12. 瞭解UNIX命令xargs
- 13. AIX中的命令別名
- 14. 把find命令的別名
- 15. 定義Docker命令別名
- 16. 命令不作爲別名
- 17. msysgit多命令別名
- 18. 一組命令的別名?
- 19. 執行別名命令
- 20. qsub中的別名命令
- 21. 別名 - 找不到命令
- 22. Git別名與Linux命令
- 23. Pry:whereami命令的別名
- 24. Windows命令別名失敗
- 25. VIM - 運行:命令在我的.bashrc
- 26. Linux - 遠程命令執行和.bashrc
- 27. 在bashrc中使用linux「tee」命令
- 28. Linux:將命令添加到bashrc中的另一個命令中
- 29. 在Windows命令行中使用.bashrc運行git命令
- 30. Shell無法識別別名命令
http://www.gnu.org/software/bash/manual/bashref.html#Using-History-Interactively – jm666 2014-09-05 23:32:10
你的問題不是關於別名。是關於一個命令。歷史命令輸出存儲在var中。是我能告訴你的,但最簡單的是搜索歷史命令 – wonderwhy 2014-09-05 23:38:21