用户配置文件加载顺序
如果你以 root 用户 登录系统,那么登录时这./bashrc,./profile,/etc/profile,/etc/bashrc 四个文件的加载顺序和普通用户类似,但有一些细微差别。以下是具体情况:
1. root 登录时的加载顺序
当你以 登录 shell 的方式以 root 用户登录(例如通过 ssh
登录或切换到 root 执行 su -
),加载顺序如下:
- 系统级配置文件:
/etc/profile
这是系统范围的登录 shell 配置文件,所有用户(包括 root)都会加载。
- 用户级配置文件:
/root/.bash_profile
root 用户的专属登录 shell 配置文件。- 如果不存在,尝试加载
/root/.bash_login
。 - 如果上述文件也不存在,则加载
/root/.profile
。
- 如果不存在,尝试加载
- 用户级非登录 shell 配置(可能间接加载):
/root/.bashrc
通常会通过/root/.bash_profile
加载,例如以下代码:if [ -f ~/.bashrc ]; then . ~/.bashrc fi
- 系统级非登录 shell 配置(间接加载):
/etc/bashrc
可能由/etc/profile
或/root/.bash_profile
引用并加载。
2. 特殊情况:直接切换到 root
如果通过 su
或 sudo -i
切换到 root 用户,则加载顺序有所不同:
su -
(或sudo -i
):- 模拟完整的 root 登录环境,加载顺序与上面描述的登录 shell 一致:
/etc/profile
/root/.bash_profile
或/root/.bash_login
或/root/.profile
/root/.bashrc
(如果手动包含)/etc/bashrc
(间接加载)
- 模拟完整的 root 登录环境,加载顺序与上面描述的登录 shell 一致:
su
(不加-
):- 不创建登录 shell,仅加载非登录 shell 的配置文件:
/root/.bashrc
/etc/bashrc
- 不创建登录 shell,仅加载非登录 shell 的配置文件:
3. 加载文件顺序总结表
场景 | 加载文件顺序 |
---|---|
root 登录 Shell | /etc/profile → /root/.bash_profile (或 /root/.bash_login ,或 /root/.profile ) |
root 非登录 Shell | /etc/bashrc → /root/.bashrc |
su - 切换到 root | /etc/profile → /root/.bash_profile (或 /root/.bash_login ,或 /root/.profile )→ /root/.bashrc → /etc/bashrc |
su 切换到 root | /root/.bashrc → /etc/bashrc |
4. 文件的功能总结
/etc/profile
系统范围的环境配置,所有登录 shell 会加载。/root/.bash_profile
root 用户的专属登录 shell 配置,优先级高于/root/.bash_login
和/root/.profile
。/etc/bashrc
非登录 shell 的系统级配置文件,通常为别名和函数定义。/root/.bashrc
root 用户的非登录 shell 配置文件,常用于定制环境。
建议
为了确保 root 的配置一致性,可以在 /root/.bash_profile
中手动加载 /root/.bashrc
:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
这样无论是登录 shell 还是非登录 shell,都会加载 ~/.bashrc
中的配置,方便管理。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: 系统日志 rsyslog 服务
下一篇: 梯度下降优化算法综述
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论