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. 命令不认识bash命令别名
- 4. 我向用户〜/ .bashrc添加了别名,但“sudo -u user -i'alias_name'”仍然报告“找不到命令”?
- 5. SVG:了解翻译命令
- 6. 命令被bash误解了
- 7. Pry:whereami命令的别名
- 8. Windows命令别名失败
- 9. qsub中的别名命令
- 10. 命令不作为别名
- 11. msysgit多命令别名
- 12. 执行别名命令
- 13. 定义Docker命令别名
- 14. 别名 - 找不到命令
- 15. 把find命令的别名
- 16. 了解`命名空间'
- 17. 了解ç命名空间
- 18. 在bashrc中只使用别名
- 19. 自动添加别名到.bashrc
- 20. Linux bashrc搞砸了
- 21. 我添加了PATH到〜/ .bashrc和/root/.bashrc,但“sudo adb”仍然报告“找不到命令”?
- 22. OS X终端命令解析别名的路径
- 23. 通过了解SELECT命令来建立SQL UPDATE命令?
- 24. 添加使用命令替换的脚本/命令/别名
- 25. Visual Studio命令窗口 - 更多命令的一个别名
- 26. 了解ACTV模式和PORT命令
- 27. 了解linux中的netstat -na命令
- 28. 了解命令(它会影响什么)
- 29. Git-了解diff命令的输出
- 30. 如何了解更多XMPP/Jabber命令
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