【linux】环境变量


定义

环境变量是操作系统中存储的一组键值对,用于指定进程的运行环境。每个进程都会继承父进程的环境变量,并可以在此基础上进行修改或扩展。环境变量通常包含了诸如路径、默认编辑器、语言设置等信息
不同的环境变量有不同的用户,通常有全局属性。

在linux系统中,使用命令env可以查看环境变量

在这里插入图片描述

某些环境变量的意义

PATH:linux下的默认指令搜索路径
路径与路径之间使用:分隔
在这里插入图片描述
我们日常定义的程序,运行时需要./, 而像ls却不需要加上./,原因就在于PATH,ls的路径存储在PATH变量里面,即/usr/bin。运行指令时,系统会到PATH里面存储的路径去找。

如果我们想让自己写到程序不带./,可以把程序的路径加到PATH里面或者添加到/usr/bin目录下。

如果我们不小心把PATH清空了,不用担心,重新登录一下便可以恢复。
因为当你登录到 Linux 系统时,通常会执行一些配置脚本,例如.bashrc、.bash_profile 或者 .profile 等,这些脚本负责设置环境变量、别名等用户环境配置。其中,PATH 变量的设置通常也包含在这些配置脚本中。

LD_LIBRARY_PATH:动态链接库的搜索路径

通常情况下,系统默认的动态链接库搜索路径包括 /lib 和 /usr/lib 等标准路径。但有时候,用户可能需要在非标准的位置安装一些动态链接库,或者需要临时改变动态链接库的搜索路径。这时,可以使用 LD_LIBRARY_PATH 环境变量来指定额外的搜索路径。但是当你重新登录后,你添加的路径又会被清除。除非,你添加到配置文件里。

getenv()

linux提供的系统接口getenv()获取环境变量
在这里插入图片描述
参数:环境变量的名字
在这里插入图片描述

命令行参数

在c语言中,main函数是可以传参的。
int main(int argc, char* argv[])
argc(argument count):表示命令行参数的个数,包括程序本身的名称。
argv(argument vector):是一个指向字符串数组的指针,每个字符串表示一个命令行参数。argv[0] 存储的是程序的名称,而后续的元素存储的是程序的参数。
在这里插入图片描述
在这里插入图片描述
这些参数使得程序能够接收来自命令行的输入,以便在运行时根据不同的参数执行不同的操作。通过解析这些参数,程序可以实现很多功能,比如读取文件、进行配置、执行特定的操作等。命令行参数提供了一种灵活的方式,让用户在不修改程序源代码的情况下,通过命令行控制程序的行为。

其实main函数还有一个参数:char* env[]
int main(int argc, char* argv[], char* env[])

char *env[] 参数,用于接收指向环境变量的指针数组。其中每个元素都是一个指向环境变量字符串的指针。且该数组的最后一个元素是NULL.
因此可以这样遍历for(int i = 0; env[i]; i++)
在这里插入图片描述

这个环境变量表是继承自父进程。我们所运行的进程都是bash的子进程,bash在启动时会通过系统的配置文件得到环境变量信息,子进程会继承父进程的环境变量表。

创建环境变量

export – 将本地变量导入环境变量表
unset – 取消环境变量
在这里插入图片描述

本地变量&&内建命令

本地变量:只能在本bash内部有效,换一个用户就不能使用,不能被继承。

常规命令:bash创建子进程来执行
内建命令:bash自身执行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值