欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > Linux环境变量

Linux环境变量

2025/4/29 15:18:07 来源:https://blog.csdn.net/2302_82004664/article/details/147499223  浏览:    关键词:Linux环境变量

在这里插入图片描述

文章目录

  • 1环境变量的基本概念
  • 2.命令行参数
  • 3.环境变量是什么
  • 4.环境变量查询与更改
    • 4.1 查询
      • 1`env`命令
      • 2.`echo $(name)`
      • 3.`mian`函数的第三个参数(代码方式)
      • 4.`getenv`(系统调用)
      • 5.`environ`获取全部(代码方式)
    • 4.2更改
      • 1.直接进行更改(bash重启后恢复)
      • 2.修改配置文件
      • 3.使用`export/unset`来新增/删除环境变量
  • 5.认识一些环境变量

1环境变量的基本概念

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性

2.命令行参数

我们平时在写main函数的时候不会向其中去传入参数,但是main函数其实是可以带参数的:

image-20250424163343078

运行时我们将我们自己的命令后带上如-a这种选项就会发现:

image-20250424163659185

我们的命令传入到程序中会被解析成这样

image-20250424170512033

这样我们的就可以将输入的命令解析并管理起来,这个工作是由我们程序的父进程bash来完成的

并且通过上面的代码我们就可以设置一个简单的命令选项判断的功能

image-20250424170615355

image-20250424170638910

3.环境变量是什么

我们在运行系统提供的命令的时候无需指定地址,

而运行我们自己的程序的时候就需要将程序的位置指出来

区别就是我们程序路径不在环境变量中,而系统的命令能直接执行是因为在环境变量中记录了该程序的路径,

如果我们将我们的程序也放到/usr/bin目录下我们的程序也不用带路径就能直接执行

4.环境变量查询与更改

4.1 查询

1env命令

我们可以使用env命令查询所有的环境变量

image-20250424173659429

2.echo $(name)

使用echo $(name)查询单个环境变量

image-20250424175222896

3.mian函数的第三个参数(代码方式)

我们的mian函数还有第三个参数env[]数组,

bash会将环境变量表借助于这个表传入我们的程序

我们可以写个程序来观察一下:

image-20250425085042944

image-20250425084954401

4.getenv(系统调用)

头文件<stdlib.h>

image-20250425085824763

写段代码测试一下:

image-20250425090207731

image-20250425090147219

5.environ获取全部(代码方式)

头文件:unsitd.h

使用方法如下:

image-20250425091040473

image-20250425091027209

4.2更改

1.直接进行更改(bash重启后恢复)

image-20250425082402307

我们会发现更改后我们自己的命令不用带路径了

但是当我们运行系统命令的时候也就找不到了

image-20250425082523632

原因是因为我们将环境直接替换成了我们的,不是新增

新增的方法:

image-20250425082856851

重启bash能够恢复,说明我们的环境变量表存在于我们的bash中

2.修改配置文件

通过修改家目录下的.bahsrc.bash_profile就可以在重启bash的时候不进行环境变量的重置

image-20250425083137438

3.使用export/unset来新增/删除环境变量

image-20250425084504455

有个问题:exprot是bash的子进程,那么是怎么将环境变量交给父进程的呢?

原因是: exprot是一个内键命令,这个命令是由父进程直接执行的,并不由子进程执行

5.认识一些环境变量

  1. HOME记录家目录

image-20250425083428929

  1. SHELL当前使用的Shell程序路径
  2. USER记录当前用户

image-20250425083443982

  1. HISTSIZE记录HISTSIZE条历史命令

image-20250425083454871

  1. PWD/OLDPWD记录当前的地址和老的地址,为了我们执行cd -的时候能来回切换

image-20250425083508168

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词