linux英文环境变量,Linux系统中的环境变量

本文介绍了环境变量的概念及其在Linux系统中的应用。环境变量是系统中定义的变量,可以被程序读取和使用。文章详细解释了如何查看、创建、删除及导出环境变量,并通过实例展示了环境变量对程序行为的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写过程序的人,应该都知道程序里面有变量的概念,通过修改变量的值就可以改变程序的执行结果。

环境变量也是一种变量,它是你在系统中定义的,可以被程序读取和使用的变量,环境变量可以是能被当前进程及子进程使用的全局变量,也可以是只能被当前进程使用的局部变量。

例如,Linux的$LANG这个全局环境变量中存储了当前用户所处的语言环境,如果$LANG的值是"zh_CN.UTF-8",就说明是当前是中文环境,运行中的各程序(进程)就会根据这个环境变量使用中文界面。

如果它的值是"en_US.UTF-8",就说明是英文环境,运行中的程序就会切换到英文界面。当然环境变量只是一个参考,如果运行程序不关心环境变量,或者系统中没有安装相应的语言包的话,那么,可能就不会显示你所希望的语言。

下面是Linux系统中一些常见的环境变量:

变量名

变量描述

PATH

PATH环境变量对应的值是一些由冒号分隔开的路径,系统通过这些路径去查找可执行文件。

828e9094ecc01d8ef6eaaf2eecc058be.png

当你在shell命令行中执行某个命令时,shell会根据PATH中定义的这些路径,去查找命令对应的可执行文件,如果找到就执行,没找到就抛出“命令找不到”的错误。

USER

当前用户的用户名

HOME

当前用户的主目录的路径

UID

当前用户的用户ID

TERM

默认的终端模拟器

SHELL

用户默认使用的shell,一般是/bin/bash

查看环境变量的值

要查看某个环境变量的值,可以使用以下命令格式:

echo $VARIABLE

上面的VARIABLE是要查看的环境变量的变量名,需要注意的是,这些变量名是区分大小写的,如果大小写不同就可能会得到不同的值。下面是使用echo来显示环境变量的值的例子:

5612be4afe6b8bda61ac8dd5ffb94849.png

我们还可以用env命令,将所有可以被子进程继承的全局的环境变量显示出来:

9fe806291cf58d240fc518a4bc786e47.png

如果在env中看不到某个变量,就说明这个变量只能被当前进程(在这里就是shell命令行的进程)使用,我们可以用export命令将某个变量导出成为全局变量,从而让shell创建的子进程(也就是shell执行的程序)也能使用到这个变量。

设置新的环境变量

可以使用下面的命令格式创建一个自定义的环境变量:

VARIABLE_NAME=variable_value

上面的VARIABLE_NAME表示需要创建的环境变量的变量名,variable_value表示该环境变量对应的值。要注意环境变量名是区分大小写的,另外,环境变量名通常使用大写。以下是创建环境变量的例子:

e9ae37fca5ee548c0db1d467d1fafd18.png

删除环境变量

可以使用unset命令来删除某个环境变量,命令格式如下:

unset VARIABLE_NAME

上面的VARIABLE_NAME表示要删除的环境变量的变量名,以下是删除环境变量的例子:

1a7166fd12b07f273ea8a4070990471e.png

导出环境变量

默认情况下,新建的环境变量只能被当前shell使用,如果要使其能被shell创建的子进程(也就是shell执行的程序)使用的话,可以通过export命令将其导出为全局的环境变量,例如:

[root@localhost ~]# NEWVARIABLE=12345

[root@localhost ~]# export NEWVARIABLE

[root@localhost ~]# env

..................................................

NEWVARIABLE=12345

..................................................

[root@localhost ~]# cat test/test.c

#include

#include

int main()

{

char * val = getenv("NEWVARIABLE");

if(val == NULL) {

printf("not defined\n");

}

else

printf("%s\n", val);

}

[root@localhost ~]# gcc test/test.c

[root@localhost ~]# ./a.out

12345

[root@localhost ~]#

上面先创建了一个NEWVARIABLE环境变量,然后通过export将其导出为全局环境变量,这样在env中就可以看到这个变量了,同时在C编写的test.c对应的a.out程序执行时,也能读取并显示出这个环境变量的值。

如果没用export导出的话,上面a.out执行时就会显示not defined,也就是找不到环境变量:

[root@localhost ~]# unset NEWVARIABLE

[root@localhost ~]# NEWVARIABLE=12345

[root@localhost ~]# ./a.out

not defined

[root@localhost ~]#

上面我们重新创建了NEWVARIABLE环境变量,但是这次我们没有用export来导出该变量,这样它就只对当前shell起作用,而对shell创建的子进程,本例中就是运行中的a.out程序,就不起作用了,上面就显示了"not defined"信息。

小结

通过环境变量,我们可以控制程序在操作系统中的行为。以下是本节介绍过的和环境变量相关的操作:

命令

描述

echo $VARIABLE

显示某个环境变量的值

env

显示所有全局的环境变量。

VARIABLE_NAME=variable_value

创建一个新的环境变量

unset VARIABLE_NAME

删除一个环境变量

export VARIABLE_NAME

导出一个环境变量,使其成为可以被子进程使用的全局变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值