环境变量的介绍

1、基本概念:

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

2、分类:

1)全局变量:

    需要修改配置文件,变量永久生效

2)局部变量:

    使用export命令声明即可,变量在关闭shell时失效。(export只是声明,跟c语言中的typedef一样都只是一个标识。)


3、常见的环境变量

PATH: 指定命令的搜索路径
HOME:指定用户的工作目录(即用户登录到Linux系统时,默认的目录)
SHELL:当前Shell,它的值通常是/bin/bash.


4、查看环境变量的方法

echo $NAME  //  环境变量名


5、和环境变量有关命令

echo : 显示某个环境变量的值。
export: 设置一个新的环境变量。
env: 显示所有环境变量。
unset:清除环境变量
set: 显示本地定义的shell变量和环境变量



6、设置环境变量

1)、在/etc/profile文件中添加变量【对所有用户生效(永久的)】

    用vi在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,
    并且是“永久的”。例如:编辑/etc/profile文件,添加PATH变量
 

#vim /etc/profile
添加如下内容:
export PATH=$PATH:/home/huang/testcode;

    注:修改文件后要想马上生效还要运行
        source /etc/profile    不然只能在下次重进此用户时生效。


2)、在用户目录下的.bash_profile文件中增加变量 【对单一用户生效(永久的)】

 用vim ~/.bash_profile文件中增加变量,改变量仅会对当前用户有效,
 并且是“永久的”。

vim ~/.bash.profile
export MY=$MY:/home/huang/Linux;

    注:修改文件后要想马上生效还要运行$ source ~/.bash_profile
    不然只能在下次重进此用户时生效。


3)、直接运行export命令定义变量 【只对当前shell(BASH)有效(临时的)】

在shell的命令行下直接使用export 变量名=变量值
    定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,
    shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话
    还需要重新定义。


7、环境变量的组织方式

    每个程序都会收到一张 环境表 , 环境表是一个 字符指针数组,
    
    每个指针指向一个以'\0'结尾的环境字符串。
    
    字符指针数组最下面一个元素为 NULL



8、通过代码如何获取环境变量

1)、通过main() 命令行第三个参数

#include <stdio.h>

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


2)、 通过第三方变量environ获取

#include <stdio.h>

int main()
{
    extern char **environ;
    int i = 0;
    for(;environ[i];i++)
    {
        printf("%s\n",environ[i]);
    }
    return 0;
}


3)通过系统调用获取或设置环境变量

char* getenv(const char* path);

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("%s\n",getenv("PATH"));
    reutrn 0;
}


————————————————
版权声明:本文为CSDN博主「抖立FLAG」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44329028/article/details/104411786

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值