文章目录

  • 一、设置变量的四种方法
  • (一)在 /etc/profile 文件中添加变量
  • (二)在用户目录下的 .bash_profile 文件中添加变量
  • (三)使用命令 export 声明定义变量
  • (四)使用命令 declare 声明定义变量
  • 二、查看环境变量
  • (一)使用命令 echo 显示单个环境变量的值
  • (二)使用命令 env 显示所有的变量
  • (三)使用命令 export 显示所有的环境变量
  • 三、清除环境变量
  • 四、设置只读变量
  • 五、Linux 的变量种类
  • (一)永久的
  • (二)临时的
  • 六、常用的环境变量


一、设置变量的四种方法

(一)在 /etc/profile 文件中添加变量

在文件 /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类型