Linux进程——环境变量之二
创始人
2024-12-02 03:04:13
0

文章目录

    • 环境变量
      • 查看环境变量
      • 获取环境变量
      • main()的第三个参数
      • 本地变量
      • 全局环境变量
      • 内建命令与常规命令

环境变量

查看环境变量

在上一篇文章中我们只说了查看某个环境变量的值,那么如何查看所有的环境变量呢

使用指令env即可

例如

QQ_1721910604069.png

这里我们也不需要全部记住,只需要记住一些比较常见的

  1. PWD
    这个环境变量就是给pwd指令的结果了
  2. HOME
    这里对应的就是cd ~命令了,找到家在哪里

那其实在我们登录Xshell时,他所做的工作就是认证信息,将bash加载到内存,形成进程,根据用户名初始化环境变量,进入家目录

这样我们其实就能理解为什么当我们直接改环境变量值的之后,直接重启Xshell就能恢复了,因为每一次都要重新加载初始化

获取环境变量

那么在C语言中是如何获取环境变量呢

就是使用getenv()函数即可,返回值即为环境变量的值,参数是环境变量名称

例如

char* ret = NULL; ret = getenv("PATH"); 

main()的第三个参数

我们之前说了main的前两个参数,表示命令行参数表

int main(int argc, char* argv[], char* env[]) 

这里的第三个参数其实就是环境变量的指针数组,他指向的就是环境变量表

我们可以像之前一样循环打印看看环境变量

#include int main(int argc, char* argv[], char* env[]) {     for(int i=0; env[i]!=NULL; i++)     {         printf("%d : %s\n", i, env[i]);     }     return 0; } 

本地变量

我们可以在bash中直接定义环境变量,直接使用等号即可

环境变量=值

然后使用echo $环境变量就能查看了

但是我们自己定义的变量本质上是本地的,使用env是查不到的

但如果我们想要定义的环境变量被放在系统中的变量中,就需要export 环境变量名

全局环境变量

在上面的一系列介绍中,我们很容易产生一种感觉,分为临时的本地变量和全局的环境变量,事实上也就是如此

在修改或者定义环境变量时,我们只修改了bash进程中的环境变量,当我们重新登录之后,bash又恢复成原来的样子了

这时因为bash解释器会从bash_profile文件中初始化环境变量

也就是说,如果我们想要彻底将一个环境变量保存,就需要保存到他的配置文件当中

QQ_1721912108865.png

并且我们联系之前的知识,由父进程创建的进程会采用写时拷贝的方式来达到共用的目的,也就是说父进程的环境变量可以被子进程使用

这也就是说环境变量具有全局性

在c语言中其实也算是这样,我们可以使用extern来声明外部环境变量

内建命令与常规命令

我们知道bash的命令不用加上路径是因为他存在环境变量PATH里了

但如果我们将PATH置空,这些命令自然也就不能运行了,但是有一些指令,比如说pwd、echo,仍然可以正常运行

这主要是因为Linux的指令分为两类,一类是bash创建子进程执行的,称之为常规命令,另一类是bash自己执行的,相当于调用一个函数,称之为内建命令

相关内容

热门资讯

第9分钟经验!杭州都莱辅助软件... 第9分钟经验!杭州都莱辅助软件,三哥玩摆头挂(辅助)总是存在有修改器(哔哩哔哩)第9分钟经验!杭州都...
3分钟总结!中至余干怎么安装,... 3分钟总结!中至余干怎么安装,海米大厅辅助(辅助)竟然有挂app(哔哩哔哩)一、中至余干怎么安装游戏...
第4分钟窍门!白金岛放炮罚作必... 第4分钟窍门!白金岛放炮罚作必弊码有哪些,新广西老友辅助(辅助)真是是真的辅助器(哔哩哔哩)1、每一...
六分钟指引!闲逸游戏游透视吗,... 六分钟指引!闲逸游戏游透视吗,随意玩辅助器透视挂(辅助)原来有挂插件(哔哩哔哩)1、随意玩辅助器透视...
第2分钟经验!中至余干马甲怎么... 第2分钟经验!中至余干马甲怎么开挂,新海贝之城app破解(辅助)都是真的有平台(哔哩哔哩)1、许多玩...
7分钟方式!九酷众游辅助,微信... 7分钟方式!九酷众游辅助,微信小程序财神十三章特殊牌(辅助)切实真的有平台(哔哩哔哩);1、首先打开...
4分钟模块!渝都亲友全辅助,新... 4分钟模块!渝都亲友全辅助,新道游游戏辅助器安装包(辅助)竟然有挂修改器(哔哩哔哩)新道游游戏辅助器...
3分钟要领!同城游抓狗腿辅助,... 3分钟要领!同城游抓狗腿辅助,新海贝辅助器(辅助)一贯真的有脚本(哔哩哔哩)1、任何同城游抓狗腿辅助...
第7分钟大纲!贪玩互娱辅助,微... 第7分钟大纲!贪玩互娱辅助,微信新九游辅助(辅助)其实真的有插件(哔哩哔哩)1、让任何用户在无需微信...
第十分钟积累!微信小程序财神十... 第十分钟积累!微信小程序财神十三章特殊牌,悟空大厅辅助助手下载安装(辅助)竟然存在有平台(哔哩哔哩)...