我很好奇,当我使用 sudo 程序时,是否有办法让我的 .bash_profile 正常工作。
例如,我将其设置为alias emerge='emerge -av'
,以便我可以安装软件,并且它会在下载和安装之前始终询问我是否要继续。但是我刚刚注意到,当我 时sudo emerge foo
,它默认为纯命令,emerge foo
而不是emerge -av foo
。
唯一能想到的解决办法就是将别名也放在 root 的 .bash_profile 中,但我不想诉诸于此,因为当我想向自己的配置文件添加内容时,我总是必须在两个地方进行更改。
还有其他我不熟悉的解决这个问题的方法吗?
答案1
在 Bash 中,
alias sudo='sudo '
将导致 bash 扩展所有在其后出现的别名sudo
。
答案2
另一种方法(尽管这一个特定的例子(我推荐 Grawity 的答案)是使用-E
标志 sudo 来继承环境。
-E The -E (preserve environment) option will override the
env_reset option in sudoers(5)). It is only available when
either the matching command has the SETENV tag or the
setenv option is set in sudoers(5).