export env 环境变量继承猜想

本文探讨了环境变量在子shell中的继承情况,通过实验验证了export命令如何在当前shell创建全局变量,但该变量不会在不同用户的shell会话中继承。要实现全局持久化,需将变量添加到/etc/profile。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

env 环境变量继承猜想

猜想:
# su zjz 是父shell开出来的子shell
# su - zjz 就是父shell,新成立


env命令

env命令用于显示系统中已存在的环境变量,以及在定义的环境中执行指令。该命令只使用"-“作为参数选项时,隐藏了选项”-i"的功能。若没有设置任何选项和参数时,则直接显示当前的环境变量。
参数:
-i:开始一个新的空的环境;
-u<变量名>:从当前环境中删除指定的变量

实验测试猜想

在root下定义一个新的全局变量ZXC,env查看里面没有内容
在这里插入图片描述
使用export升级为全局变量后,env查看已经在env列表里
在这里插入图片描述
注意:使用export将变量升级为全局变量,只对该shell有效
退出此shell,export定义的全局变量也会失效
想要让变量永久生效需将变量写在/etc/profile中。(#source /etc/profile 立即生效)

结果

使用su zjz登录,查看zjz下的env环境变量,找到在root下定义的ZXC变量
在这里插入图片描述使用su - zjz 登录,查看zjz下的env环境变量,没有找到root下定义的ZXC变量
在这里插入图片描述

export 变量名,将变量升级为当前用户下的全局变量
如果使用su - zjz,就会去加载zjz自己的环境变量,
如果使用su zjz,还使用的是root的环境变量

参考文档:

子shell以及什么时候进入子shell
https://www.cnblogs.com/f-ck-need-u/p/7446194.html

鸟哥linux私房菜
http://cn.linux.vbird.org/linux_basic/0410accountmanager.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值