/etc/environment | | 登录时由 PAM 加载,所有类型 Shell 都生效 | 系统最底层的基础环境变量,比如系统默认语言LANG,它不依赖 Shell 类型,是系统级的环境配置 |
/etc/profile | | | 系统级的登录环境配置,默认设置了PATH、USER、HOSTNAME等全局基础环境变量,所有用户登录时都会执行 |
/etc/profile.d/*.sh | | 登录 Shell 时,由/etc/profile自动加载该目录下所有.sh脚本 | 自定义全局环境变量的推荐位置!不用修改/etc/profile原文件,新增自定义脚本即可,比如添加 Java、MySQL 的全局 PATH,升级系统时不会被覆盖 |
/etc/bashrc | | 所有 bash Shell(登录 / 非登录)都会加载 | 全局的 bash 终端配置,比如默认的 umask、命令别名、提示符样式,不管是登录还是非登录的 bash,最终都会加载这个文件 |
~/.bash_profile | | | 用户个人的登录环境配置,每个用户可以在这里设置自己的登录级环境变量 |
~/.bash_login | | 仅登录 Shell,当~.bash_profile不存在时才会加载 | |
~/.profile | | 仅登录 Shell,当~/.bash_profile和~/.bash_login都不存在时加载 | POSIX 标准的通用配置,兼容 sh 等其他 Shell,是最通用的用户登录配置 |
~/.bashrc | | 所有 bash Shell(登录 / 非登录)都会加载 | 用户个人的 bash 终端配置,绝大多数用户的自定义配置都放在这里:比如自己的命令别名、函数、自定义的环境变量(如个人的JAVA_HOME),每次打开新终端都会加载,非常灵活 |
~/.bash_logout | | | 登录退出时的清理脚本,比如清理临时文件,和环境变量无关 |