如何在AWS的Ubuntu系统EC2实例中永久设置环境变量
基于Ubuntu的AWS EC2实例永久设置环境变量操作步骤
以下操作均为永久生效配置,重启实例后不会丢失,可满足容器、后台进程等不同场景的变量读取需求。
场景1:仅对单个用户永久生效
适合只需要当前登录用户能读取变量的场景:
- 编辑当前用户的bash配置文件:
nano ~/.bashrc - 在文件末尾添加环境变量定义,格式如下:
export 变量名=变量值 # 示例:export NODE_ENV=production - 保存退出后执行命令让配置立即生效:
source ~/.bashrc - 验证是否生效:
echo $变量名输出你设置的变量值即为成功。
场景2:对系统所有用户(包括root、后台进程)永久生效
适合需要所有用户、服务都能读取变量的场景,分为两种配置方式按需选择:
交互式登录场景生效
- 编辑全局profile配置文件:
sudo nano /etc/profile - 在末尾添加环境变量定义:
export 变量名=变量值 - 保存退出后执行生效命令:
source /etc/profile
系统全局(登录前即可生效)
- 编辑系统底层环境变量文件:
sudo nano /etc/environment - 直接添加变量定义(不需要加export前缀):
变量名=变量值 - 保存后重启EC2实例即可生效
注意:以上两种配置重启实例后依然保留,对所有用户生效。
场景3:给systemd管理的服务/容器进程传递环境变量
普通全局配置不会被systemd管理的进程读取,需要单独配置:
- 找到对应服务的配置文件,路径通常为
/etc/systemd/system/你的服务名.service - 在
[Service]段下添加如下配置:Environment="变量名=变量值" # 多个变量可以写多行Environment配置 - 重载systemd配置使修改生效:
sudo systemctl daemon-reload - 重启对应服务后即可生效:
sudo systemctl restart 你的服务名
Docker容器专属配置说明
如果需要让Docker容器读取宿主机的环境变量,可选择以下两种方式:
- 启动容器时单条传递变量:
docker run -e 变量名 镜像名 - 批量传递变量:将所有变量写入文件(每行格式为
变量名=变量值,不需要加export),启动时指定文件:docker run --env-file 你的变量文件路径 镜像名
内容的提问来源于stack exchange,提问作者Saurabh
相关产品推荐
相关产品推荐

