linux设置环境变量

时间:2022-12-12 11:05:36

1 查看变量

shell的环境变量分为set,env两种,其中set变量可以通过export工具导入到env变量中。

set是显示设置shell变量,仅在本shell中有效;env是显示设置用户环境变量,尽在当前会话中有效。换句话说,set变量里包含了env变量,但set变量不一定都是env变量,这两种变量不同之处在与变量的作用域不同。显然,env变量的作用域要大些,它可以在subshell中使用。

使用env显示所有的环境变量;

使用set命令显示所有的本地定义的Shell变量;

使用unset 清除某个shell 或本地的环境变量,例如 unset TEST 注:unset 不能用来清除只读变量

查看某环境变量例如: echo $PATH

2 linux变量种类

2.1按生存周期来划分,linux变量可分为两类:

永久的: 需要修改配置文件,变量永久生效;

临时的:在shell中普通声明的变量和使用export 命令声明的变量, 变量在关闭shell 失效;

2.2 永久性变量的设置

2.2.1在/etc/profile 文件中添加变量,改变量对所有用户生效

系统提供一些环境配置文件:/etc/profile~/.bash_profile/etc/profile是系统整体的设置,每个用户共享,最好不要修改;而~/.bash_profile属于单个用户的设置,每个用户设置后,互不影响和共享。

例如: #vi /etc/profile

export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/myinclude

修改后使用source(或 . ) /etc/profile 马上生效

2.2.2 修改用户目录下~/.bashrc的环境变量

在用户目录下的.bash_profile即~/.bash_profile或~/.bashrc 文件中增加变量,然后使用source(或.) ~.bash_profile(~.bashrc)即可对该用户生效

2.3 临时变量的设置

2.3.1 普通变量设置 

当前shell的普通变量只对当前shell有效,在当前shell的子shell中无效

$ v=5 

$echo $v

$5

$unset v

$echo $v

$

2.3.2 export变量的设置

export变量只在当前的shell或其子shell下是有效的,当前shell关闭,变量就失效了,再打开新的shell时,就没有这个变量了,需要重新定义.

export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/myinclude

注:export也可以查看环境变量,export  -p 列出所有的环境变量。

参考文章:https://linux.cn/article-5478-1.html