我在我的 中设置了两个别名.bash_profile
。我想同时sudo
使用它们两个:
$ cat ~/.bash_profile
export EDITOR=emacs
...
alias yum="dnf"
alias ssh="ssh -2"
...
我知道如何告诉sudo
尊重我的环境(-E
),但我找不到别名的选项。在手册页中搜索alias
结果是Pattern not found
。
我该如何表示sudo
对别名的尊重?
提前致谢。
我试图避免由于 Fedora 更改命令而出现的这些烦人的消息:
$ sudo yum update
[sudo] password for:
Yum command has been deprecated, redirecting to '/usr/bin/dnf update'.
See 'man dnf' and 'man yum2dnf' for more information.
...
答案1
sudo 不能真正“尊重”别名,因为它们是 shell 特有的功能 - 只有当 sudo 被教会如何自己读取~/.bashrc
, ~/.zshrc
, ... 时,它才能知道它们。~/.cshrc
对于普通别名,你可以欺骗 shell 本身在后面跟着时扩展它们sudo
:
alias sudo="sudo "
(它在某处有记录。)
但对于功能而言,没有类似的东西;您必须使用交互sudo -sE
模式。
答案2
解决您的问题的另一种可能方法是将您的别名像往常一样放在文件中/home/YourName/.bash_aliases
,然后将该文件链接到 root 的主目录中:
sudo ln -s /home/YourName/.bash_aliases /root/.bash_aliases
这应该自动运行,因为大多数发行版.bashrc
默认在文件中有这些行,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
如果您没有,可以轻松添加它们。