Linux环境变量

本文介绍了Linux环境下环境变量的设置及作用范围,包括全局变量和局部变量的区别,如何定义和修改这些变量,以及如何使环境变量的更改永久生效。还探讨了不同类型的shell如何加载环境变量。

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

Linux环境变量

全局变量(全部大写字母表示)对shell会话和所有生成的子shell可见。局部变量(用小写字母和下划线分隔)只对创建它们的shell可见。环境变量在使用时添加$符号,而在改变值时直接调用。

查看环境变量:set返回所有环境变量,printenv/env只返回全局变量

  • echo $HOME
  • printenv $HOME

可以直接通过 myvalue=1 来定义用户局部变量(注意 = 两边一定不能有空格,不然shell将其作为命令理解),并通过export将其扩展为全局变量。这样父shell中的改变将能够同步到子shell中,但子shell中的改变并不能同步到父shell中,不过可以通过在子shell中使用export来同步回父shell。同时,可以使用unset来删除某个环境变量。

shell环境变量的默认加载过程

加载文件
  • /etc/profile
  • $HOME/.bash_profile
  • $HOME/.bashrc
  • $HOME/.bash_login
  • $HOME/.profile

登录shell:只要登录Linux系统,bash就会执行/etc/profile中的命令。而/etc/profile又将遍历/etc/profile.d目录中的所有文件,并加载其中的环境变量。之后将在对应用户目录下依次查询除 $HOME.bashrc 之外的文件,只要找到一个之后的将被忽略。同时, $HOME.bashrc 中通常将检查是否存在 $HOME.bashrc 文件,如果存在会先执行其中的内容。

交互式shell:通过bash启动的shell。此时系统将只检查 $HOME/.bashrc 文件。

非交互式shell:系统执行shell脚本使用的shell。此时将检查BASH_ENV变量来查看要执行的启动文件。

环境变量的持久化(如何永久的保留定义的环境变量):通常将需要添加的环境变量通过在/etc/profile.d目录中创建一个以.sh结尾的文件或存储在$HOME/.bashrc文件中。

  • export PATH="$PATH:." #将当前目录添加到搜索可执行文件路径
  • export TERM=xterm       #启动xterm颜色标示

数组变量通过数组的形式来存储变量,并通过${mytest[2]}来引用对应位置的变量值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值