文章目录
1. 定义
环境变量是存储在操作系统中的键值对,在操作系统中用于存储和传递系统配置信息。简单来说,环境变量就是将某些数据、文件或文佳佳设置为默认值,这样使用的时候就无需用完整了路径和地址进行设置了,直接使用变量名即可。
2. 分类
2.1. 全局变量
对整个系统或所有用户生效。如系统路径。
2.2. 用户级变量
仅对当前用户生效,如用户主目录路径。
2.3. 进程级进程
仅对某个进程或及其子进程生效(如临时调试变量)。
3. 常用环境变量
- PATH:用于指定可执行文件的搜索路径。当在命令行中输入一个命令时,操作系统会在 PATH 变量指定的目录中查找对应的可执行文件。
- HOME:表示用户的主目录。在类 Unix 系统中,这个变量通常用于确定用户的默认工作目录和配置文件存储位置。
- USER或USERNAME:存储当前登录用户的用户名。
TMPDIR或TEMP:指定临时文件的存储目录。应用程序通常会在这个目录中创建临时文件。 - LD_LIBRARY_PATH(在类 Unix 系统中):用于指定动态链接库的搜索路径。当程序运行时,需要加载动态链接库,操作系统会在 LD_LIBRARY_PATH 指定的目录中查找这些库。
4. 设置环境变量
4.1. 临时设置
使用export命令
# 格式:export 变量名=值
export MY_VARIABLE="hello world"
# 示例:添加自定义路径到 PATH
export PATH="$HOME/bin:$PATH"
# 查看已设置的变量
echo $MY_VARIABLE
使用脚本
export LD_LIBRARY_PATH="/home/$USER/lib:\
/home/$USER/thirdparty/log/lib:\
/home/$USER/thirdparty/yaml/lib:\
/home/$USER/thirdparty/zmq/lib:\
/home/$USER/thirdparty/qt/lib\
${LD_LIBRARY_PATH}"
导入多个链接库时,可以使用拼接的方式,注意最后的${LD_LIBRARY_PATH},和每行最后的冒号分隔符。使用时可采用source bulid.sh在终端运行。
export命令,设置环境变量,使其在当前 shell 及其子进程中可用${LD_LIBRARY_PATH},保留系统原有的库搜索路径,追加在自定义路径之后\续行符,反斜杠 \ 用于将长命令拆分成多行,提高可读性(实际执行时会被视为单行命令):路径分隔符,路径之间使用冒号分隔,末尾不需要额外冒号
执行脚本
source vs ./ 的区别
source或.:在当前 shell 进程中执行,环境变量会立即生效,适合作为环境配置脚本。./setenv.sh:创建子进程执行,环境变量修改不会影响父进程,适合作为任务执行脚本。
4.2. 永久设置
4.2.1. 修改用户级配置文件
对当前用户有效
~/.bashrc(Bash shell 用户)
~/.zshrc(Zsh shell 用户)
# 编辑配置文件
nano ~/.bashrc
# 添加环境变量(示例)
export MY_VARIABLE="hello world"
export PATH="$HOME/bin:$PATH"
# 使配置立即生效
source ~/.bashrc
4.2.2. 修改系统级配置文件
/etc/environment(系统全局环境变量)
/etc/profile(所有用户登录时执行)
/etc/bash.bashrc(所有 Bash 用户执行)
4.2.3. 针对当前进程
在shell脚本开头设置环境变量,仅对该脚本有效。
#!/bin/bash
export MY_VARIABLE="hello"
export PATH="/custom/bin:$PATH"
# 脚本主体
echo "变量值: $MY_VARIABLE"
[1] 环境变量是什么?有什么用?
[2] 为什么要配置环境变量?通俗解释

1203

被折叠的 条评论
为什么被折叠?



