【linux--->环境变量】


一、概念

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数
在操作过linux命令行界面时,诸如ls history cd等指令其实都是用C语言写的一个个的可执行程序,当需要运行这些可执行程序的时候只需要输入ls这样的简单字样就可以了,而我们自己写的可执行c程序却需要加上“./”。这就是环境变量导致的。
在这里插入图片描述

可以不加“./”就能执行“ls”,是因为有一个叫做PATH的系统环境变量中存储了“ls”可执行文件的路径和“.”点表示的是当前路径,PATH变量是为了方便系统找到文件的路径,是系统特定的执行文件搜索凭据。我们自己写的可执行程序的绝对路径如果添加到这个环境变量中当然也可以目标文件名直接运行了。
当然了PATH只是操作系统维护的环境变量之一,每个环境变量都有其作用。

二、环境变量的分类

1.按级别分

系统环境变量:公共的,对所有用户有效
指令:export,可查看所有系统环境变量
在这里插入图片描述
用户环境变量:自定义的个性化设置,只对该用户生效
指令:env,可查看用户所有环境变量
在这里插入图片描述

2.按生命周期分

永久环境变量:在环境变量脚本文件中配置的环境变量,每次用户登录都会执。
临时环境变量:使用时在shell中临时定义的环境变量,退出shell后失效

三、常用的环境变量

PTAH:存储可执行程序的搜索目录,可执行程序包括linux系统命令和用户的应用程序
LANG:存储linux系统语言,地区,字符集
HOSTNAME:存储服务器主机名字。
SHELL:用户当前使用的shell解析器
HISTSIZE:保存的历史命令的数目
USER:当前用户名
HOME:当前用户的主目录

四、设置环境变量

1.临时环境变量

指令:export 变量名=变量值
作用:直接修改单条变量
在这里插入图片描述
指令:export 变量名=$变量名:路径1:路径2
作用:在原有基础上增加环境变量。
在这里插入图片描述
2.用户环境变量
ls /home/*/.bash(查看家目录下的所有以.bash结尾的文件),查看用户脚本文件
在这里插入图片描述
.bash_profile:专属用户环境变量配置脚本文件,推荐在这个文件中设置环境变量。
.bash_history:历史指令记录文件
.bash_logout:退出时执行文件
.bashrc:此文件每打开一个shell终端就会执行一次,所以一般不在这个文件中设置环境变量,开销大。
2.系统换将变量
脚本文件:/etc/profile文件中添加变量(不推荐,因为不方便维护)
在这里插入图片描述
或者在/etc/profile.d目录中添加脚本文件(以.sh结尾的文件)(推荐,方便维护)
在这里插入图片描述

五、模拟实现系统指令

C语言我们从头到尾都没有见过main函数的参数,是不是以为它没有参数呢,其实main函数也是有参数的在这里插入图片描述
在这里插入图片描述
环境变量其实是一个内存级的量表,每个程序都会收到这个表,例如C语言中,我们写的c程序同样会收到这个表,我们试验一下在main函数中接收环境变量
在这里插入图片描述
在这里插入图片描述
既然每个程序都会收到这个表,说明它是具有全局性的,那么*envp[]也有一个全局函数,getenv()函数,我们模拟实现一个pwd系统指令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有了前两个参数的用法,我们就可以解释命令带选项参数是真么回事儿了。
实现命令带选型
在这里插入图片描述
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值