Linux环境变量详解&命令行参数


好雨知时节
当春乃发生
随风潜入夜
润物细无声


📝1. 什么是环境变量?

环境变量是操作系统中用于存储系统和用户信息的动态命名值。它们可以影响程序的行为和系统的运行方式。环境变量通常包含诸如系统路径、用户目录、配置设置等信息。

例如:在我们编写C/C++程序时,在链接的时候,从来不知道我们的所链接的动静态库在哪里,但链接照样可以成功,生成可执行程序,原因就是有相关的环境变量帮助编译器进行查找。

  • 动态性:环境变量可以在程序运行时被修改,适应不同的运行环境。

  • 作用域:环境变量可以是全局的(对所有用户和进程可见)或局部的(仅对特定进程可见)。

  • 键值对形式:环境变量以键值对的形式存储,如 KEY=VALUE。

  • 系统级和用户级:环境变量可以在系统级别配置(影响所有用户)或用户级别配置(仅影响特定用户)。

  • 可访问性:程序可以通过系统调用或库函数访问环境变量,通常用于获取配置信息。

  • 优先级:同名环境变量可能存在于不同的作用域中,局部变量通常优先于全局变量。

📝2. 查看系统的环境变量

非常简单:

echo $PATH

即可查看到系统的环境变量。其中环境变量路径是以冒号为分隔符。

在这里插入图片描述

Tips: which查找路径

在这里插入图片描述


📝3. 添加环境变量

export PATH=$PATH:/home/vimer/Test # 冒号后跟需要添加的路径

这里$PATH代表环境变量里原来的内容,向其后面添加我们要添加的环境变量。

示例:在Test文件夹下,make生成mytest可执行程序后,通常的运行方法是:./mytest。当我们把当前文件目录添加到系统的环境吗变量后,我们可以直接在命令行mytest即可成功执行程序。

在这里插入图片描述

因此,把可执行程序,拷贝到系统默认路径下,就让我们可以直接访问的方式——相当于Linux下软件的安装


📝4. 环境变量用例

#include <stdio.h>

int main(int argc,char *argv[],char* envp[]){
  //指针数组
  for(int i = 0;envp[i];i++){
    printf("envp[%d]->%s\n",i,envp[i]);
  }

  return 0;
}

在这里插入图片描述


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


5. 命令行参数

#include <stdio.h>

int main(int argc,char *argv[]){
  //指针数组
  //存放参数
  
  //for(int i = 0;argv[i];i++){
  for(int i = 0;i<argc;i++){
    printf("argv[%d]->%s\n",i,argv[i]);
  }

  return 0;
}

char *argv[]为指针数组,-a -b -c 都为命令行参数列表选项,argc为表元素个数。

在这里插入图片描述

可以看到,o号下表永远代表着可执行程序,argc是 参数个数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值