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 列出所有的环境变量。