修改/etc/environment 然后重启终端即可
/etc/environment
是 Linux 系统中用于设置全局环境变量的配置文件。它通常用于定义系统范围内所有用户和进程共享的环境变量。与用户级别的配置文件(如 .bashrc
或 .bash_profile
)不同,/etc/environment
中的环境变量对所有用户和会话生效。
1. /etc/environment
的作用
- 全局生效:在
/etc/environment
中设置的环境变量对所有用户和进程有效。 - 简单格式:文件中的每一行都是一个键值对,格式为
KEY=value
。 - 无需导出:在
/etc/environment
中设置的环境变量不需要使用export
命令导出。
2. /etc/environment
的格式
/etc/environment
文件的格式非常简单,每行定义一个环境变量,格式为:
KEY=value
例如:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
from_email=mycolorcity@qq.com
- 注意事项:
- 不要使用引号(
"
或'
)包裹值。 - 每行只能定义一个环境变量。
- 文件中的变量会在系统启动时加载。
- 不要使用引号(
3. 编辑 /etc/environment
编辑 /etc/environment
需要管理员权限(root
用户)。
方法 1:使用 nano
编辑器
sudo nano /etc/environment
方法 2:使用 vim
编辑器
sudo vim /etc/environment
示例
假设你想设置以下环境变量:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
from_email=mycolorcity@qq.com
编辑后的 /etc/environment
文件内容如下:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
from_email=mycolorcity@qq.com
保存并退出编辑器。
4. 使更改生效
/etc/environment
中的环境变量会在系统启动时加载。如果你希望立即生效,可以重新登录系统,或者运行以下命令:
source /etc/environment
5. 验证环境变量
你可以通过以下命令验证环境变量是否已正确设置:
方法 1:使用 printenv
printenv JAVA_HOME
printenv from_email
方法 2:在 Python 中读取
import os
java_home = os.getenv("JAVA_HOME")
from_email = os.getenv("from_email")
print(f"JAVA_HOME: {java_home}")
print(f"from_email: {from_email}")
6. /etc/environment
的注意事项
- 权限问题:
/etc/environment
文件通常属于root
用户,普通用户无法修改。如果需要修改,必须使用sudo
。 - 系统范围生效:在
/etc/environment
中设置的环境变量对所有用户和进程生效,因此需要谨慎操作。 - 不支持复杂语法:
/etc/environment
只支持简单的KEY=value
格式,不支持 Shell 脚本或复杂逻辑。
7. /etc/environment
与其他配置文件的区别
配置文件 | 作用范围 | 加载时机 | 格式 |
---|---|---|---|
/etc/environment | 全局(所有用户) | 系统启动时 | KEY=value |
/etc/profile | 全局(所有用户) | 用户登录时 | Shell 脚本 |
~/.bashrc | 当前用户 | 打开新的 Shell 时 | Shell 脚本 |
~/.bash_profile | 当前用户 | 用户登录时 | Shell 脚本 |
~/.profile | 当前用户 | 用户登录时 | Shell 脚本 |
8. 使用场景
- 全局路径配置:例如设置
JAVA_HOME
、PATH
等。 - 系统级环境变量:例如设置数据库连接信息、API 密钥等。
- 跨用户共享配置:例如在多个用户之间共享相同的环境变量。
9. 示例:设置 PATH
环境变量
假设你想将 /usr/local/custom/bin
添加到系统的 PATH
中:
- 编辑
/etc/environment
:sudo nano /etc/environment
- 修改
PATH
变量:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/custom/bin
- 保存并退出,然后重新登录系统或运行:
source /etc/environment
- 验证:
echo $PATH
总结
/etc/environment
是一个简单而强大的工具,用于设置全局环境变量。它适用于需要系统范围内共享的环境变量配置。如果你只需要为当前用户设置环境变量,可以使用 ~/.bashrc
或 ~/.bash_profile
;如果需要更灵活的管理方式,可以使用 python-dotenv
或直接在代码中设置环境变量。