我在/etc/bash.bashrc
中定义了一些别名。
当我使用herbert
登录时,我可以使用这些别名。
但在su root
之后,这些别名不能再使用了。
这很奇怪,因为configs
中的/etc/bash.bashrc
应该是全局的,并且可供所有用户使用。
以前一切都很好,但这些天很奇怪。我记得的是我将Bash从4.2.25升级到4.3.30,但我不确定这个版本是否改变是原因。
这是由于Bash版本吗?
答案 0 :(得分:2)
当您执行su root
(或仅su
)时,用户ID将更改为超级用户的ID,但默认环境未加载。相反,请尝试su -
。
对手册(man su
)进行解释,选项-
,-l
或--login
提供了与您以该用户身份直接登录时相同的环境。这意味着将加载配置文件等内容。
答案 1 :(得分:0)
如果您自己构建了bash 4.3.30,则可能忘记按照操作系统配置它的方式配置它。对于交互式shell,许多Linux发行版修改bash以获取/etc/bash.bashrc
之类的文件以及~/.bashrc
。 Vanilla bash仅来源~/.bashrc
。
如果我没记错的话,可以通过修改config-top.h
来完成配置。
另见Dot Files。