环境变量

基本概念
  • 环境变量(environment varriables)一般是指在操作系统中用来指定操作系统运行的一些参数
  • 比如在编写c/c++代码时,在链接的时候,从来都不知道所链接的静态库动态库在哪,但是照样可以链接成功,生成可执行程序,还有当我们在Linux下任意目录执行ls命令时,都可以正常执行,ls无非也是一个可执行程序,但是我们自己写的可执行程序为什么要加 ./ ?而不能像ls那样不用加 ./ ,原因很简单,因为要个操作系统提供这个可执行程序的路径,不然操作系统找不到这个文件,那就很奇怪,为什么ls不用加?原因就是相关环境变量帮助编译器进行查找,也就是说,如果把我们自己的可执行程序的路径放在某个环境变量里,那我们就可以像使用ls那样使用我们的a.out,但是不推荐这样做,这样会污染系统的环境变量
  • 环境变量通常具有某些特殊用途,在系统当中通常具有全局性

常见的环境变量

  • PATH*:指定命令的搜索路径
  • HOME*:指定用户的主工作目录(即用户登录到Linux系统时,默认的目录)
  • HISTSIZE*:指保存历史命令记录的条数
  • SHELL*:当前Shell,他的值通常是/bim/bash


和环境变量相关的命令

  • echo 查看某个环境变量
  • env 显示所有环境变量
  • export 设置一个新的环境变量
  • unset 清楚环境变量
  • set 显示本地定义的shell变量和环境变量
  • char* setenv(const char* name, const cahr* value, int overwrite) 在程序运行时修改环境变量
  • char* getenv(const char* name)获取一个环境变量的内容


echo $NAME  //NAME指环境变量名称,如下图


env 显示所有环境变量



export 设置一个新的环境变量并用env查看




使用setenv和getenv

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

int main()
{
    char* p = getenv("MYENV");
    printf("%s\n", p);
    setenv("MYENV", "hello world", 1);
    p = getenv("MYENV");
    printf("%s\n", p);
    return 0;
}

从运行的结果可以看出getenv可以获得环境变量的内容,setenv只在程序运行时修改了环境变量,但是程序结束后环境变量回复原来的内容

unset 清楚环境变量




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值