【Linux】环境变量

什么是环境变量
  • 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,即环境变量是由操作系统提供的
  • 环境变量区别与普通变量,是因为它是一个有特殊意义的全局变量
  • 环境变量可以被子进程继承下去
常见的环境变量

PATH:指定命令的搜索路径
HOME:制动用户的注工作目录
SHELL:当前的shell,它的值通常是 /bin/bash

查看环境变量

echo $Name
$ 即表示提取环境变量
name 是所查看的环境变量的名称
echo $ PATH 即可以查看命令所在的路径

测试PATH
  1. 创建hello.c 文件

  1 #include <stdio.h>
  2 
  3 int main()
  4 {
  5     printf("hello world!\n");
  6     return 0;
  7 }
    
  1. 用./hello 和 hello 分别运行,有什么发现?
    在这里插入图片描述
    这里我们发现,只有./hello 可以正常运行,而直接hello 则找不到命令。
  2. 思考:为什么运行系统的命令(例如 ls)不带执行路径却不会出错?
    因为./hello 和 ls 都有系统设置的默认执行路径,而我们的二进制程序在系统中并没有被设置默认执行路径。
  3. 有什么方法去解决?
    由上面的思考,我们知道只要把自己程序的执行路径也设置在系统中,这样我们就可以直接用自己的命令了。
    此时我们就需要将自己程序的所在路径添加到环境变量PATH中:
    添加方法:export PATH=$PATH:(自己程序的路径) 完成对两部分的拼接
    pwd 可直接得到当前程序的运行路径
  • 如下图:
    在这里插入图片描述
和环境变量相关的指令
  1. echo:显示某个环境变量的值
  2. export:设置新的环境变量
  3. env:显示所有环境变量
  4. unset:清除环境变量
  5. set:显示本地定义的shell 变量和环境变量
导出/获取环境变量

环境表:每个程序都有一张存储PATH的环境表,环境表其实就是一个字符指针数组(char *env[]),每个指针指向一个以 ‘\0’ 结尾的环境字符串。

导出环境变量操作的本质是由系统新建一个字符串,用指针指向它,再把指针存在env[]数组中。
导出环境变量的方法:
1) 通过命令行的第三个参数获取


  1 #include <stdio.h>
  2 
  3 int main(int argc,char*argv[],char* env[]) //第二个参数是输入的命令
  4 {
  5     int i=0;
  6     for(;env[i];i++)
  7     {
  8         printf("%s\n",env[i]);
  9     }
 10     return 0;
 11 }

2)通过environ 获取

1 #include <stdio.h>
  2 #include <unistd.h>
  3 
  4 int main(int argc,char* argv[])
  5 {
  6     extern char** environ;   //声明:告诉系统我要用这张表
  7     int i=0;
  8     for(;environ[i];i++)
  9     {
 10         printf("%s\n",environ[i]);
 11     }
 12     return 0;
 13 }

3)通过系统调用<stdlib.h> 中的 getenv(“PATH”)函数

1 #include <stdlib.h>
  2 #include <stdio.h>
  3 
  4 int main()
  5 {
  6     printf("%s\n",getenv("PATH"));
  7     return 0;
  8 }

环境变量博主理解的只有这么多啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值