Linux 系统上有四个环境配置文件,分别为:
- /etc/profile
- /etc/bash.bashrc
- ~/.profile
- ~/.bashrc
1. 先从作用域来说
/etc 目录下的配置文件影响所有用户。
~/ 用户家目录下的配置文件只影响本用户。
2. 从加载时机来说
profile 是用户在登录系统的时候加载的。profile 在用户登录使用的过程中只加载一次。修改之后,需要重启系统生效。我们把 profile 叫做登录式 SHELL 配置文件,
bashrc 是用户在启动 bash shell 的时候加载的。也就是启动一个 terminal 终端的时候加载。修改之后,只要重启 terminal 就生效了。或者手动 source ~/.bashrc 也能生效。我们把 bashrc 叫做非登录式 SHELL 配置。
3. 各文件的加载流程
登陆式 SHELLL 配置文件加载顺序:/etc/profile > .bash_profile > .bash_login > .profile > .bash_logout
非登录式 SHELL 配置文件加载顺序:/etc/bash.bashrc > .bashrc
4. 知识点应用举例
问题:在 clion 中设置交叉编译环境,获取不到 .bashrc 中设置的 PATH 环境变量。
在 ~/.bashrc 中设置交叉编译工具环境变量
1 | export PATH=$PATH:/media/deep/source-code/Hi3516/sourceCode/toolchain/arm-himix200-linux/bin |
在 clion 中设置交叉编译工具
1 | set(CMAKE_SYSTEM_NAME Linux) |
clion 中提示 arm-himix200-linux-gcc 找不到。但直接在 terminal 中执行 cmake 是可以编译成功的。
原因分析:clion 是由 gnome 桌面启动的。gnome 是由登录式 shell 启动的。因此环境变量是继承的登录式 shell 的环境变量。也就是 profile 配置的环境变量。profile 中没配置 arm-himix200-linux 路径,因此找不到。启动的终端是非登录式 shell。会加载 bashrc 文件, 因此能找到 arm-himix200-linux。
解决方案:在 ~/.profile 中设置编译工具环境变量,然后重启即可。
1 | qiushao@qiushao-PC:~$ tail .profile |