在我的其中一台 Ubuntu 11.10 服务器上,当我sudo -i
以 root 用户身份使用时,root 的 .bashrc 未被执行。在所有其他服务器上,据我所知,其相关配置相同,它正在正确执行。
以下是我检查过的内容:
- .bashrc 存在于 /root 中,所有者为 root:root,权限为 644
- /etc/profile 和 /etc/bash.bashrc是正在被处决
- root 的 shell 设置为“/bin/bash”
- 我可以使用 执行 .bashrc
source .bashrc
,之后该会话一切正常。 - 我也可以输入
bash
sudo 到 root 后手动执行 bash,然后执行 .bashrc - ps 确认我的 root 登录所运行的 shell 是 bash。
还有什么需要检查吗?
答案1
您应该查看该文件的存在情况及其内容/root/.profile
。
init 文件~/.bashrc
不是来自登录 shell:在 Ubuntu 上,它来自~/.profile
此外,该文件/root/.profile
不是/etc/skel/
为其他用户复制的,而是/usr/share/base-files/dot.profile
在安装包期间复制的base-files
。
答案2
还有一种情况你应该记住,这种情况就发生在我身上。
如果您要创建.bash_profile
文件,那么该文件将接管加载/执行.bashrc
或的责任.profile
。
当您打开终端并使用时"sudo -i"
,突然发现缺少一些命令别名、文件列表颜色等,请仔细检查此文件是否存在于您的主目录中,然后重命名它并再次重新打开控制台。这应该可以解决问题。