核心区别对比
特性 | /etc/profile | ~/.bashrc |
---|---|---|
作用范围 | 全局(所有用户) | 当前用户 |
加载时机 | 登录 Shell(如 SSH、tty 登录) | 交互式非登录 Shell(如终端) |
典型用途 | 系统级路径、语言设置、全局别名 | 用户别名、提示符定制、函数定义 |
修改权限 | 需 sudo | 用户可直接编辑 |
影响范围 | 所有用户 | 仅限当前用户 |
深度解析
1. /etc/profile:全局登录配置
-
作用:系统级环境初始化,适用于所有用户。
- 加载条件:
-
用户通过 SSH 或控制台登录(登录 Shell)。
-
执行
bash --login
启动 Shell。
-
- 典型场景:
-
设置
JAVA_HOME
、PATH
等全局变量。 -
定义系统级别名(如
ll
)。 -
配置语言环境
LANG=en_US.UTF-8
。
-
-
生效方式:
#重新登录或
source /etc/profile
2. ~/.bashrc:用户级交互配置
-
作用:用户专属的 Shell 交互配置。
- 加载条件:
-
打开新终端窗口(非登录 Shell)。
-
执行子 Shell(如
bash
)。
-
- 典型场景:
-
用户别名:
alias gs='git status'
-
自定义 PS1 提示符。
-
设置命令补全、历史记录等。
-
-
生效方式:
#重开终端或
source ~/.bashrc