Linux 配置环境变量

前面小节介绍了 Linux 系统中如何查看全局环境变量和局部环境变量,本小节介绍如何在 Linux 系统中配置全局环境变量和局部环境变量。

1. 环境变量命令规范

在 Linux 系统中的 bash shell 有个惯例,全部的系统环境变量名都使用大写字母和 _ 组成,若是自定义的局部环境变量或者 shell 脚本,则一般使用小写字母和 _ 组成,这样写的好处是自定义系统变量可以避免覆盖原有的系统全局变量,对生产环境业务造成严重的影响。系统的环境变量可以通过 = 赋值,这些值可以是数字,也可以是字符串,变量名=变量值 三者之间不能有空格。

2. 配置局部环境变量

使用 ssh 方式登录了 CentOs 8 系统之后,就会创建一个 shell 进程,默认的 shell 程序就开始运行了,然后就可以在该 shell 进程内自定义局部变量。

2.1 赋值一个局部变量

登录 CentOs 终端之后,可以使用 = 赋值的方式自定义局部变量,命令如下:

echo $my_val

my_val=nice

echo $my_val

执行结果如下图:

图片描述

Tips:注意 变量名= 之间不能有空格,若变量值中间有空格,则赋值的时候需要将变量的值用 " 包起来,如 my_val="very good",若不用 " 包起来,则空格前面和后面会被隔开当做是 Linux 命令处理了,会出现异常。

2.2 在 shell 子进程中赋值局部变量

在当前 shell 进程中的子进程中赋值命令如下:

my_val="nice"

echo $my_val

bash

my_val="nice son"

echo $my_val

exit

echo $my_val

执行结果如下图:

图片描述

Tips:在 shell 子进程中赋值的变量,在子进程结束之后,这个子进程中的局部变量值就会销毁。

3. 配置全局环境变量

3.1 使用 export 设置全局环境变量

上述 shell 子进程中赋值的变量若想要在子进程结束的时候不销毁,则可以使用如下命令设置为全局变量,命令如下:

test_val="dog"

echo $test_val

bash

echo $test_val

exit

export test_val

bash

echo $test_val

exit

执行结果如下图:

图片描述

Tips:注意在 shell 子进程中不可使用 export 命令,注意此时其他新打开的 shell 进程窗口无法读到 $test_val 变量。

3.2 设置所有新窗口 shell 进程中能查看的全局环境变量

/etc/profile 文件中可配置全局环境变量,使用 vim 命令打开 /etc/profile 文件,在文件末尾添加 test_val="my test dog",命令如下:

vim /etc/profile

如下图所示:

图片描述

如上图所示配置好之后,执行如下命令:

source /etc/profile

echo $test_val

执行结果如下图:

图片描述

在上图变量配置好了之后可以在新打开的 shell 进程窗口执行如下命令:

echo $test_val

执行结果如下图:

图片描述

Tips:新打开 shell 进程会读到 /etc/profile 中的全局变量。

4. 小结

本小节介绍了如何自定义局部环境变量和全局环境变量,其中在 shell 进行中自定义的变量可以使用 export 命令让这个变量对 shell 子进程可见,需要注意的是 export 命令不可在 shell 子进程中使用,最后还介绍了如何在 /etc/profile 文件中配置全局环境变量,然后使用 source /etc/profile 就可以查看到这个变量的值了,新打开的 shell 窗口也能访问到这个变量值。