- 一、设置变量的四种方法
- (一)在 /etc/profile 文件中添加变量
- (二)在用户目录下的 .bash_profile 文件中添加变量
- (三)使用命令 export 声明定义变量
- (四)使用命令 declare 声明定义变量
- 二、查看环境变量
- (一)使用命令 echo 显示单个环境变量的值
- (二)使用命令 env 显示所有的变量
- (三)使用命令 export 显示所有的环境变量
- 三、清除环境变量
- 四、设置只读变量
- 五、Linux 的变量种类
- (一)永久的
- (二)临时的
- 六、常用的环境变量
在文件 /etc/profile
文件中增加变量,该变量将会对所有用户有效,并且是“永久的”。如果需要修改变量的值可以参考下面的输出变量格式:
export PATH=$PATH:/path1:/path2:/pahtN
例如,编辑 /etc/profile
文件,添加 CLASSPATH
变量:
# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
修改文件后要想马上生效还要运行:
# source /etc/profile
关于命令 export 的用法,详见《Linux命令之 – export 设置/显示系统环境变量》。
(二)在用户目录下的 .bash_profile 文件中添加变量在用户目录下的 .bash_profile
文件中增加变量,仅会对当前用户有效,并且是“永久的”。
例如,编辑 guok 用户目录 /home/guok
下的 .bash_profile
:
$ vi /home/guok/.bash.profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
修改文件后要想马上生效就要执行下该配置文件,不然只能在该用户下次登录后才生效:
$ source /home/guok/.bash_profile
(三)使用命令 export 声明定义变量
在 shell 的命令行下直接使用命令 export 声明定义变量,该变量只在当前的 shell或其子 shell 下是有效的,shell 关闭了,变量也就失效了,再打开新 shell 时就没有这个变量,需要使用的话还需要重新定义。
声明定义一个临时变量 HELLO,如下所示:
export HELLO="Hello!"
注意:等号左右两边不允许出现空格!
(四)使用命令 declare 声明定义变量但 declare 声明定义的变量仅能在当前 shell 环境中起作用,切换 shell 环境后将无效。
二、查看环境变量 (一)使用命令 echo 显示单个环境变量的值[root@htlwk0001host /]# echo $PATH
(二)使用命令 env 显示所有的变量
[root@htlwk0001host ~]# env
HOSTNAME=redbooks.safe.org
PVM_RSH=/usr/bin/rsh
Shell=/bin/bash
TERM=xterm
HISTSIZE=1000
...
(三)使用命令 export 显示所有的环境变量
[root@htlwk0001host ~]# export
declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/0/bus"
declare -x HELLO="hello!"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
...
三、清除环境变量
使用 unset 命令来清除环境变量。set 可以设置某个环境变量的值。清除环境变量的用 unset 命令。如果未指定值,则该变量值将被设为NULL。示例如下:
$ export TEST="Test..." # 增加一个环境变量TEST
$ env|grep TEST # 此命令有输出,证明环境变量TEST已经存在了,grep相当于是筛查器,筛查出含有关键词“TEST”的条目
TEST=Test...
$ unset $TEST # 删除环境变量TEST
$ env|grep TEST #此命令没有输出,证明环境变量TEST已经不存在了
四、设置只读变量
使用 readonly 命令设置只读变量,如果使用了readonly命令的话,变量就不可以被修改或清除了。示例如下:
$ export TEST="Test..." #增加一个环境变量TEST
$ readonly TEST #将环境变量TEST设为只读
$ unset TEST #会发现此变量不能被删除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New" #会发现此也变量不能被修改
-bash: TEST: readonly variable
五、Linux 的变量种类
按变量的生存周期来划分,Linux 变量可分为两类:
(一)永久的需要修改配置文件,变量永久生效。
(二)临时的使用 export 命令声明定义的变量,变量在关闭 shell 时失效。
六、常用的环境变量PATH
决定了shell 将到哪些目录中寻找命令或程序
HOME
当前用户主目录
HISTSIZE
历史记录数
LOGNAME
当前用户的登录名
HOSTNAME
指主机的名称
SHELL
当前用户Shell类型