Linux-环境变量(上)

简介: Linux-环境变量

一、基本概念


🖊环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数。如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。其实,说白了环境变量就是全局设置好的变量,方便我们后续程序的执行。


🖊环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。


在Windows下我们是有环境变量的:


1669272599792.jpg

1669272611199.jpg


那么Linux下,我们的环境变量又是什么形式呢?


Linux下的常见的环境变量有:


🖊PATH: 指定命令的搜索路径


🖊HOME:指定用户的主工作目录(即用户登录到Linux系统中时默认的目录)


🖊SHELL:当前Shell,它的值通常是/bin/bash


查看环境变量的方法: echo $NAME   //NAME:你的环境变量名称


ⅠPATH


可能还是有点抽象,在Linux下我举个例子,比如我们要执行一个程序(指令),要先找到这个程序,比如./myprocess --> ./当前路径  ->找到程序。需要./可执行程序。而Linux下其实一个一个指令就是一个一个可执行程序,那么系统在执行指令的时候为什么不需要加./ 呢?这是因为系统配备了全局环境变量,它会默认去自动去查找。


那我也不想加./怎么办呢?有两种办法:


①把我们的可执行程序拷贝到系统 /usr/bin/中

/usr/bin/是系统安装指令的路径


1669272626246.jpg


但是不敢这么做,因为我们写的没有经过测试,会污染系统指令词。


②配置环境变量

🖊PATH: 指定命令的搜索路径。


我们通过echo $...

可以查看环境变量PATH


1669272642701.jpg


这些是什么意思呢?冒号分割的这些都是目录,这些目录就是系统配备的,系统在执行指令会默认到冒号间隔的每一个目录下去检索搜索指令,存在的话就找到执行。


系统指令能执行,是因为指令都在/usr/bin/目录下。


既然如此我们只要把我们的路径添加到这些环境里面就可以了。我们需要用到export指令。


错误使用:


1669272652302.jpg


这种做法会覆盖环境变量。


正确使用:


1669272661112.jpg


export  PATH=$PATH 先把我们的环境变量导入, 冒号:用于 分割 要添加的路径:/home/Gyh/lesson10,此时就添加进了。


当然,我们可以查看Linux下的系统环境变量还有哪些:


1669272776157.jpg

1669272789269.jpg


那么在Windows下


这些比较多,而且我们看不懂,我们来看一下系统提供的一些需要我们管着环境变量:

1669272798605.jpg

HISTSIZE表示我们最多能查看的历史命令条数,我们能通过history指令再来具体查看我们历史使用了哪些指令:


1669272815656.jpg


env能查看当前目录下的环境变量:


Ⅱ getenv函数


我们之前了解到echo $环境变量可以在命令行查看环境变量,那么我们在程序中如果想查看环境变量是如何做到呢?这里提供了一个getenv函数来查看环境变量。


我们通过man手册来查看这个函数:


1669272831863.jpg


//头文件
#include<stdlib.h>
char* getenv(const char* name);
//返回值 char*
//参数:已经存在的环境变量名称

对于已经存在的环境变量,我们输入字符串名称便可以查询其内容:

1669272535920.jpg

相关文章
|
2月前
|
Linux Shell
入职必会-开发环境搭建36-Linux常用操作-Linux环境变量
环境变量的作用是指定到哪个目录去找你输入的命令执行。环境变量的设置分为:临时设置和永久设置两种。
|
29天前
|
Linux Shell
在Linux中,如何设置环境变量?
在Linux中,如何设置环境变量?
|
2月前
|
Java Linux
linux 对子用户配置java 环境变量
linux 对子用户配置java 环境变量
24 3
|
1月前
|
Shell Linux
在Linux中,什么是环境变量?如何设置和查看环境变量?
在Linux中,什么是环境变量?如何设置和查看环境变量?
|
2月前
|
Linux
Linux环境变量及作用
Linux中的环境变量是系统配置参数,如HOME指示用户家目录,MAIL指邮件位置。`env`命令显示所有环境变量。系统有数百个变量,但了解关键的几个足够,如PATH、HOME、TERM等。环境变量由变量名和值组成,可自定义,如WORKDIR。局部变量需用`export`使其全局有效,以便其他用户使用。`su`命令用于切换用户,展示不同用户环境下变量值的差异。
40 0
Linux环境变量及作用
|
2月前
|
Ubuntu Linux Shell
Ubuntu/linux系统环境变量配置详解
理解和掌握如何配置环境变量对于使用和管理Ubuntu/Linux系统非常重要。
140 2
|
3月前
|
关系型数据库 MySQL Shell
【权限提升】Linux系统&环境变量&定时任务&权限配置不当&MDUT自动化
【权限提升】Linux系统&环境变量&定时任务&权限配置不当&MDUT自动化
|
2月前
|
Java Linux Shell
【Linux】深度解剖环境变量
【Linux】深度解剖环境变量
16 0
|
3月前
|
Linux Shell 编译器
Linux进程——Linux环境变量
Linux进程——Linux环境变量
26 3
|
2月前
|
Shell Linux
Linux环境变量之shell中export定义全局变量和echo 变量的区别
Linux环境变量之shell中export定义全局变量和echo 变量的区别