一、什么是环境变量?¶
想象一下,你在Windows里打开一个软件时,系统会自动记住你安装的路径、常用的工具位置。在Linux中,环境变量就像这样的“系统记忆”——它是一类包含数据的变量,用来存储系统或程序运行时需要的信息,比如软件安装路径、用户信息、语言设置等。
简单说,环境变量是系统“记住”的一些配置,让你不用重复输入复杂信息,比如每次运行Python时,系统能自动找到Python的位置。
二、为什么要设置环境变量?¶
最常见的场景是:让系统能找到你想运行的程序。比如你写了一个自己的脚本(比如test.sh),想在任何目录下都能直接运行,而不用每次都输入完整路径(比如./test.sh)。这时候把脚本所在的目录加到环境变量PATH里,就能直接输入test.sh运行了。
其他例子:
- PATH:系统搜索可执行文件的路径列表(比如ls、python等命令的位置)。
- LANG:控制系统的语言(比如中文显示乱码时,可能需要设置LANG=zh_CN.UTF-8)。
- HOME:指向你的家目录(比如/home/yourname,用~代替)。
三、如何查看环境变量?¶
你可以用以下命令快速查看环境变量:
- 查看单个变量:
echo $变量名
比如想知道当前路径(当前所在目录):
echo $PWD
想知道用户名:
echo $USER
- 查看所有环境变量:
- 用env命令:列出所有环境变量(不带参数)。
- 用printenv命令:和env类似,也能列出所有变量,还可以指定变量名(比如printenv PATH)。
四、临时设置环境变量(仅当前终端有效)¶
临时设置是指只在当前打开的终端窗口生效,关闭终端后失效。用export命令即可:
# 设置变量,格式:export 变量名=值
export MY_VAR="hello"
export PATH=$PATH:/new/path # 追加路径到PATH(后面会详细讲PATH)
设置后,用echo $MY_VAR就能看到结果。比如:
echo $MY_VAR # 输出:hello
五、永久设置环境变量(重启后仍生效)¶
临时设置只在当前终端有用,若想让变量一直生效(比如每次打开终端都有这个变量),需要修改配置文件。Linux下有两种级别的配置文件:
1. 用户级配置文件(仅对当前用户生效)¶
~/.bashrc:每次打开新终端(bash)时自动执行,适合添加用户专属配置。~/.profile:部分shell启动时执行(比如bash),也可放用户配置。
修改方法:
# 打开配置文件(用nano或vim编辑器)
nano ~/.bashrc # 或 vim ~/.bashrc
# 在文件末尾添加一行(注意:等号两边不能有空格)
export MY_VAR="hello"
# 保存后生效(source是关键!)
source ~/.bashrc # 或 source ~/.profile
2. 系统级配置文件(对所有用户生效,需sudo权限)¶
/etc/profile:所有用户登录时执行(系统级全局配置)。/etc/environment:系统环境变量(通常不直接修改,可通过/etc/profile.d/*.sh添加脚本)。
修改系统级文件需管理员权限(sudo):
sudo nano /etc/profile # 或其他系统级文件
六、最重要的环境变量:PATH¶
PATH是系统搜索可执行文件的“路径列表”,格式类似:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
系统运行命令时,会按顺序在PATH的每个目录里找对应的程序。如果你的程序(比如自己写的脚本)放在~/scripts目录下,想在任何位置运行它,只需把~/scripts加到PATH里:
# 临时添加到PATH
export PATH=$PATH:~/scripts
# 永久添加到~/.bashrc
echo 'export PATH=$PATH:~/scripts' >> ~/.bashrc
source ~/.bashrc # 生效
现在你在任何目录执行your_script.sh就能直接运行了!
七、常见环境变量速查¶
| 变量名 | 作用 | 例子 |
|---|---|---|
PATH |
系统搜索可执行文件的路径列表 | 包含/usr/bin(系统命令)、/home/user/bin(用户脚本)等 |
HOME |
当前用户的家目录 | /home/yourname |
USER |
当前用户名 | yourname |
LANG |
系统语言/字符编码 | LANG=zh_CN.UTF-8(中文显示) |
PS1 |
终端提示符 | \[\e]0;\u@\h:\w\a\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$(自定义提示符) |
八、注意事项¶
- 临时 vs 永久:临时用
export,永久用配置文件。 - 权限问题:修改系统级文件(如
/etc/profile)需加sudo,避免误改系统配置。 - 变量值含空格:用引号包裹,比如
export MY_VAR="hello world"。 - 生效方式:修改配置文件后,需执行
source 文件名或重启终端才会生效。
总结¶
环境变量是Linux中让系统“记住”配置的关键,学会设置和查看它们能极大提升效率。重点掌握PATH(让程序可全局运行)和配置文件的使用,你就能灵活管理系统环境了!多尝试echo $变量名和env命令,很快就能熟悉环境变量的作用~