python读取bashrc变量不生效问题

修改/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_HOMEPATH 等。
  • 系统级环境变量:例如设置数据库连接信息、API 密钥等。
  • 跨用户共享配置:例如在多个用户之间共享相同的环境变量。

9. 示例:设置 PATH 环境变量

假设你想将 /usr/local/custom/bin 添加到系统的 PATH 中:

  1. 编辑 /etc/environment
    sudo nano /etc/environment
    
  2. 修改 PATH 变量:
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/custom/bin
    
  3. 保存并退出,然后重新登录系统或运行:
    source /etc/environment
    
  4. 验证:
    echo $PATH
    

总结

/etc/environment 是一个简单而强大的工具,用于设置全局环境变量。它适用于需要系统范围内共享的环境变量配置。如果你只需要为当前用户设置环境变量,可以使用 ~/.bashrc~/.bash_profile;如果需要更灵活的管理方式,可以使用 python-dotenv 或直接在代码中设置环境变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭梨山大哎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值