Linux环境变量

在Linux系统中,环境变量是用来定义系统运行环境的一些参数。例如,每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等¹。环境变量的名称一般都是大写的,这是一种约定俗成的规范。以下是一些Linux系统中重要的环境变量:

  • HOME:用户的主目录(也称家目录)
  • SHELL:用户使用的 Shell 解释器名称
  • PATH:定义命令行解释器搜索用户执行命令的路径
  • EDITOR:用户默认的文本解释器
  • RANDOM:生成一个随机数字
  • LANG:系统语言、语系名称
  • HISTSIZE:输出的历史命令记录条数
  • HISTFILESIZE:保存的历史命令记录条数
  • PS1:Bash解释器的提示符
  • MAIL:邮件保存路径

环境变量可以分为两类:永久的和临时的。

  • 永久的环境变量需要用户修改相关的配置文件,变量永久生效
  • 临时的环境变量用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效

此外,环境变量也可以分为系统环境变量和用户环境变量。系统环境变量对该系统中所有用户都有效,而用户环境变量只对特定的用户有效。


在Linux环境中,getenvsetenv是两个用于处理环境变量的函数。

  • getenv函数用于获取环境变量的值。它接受一个字符串参数(环境变量的名称),并返回一个指向该环境变量值的指针。如果该环境变量不存在,则返回NULL。

  • setenv函数用于设置环境变量的值。它接受三个参数:环境变量的名称、新的值以及一个整数。如果这个整数为非零值,那么即使环境变量已经存在,新的值也会覆盖旧的值。

下面是一个简单的例子,演示了如何使用这两个函数:

#include 
#include 

int main() {
    // 使用setenv设置一个环境变量
    if (setenv("TEST_ENV", "123", 1) == -1) {
        perror("setenv");
        return 1;
    }

    // 使用getenv获取刚才设置的环境变量
    char *value = getenv("TEST_ENV");
    if (value == NULL) {
        printf("TEST_ENV not found\n");
        return 1;
    }

    printf("TEST_ENV = %s\n", value);

    return 0;
}

在这个例子中,我们首先使用setenv设置了一个名为TEST_ENV的环境变量,然后使用getenv获取并打印出这个环境变量的值。如果一切正常,你应该会看到输出TEST_ENV = 123。这就是getenvsetenv的基本用法。希望这个例子能帮助你理解这两个函数的作用。


在Linux系统中,你可以使用printenv命令来查看当前的环境变量。如果你想查看某个特定的环境变量,你可以在printenv后面加上环境变量的名称。例如,如果你想查看PATH环境变量,你可以使用printenv PATH命令。

此外,你也可以使用env命令来查看所有的环境变量。这个命令会列出所有的环境变量,以及它们的值。以下是如何使用这些命令的例子:

# 查看所有的环境变量
printenv

# 查看PATH环境变量
printenv PATH

# 使用env命令查看所有的环境变量
env

你可能感兴趣的:(我的博客,linux,环境变量)