php shell 环境变量设置,Shell环境变量设置方法详解

环境变量和用户自定义变量最主要的区别在于,环境变量是全局变量,而用户自定义变量是局部变量。用户自定义变量只在当前的 Shell 中生效,而环境变量会在当前 Shell 和这个 Shell 的所有子 Shell 中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的 Shell 中生效。

这是有区别的,如果环境变量不写入配置文件,那么当前 Shell 一旦终止,这个环境变量就会消失,而只有写入配置文件才会永久地在所有 Shell 中生效。

在 Linux 中一般通过环境变量配置操作系统的环境,如提示符、查找命令的路径、用户家目录等,这些系统默认的环境变量的变量名是固定的,我们只能修改变量的值。

当然,我们也可以手工定义环境变量,不过这些自定义的环境变量不能修改操作系统环境,其只是一个全局变量而已。

环境变量设置

环境变量和用户自定义变量的设置方法相比,只需通过 export 命令将变量声明为环境变量即可。命令如下:

[root@localhost ~]# export age="18"

#使用export声明的变量就是环境变量

这样年龄就是环境变量了。当然也可以先把变量声明为本地变量,再用 export 声明为环境变量,命令如下:

[root@localhost ~]# gender=male

[root@localhost ~]# export gender

这样性别也被声明为环境变量了。前面说过,用户自定义变量和环境变量的区别就是:用户自定义变量只能在当前 Shell 中有效,而环境变量在当前 Shell 和所有子 Shell 中有效。比如:

[root@localhost ~]# name="zhang san"

#把姓名声明为本地变量

[root@localhost ~]# export age="18"

#年龄声明为本地变量

[root@localhost ~]# gender=male

#性别声明为本地变量

[root@localhost ~]# export gender

#性别升级为环境变量

然后我们查询一下这些变量:

[root@localhost ~]# set

…省略部分内容…

gender=male

name='zhang san'

age=18

在当前 Shell 中可以看到这三个变量。

[root@localhost ~]# bash

#再调用一次bash,也就是进入子Shell

[root@localhost ~]# set

#再次查询变量

…省略部分输出…

age=18

gender=male

#在子Shell中只能看到环境变量"age"和"gender",而不能查询到用户自定义变量"name"

可以看到,在子 Shell 中只能看到环境变量"age"和"gender",这就是环境变量和用户自定义变量的区别。

环境变量查询和删除

set 既可以查询所有的变量,也可以查询环境变量,我们刚刚 的实验就是使用 set 命令进行环境变量查询。当然,也可以使用 env 命进行环境变量的查询,命令如下:

[root@localhost ~]# env

HOSTNAME=localhost.localdomain

SELINUX_ROLE_REQUESTED=

SHELL=/bin/bash

…省略部分输出…

env 和 set 命令的区别是,set 命令可以查看所有变量,而 env 命令只能查看环境变量。我们可以发现系统默认有很多的环境变量,这边环境变量的具体含义会在后续章节中详细介绍。

再来说说环境变量的删除。其实环境变量的删除方法和用户自定义变量是一样的,都使用 unset 命令,命令如下:

[root@localhost ~]# unset gender

[root@localhost ~]# env | grep gender

#删除环境变量gender

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值