![为什么 /etc/bash.bashrc 中的别名不适用于 sudo?](https://linux22.com/image/912015/%E4%B8%BA%E4%BB%80%E4%B9%88%20%2Fetc%2Fbash.bashrc%20%E4%B8%AD%E7%9A%84%E5%88%AB%E5%90%8D%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%20sudo%EF%BC%9F.png)
我添加了以下行
alias ll='ls -l'
到/etc/bash.bashrc
。重新启动后,该文件中的别名ll
对我有影响,我通过注释掉我的相应别名~/.bashrc
(并在编辑后注销并重新登录)来检查。但是,它似乎不影响root
,因为当我输入 时sudo ll
,我得到“没有这样的命令“。如果别名位于系统范围的 .bashrc 中,那么它是否应该在任何情况下都起作用?
答案1
sudo
将忽略来自的任何别名命令.bashrc
。
您也可以通过为 sudo 创建别名来解决这个问题 -->alias sudo='sudo '
后面需要有空格sudo
,因为这man
告诉我们:
If the last character of the alias value is a blank, then the next command word following the alias is also checked for alias expansion.