linux-----环境变量


1.常见的环境变量:

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

PWD:记录当前工作目录。

2.main参数和环境变量

main函数的3个参数,main函数第一个参数是命令行参数的个数,第二个参数是一个类型为char*的数组最后一个元素以NULL结尾,每个元素中存储的字符串的地址(命令行参数)。第三个参数char*arg[],它的每个元素也是char*数组的最后一个元素以NULL结尾(环境变量)。

验证:

我们可以通过这个main参数拿到命令行参数的内容还有环境变量,命令行参数的个数。bash会帮我们传参。

(1)简单实现个计算器

这里我们从键盘上输入的指令,会被bash维护,形成一张表每个元素是一个字符串以空格分开,以NULL作为结尾 。mian形参arge是元素的个数,char* arg[]指向是一个数组指针,数组存储的是指向字符串地址。

我们可以用它来用在同个程序中,通过指令选项执行不同的功能。

以下实现简单的计算器:

2.了解环境变量

1.Linux中的环境变量有很多,它们之间是独立的,不同场景下有不同的用处。可以通过指令env查看当前机器的所有环境变量。操作系统会开辟内存存储用户名,当前的工作目录,家目录等一些信息,在你登入linux的时候,通过在linux家目录下的配置文件加载好,它是一个脚本文件。

既然我们登入linux就会执行这个脚本文件,那么我们直接在文件导入自己的环境变量,就可以永久生效了。

 env查看:导入成功

2.1我们可以用系统的环境变量干什么。

1.用PATH来说:’linux中每个命令能被执行,因为在PATH中记录了它们的路径,命令也是代码,要执行运行必须要知道它在哪。我们在运行我们自己写的编译好的可执行文件,要带上./可执行文件或者绝对路径 ,要让我们程序之间运行,而不带路径,那么就要把当前文件的工作目录路径添加到PATH中

1.直接将路径拷贝到PATH的其中一个路径下。不过并不建议因为会污染变量,当然污染之后重启Linux也是会恢复的,这是因为登入linux就会执行家目录下的脚本文件,加载到内存中,内存中的修改不影响文件,重新登入就可以恢复了。

2.指令:export  PATH=文件的工作目录路径:$PATH。

这样我们就可以像指令一样直接执行了,而不用指明路径(./a.out),不过这个只是对当前会话有效,如果要永久有效的话就要在配置文件中执行命令。

3.环境变量的获取和导入

1.获取

我们有三种方mian第三个参数,还有一个系统提供给我们的全局变量environ,还有函数调用接口getenv();

2.导入:

我们可以通过指令export或者系统系统提供的函数(putenv())

3.环境变量和本地变量

3.1.本地环境变量:

本地变量只在bash内部有效,不可以被子进程继承,不具有全局性。变量名+赋值。通过set查看

 

.2 环境变量

可以被子进程继承,具有全局性,通env查看

4.命令和bash的关系

bash也是个程序,命令行执行的命令实际上是bash通过创建子进程的方式来执行的,而且指令也是个程序,它存储在文件中加载到内存,PATH中存储的就是路径。linux的指令可以分为内建命令和普通命令,普通命令是创建子进程执行,而内建命令可以理解为bash这个程序内部的一个函数。

验证:我们把记录命令程序的路径PATH的覆盖。

我们发现这个时候就执行不了一些命令了。因为有些命令 是通path找到程序创建子进程执行的,而有些命令却依旧可以执行,可见命令也是有分类的。

内建命令:bash的内部的函数。不需要创建子进程来执行,直接调用自己的函数

外键命令:存储在磁盘上的程序文件,需要知道文件的位置。

5.环境变量的特点

1.全局性:父进程的环境变量会被子进程继承而本地环境变量不可以


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值