【Linux】环境变量

1、初识环境变量

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数。
比如:Linux中 ls、file 等这些命令也是可执行文件,与我们在Linux下写的代码编译生成的可执行文件一样,只是 ls 这些文件都在Linux基础库中,他们在系统中,都会存在一个环境变量,这个环境变量能够帮我们通过该变量在系统中特定的路径下,帮我们搜索到对应的 ls 的命令。

我们写的代码,运行的时候,就需要带上路径,也就是要加上 ./ 那如果我们不想加上 ./ 呢?
在这里插入图片描述
可以用export PATH=$PATH:/home/HXJ/test添加环境变量,也就是把对应的可执行文件的路经,添加到环境变量中去,但是这种写法是暂时的,重新登录Xshell后,环境变量又更新了。

重新登录后的环境变量:
在这里插入图片描述
添加myproc的环境变量后:
在这里插入图片描述
我们也可以把可执行程序,拷贝到系统默认路径下,也可以让我们直接访问
在这里插入图片描述
cp -rf myproc /usr/bin可以拷贝到系统默认路径下,如果有权限问题,则在前面加个sudo,这种方式相当于Linux下的软件安装,那么如何删除呢?

在这里插入图片描述
rm /usr/bin/myproc -rf可以删除路径,相当于软件卸载。

2、和环境变量相关的命令

环境变量相关的命令

  1. echo: 显示某个环境变量值
  2. export: 设置一个新的环境变量
  3. env: 显示所有环境变量
  4. unset: 清除环境变量
  5. set: 显示本地定义的shell变量和环境变量

在这里插入图片描述

常见环境变量
PATH : 指定命令的搜索路径
HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
SHELL : 当前Shell,它的值通常是/bin/bash。

3、环境变量的组织方式

在这里插入图片描述

每个程序都会收到一张环境表,环境表是一个字符指针数组,每个指针指向一个以’\0’结尾的环境字符串,其中envp是一个传给当前进程的环境变量表,里面的字符串是指向以KV形式呈现的环境变量字符串,environ是一个char**类型,可以以第三方形式获取环境变量。

1.命令行第三个参数

在这里插入图片描述
运行结果:
在这里插入图片描述

由上述结果可知,envp是一个环境变量表。

2.通过第三方变量environ获取环境变量

在这里插入图片描述

3.通过系统调用获取或设置环境变量

char *getenv(const char *name) : 通过环境变量名称来获取特点的环境变量

在这里插入图片描述
运行结果:
在这里插入图片描述

4、环境变量的本质

  • 什么是环境变量
    环境变量本质就是一个内存级的一张表,这个表是由用户在登录系统的时候,进行给特定用户形成属于自己的环境变量表。
    环境变量中的每一个,都有自己的用途:有的是进行路径查找的,有的是进行身份认证的,有的是进行动态库查找的,有的是用来确认当前路径等待,每一个环境变量都有自己的特点应用场景。

  • 那么环境变量对应的数据都是从哪里来的呢?
    是从系统的相关配置文件中读取进来的,是由用户在登录系统的时候,进行个给特定用户形成属于自己的环境变量表。
    在这里插入图片描述

  • 我们向系统导入一个环境变量
    在这里插入图片描述
    我们再获取这个环境变量
    在这里插入图片描述
    运行结果:
    在这里插入图片描述
    所以环境变量是可以被相关的子进程继承下去的,环境变量具有全局属性

  • 我们定义一个本地变量
    在这里插入图片描述
    运行结果:
    在这里插入图片描述
    由此可知:本地变量只在shell内部有效,不可以被相关的子进程继承下去的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

柒个葫芦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值