配置文件加载顺序:
bash shell可分为3种类型:
1 login shell:需要输入用户名和密码才能登陆的shell
2 可交互的非login shell:不用登陆,但可以同用户进行交互的shell,比如在父shell当中执行bash命令产生的子shell
3 不可交互的非login shell:系统使用
login shell读取文件如上图,login shell首先读取/etc/profile文件,/etc/profile会调用执行/etc/profile.d目录下的.sh文件,然后shell读取$HOME目录下的.bash_profile、.bash_login、.profile(搜索顺序按照顺序进行,找到一个就不会在找下一个),然后.bash_profile、.bash_login、.profile会调用.bashrc,.bashrc会调用/etc/bashrc,/etc/bashrc会调用执行/etc/profile.d目录下的.sh文件
而非登录shell仅仅会读取 ~/.bashrc。首先读取.bashrc,同上面一样,.bashrc调用/etc/bashrc,/etc/bashrc调用执行/etc/profile.d目录下面的.sh文件。
Linux环境变量设置文件:
/etc/profile
全局用户,应用于所有的Shell。
/$HOME/.profile
当前用户,应用于所有的Shell。
/etc/bash_bashrc
全局用户,应用于Bash Shell。
~/.bashrc
局部当前,应用于Bash Sell。
查看bash加载顺序: man bash
手动加载文件:source .bashrc //当我们修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如source /etc/profile。
环境变量:
PATH 是可执行文件路径。运行的命令都是系统通过PATH找到这个命令执行文件的所在位置,再运行的。
LIBRARY_PATH 是程序编译期间查找动态链接库时指定查找共享库的路径。
LD_LIBRARY_PATH 是程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径。注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。