这里我们先来了解两种登录脚本的执行顺序:
登录脚本的执行顺序:【注:仅适用于 bash shell】
Login Shell
是指登录时,需要提供用户名密码的shell,如:su – user1 , 图形登录, ctrl+alt+F2-6进入的登录界面。
这种Login shell 执行脚本的顺序:
1. /etc/profile 【全局profile文件;它定义了LoginUser的 PATH, USER, LOGNAME(登录使用者帐号)】
2. /etc/profile.d/目录下的脚本
3. ~/.bash_profile 【搜索命令的路径 ——————- 登录级别 环境变量配置文件 】
4. ~/.bashrc 【存储用户设定的别名和函数 ———- shell级别 环境变量配置文件】
5. /etc/bashrc 【全局bashrc文件; 它主要定义一些 Function 和 Alias;更改/etc/bashrc会影响到所有用户,由root用户管理。】
Non-Login shell
登录终端后,使用ssh 登录 其他机器!
非登录shell指的是,不需要输入用户名密码的shell,如图形下 右键terminal,或ctrl+shift+T打开的shell
这种Non-Login shell 执行登录脚本的顺序:
1. ~/.bashrc
2. /etc/bashrc
3. /etc/profile.d/目录下的脚本
这里我们可以看出 Non-Login shell是不加载 /etc/profile ,所以导致我们配置在 /etc/profile 下的环境变量找不到
那如何解决呢?
我们可以通过在~/.bashrc中source /etc/profile,这样就可以将/etc/profile配置的环境变量加载到当前登录:
如图在最下方加入: source /etc/profile
编辑好后,再通过ssh xxx 命令 就可以执行了: