环境变量

  1. 什么是环境变量
    环境变量是指在操作系统中用来指定操作系统运行环境的一些参数,例如临时文件夹位置和系统文件夹位置等。它们是在操作系统中具有特定名字的对象,包含了一个或者多个应用程序所将使用到的信息。

我们可以把环境变量看成一个操作系统环境设置的变量,作用于整个系统的用户进程。这些变量通常由操作系统或者其他系统软件在计算机启动时自动加载,可以用于控制计算机的系统行为和操作,影响计算机的各个方面
2. 环境变量的作用
当我们在Linux下运行自己的程序时通常我们需要指明程序路径。但当我们使用指令时没有指明程序路径,为什么操作系统能找到对应的程序呢

要想搞清这个问题,我们需要了解当我们在终端输入一个指令时系统会做什么?

  • 首先,系统会检查当前用户的环境变量“PATH”,这是一个包含了一系列目录路径的变量。当用户输入指令时,系统会在这些目录路径中搜索对应的可执行文件。
  • 如果在PATH环境变量中找到了对应的可执行文件,系统就会执行该文件,并将用户输入的指令参数传递给它。如果在PATH环境变量中没有找到对应的可执行文件,系统通常会提示用户“命令未找到”或类似的错误信息。
  • 因此用户不需要显式地指明程序路径来执行指令,因为系统会自动根据环境变量和路径规则来查找对应的程序。从这个例子我们就可以更深刻的理解环境变量的作用,即为程序提供运行时的环境信息,使得程序能够更加方便、高效地运行。

PATH : 指定命令的搜索路径 当用户在命令行中输入一个指令时,系统会在PATH环境变量中列出的目录中查找对应的可执行文件。

HOME : 指定用户的工作目录,即用户登录到系统时所处的默认目录。在Linux系统中,它通常指向用户的主目录。

USER : 用于指定当前登录用户的用户名。

TEMP : 指定临时文件夹的路径。当程序需要创建临时文件时,它会在这个目录下创建。

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

系统调用

getenv

格式:*char* getenv(const char name);
作用:获得指定环境变量的信息,以字符串形式返回。

#include<stdio.h>                                           #include<stdlib.h>
int main()
{
   printf("HOME:%s\n",getenv("HOME"));
   return 0;
}
putenv

格式: *int putenv(char string);

作用: 添加一个环境变量,成功返回0,错误返回非0。 参数中的string是一个以 name=value 格式表示的字符串,其中 name 是环境变量的名称,value 是该环境变量应该设置的值。如果环境变量已经存在,putenv 会修改其值;如果环境变量不存在,putenv会添加一个新的环境变量
注意:使用putenv修改的环境变量只会影响当前进程及其子进程。父进程中的环境变量不会受到影响。

#include<stdio.h>
#include<stdlib.h>
int main()
{
   char* string="MYENV=12345";
   putenv(string);
   printf("MYENV: %s\n",getenv("MYENV"));
   return 0;
}

相关命令

echo

我们可以通过echo命令查看环境变量。
格式: echo $环境变量名;

posted @ 2024-10-15 20:35  证明不写明  阅读(61)  评论(0)    收藏  举报