Linux环境变量的查看与修改

查看环境变量

  • 显示单个环境变量,如HOME
$ echo $HOME
  • 设置一个新的环境变量HELLO
$ export HELLO="Hello!"
  • 显示所有的环境变量
$ env
  • 使用set命令显示所有本地定义的Shell变量
$ set
  • 使用unset命令来清除环境变量

set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下:

$ export TEST="Test..." #增加一个环境变量TEST

$ env|grep TEST #此命令有输出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


修改环境变量

1、永久修改

  Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。与之相对应,管理环境变量的文件也分为系统级和用户级:

系统级(对所有用户生效)
/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般是调用/etc/bash.bashrc文件。
/etc/bash.bashrc:系统级的bashrc文件。
/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。

用户级(这些文件位于用户目录下,只对当前用户生效)

~/.profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。当.bash_profile文件不存在时,这里是推荐放置个人设置的地方。
~/.bashrc
:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。不推荐放到这儿,因为每开一个shell,这个文件会读取一次,效率肯定有影响。
~/.bash_profile~./bash_login这里是推荐放置个人设置的地方。需要注意的是,当这一或这些文件存在时,在登录shell时会读取.bash_profile文件,而不是.profile文件。
~/.pam_environment:用户级的环境变量设置文件,没有做测试,不知道管不管用。

下面文件就是修改文件了,如果需要增加新的环境变量可以添加:

  export path=$path:/path1:/path2:/pahtN

这里以向/etc/profile添加Java环境变量为例:

  # vi /etc/profile
在最后添加:
export JAVA_HOME=/usr/java/default
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

注:修改文件后要想立即使修改生效,还要在终端运行# source 修改的文件(如:# source /etc/profile),不然只能在下次生效。

扫描二维码关注公众号,回复: 14737582 查看本文章


2、临时修改

  直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】

  在shell的命令行下直接使用[export 变量名=变量值] 定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。



附:常用环境变量

  PATH 决定了shell将到哪些目录中寻找命令或程序

  HOME 当前用户主目录

  HISTSIZE 历史记录数

  LOGNAME 当前用户的登录名

  HOSTNAME 指主机的名称

  SHELL   当前用户Shell类型

  LANGUGE  语言相关的环境变量,多语言可以修改此环境变量

  MAIL   当前用户的邮件存放目录

  PS1   基本提示符,对于root用户是#,对于普通用户是$


参考资料:

http://blog.csdn.net/cscmaker/article/details/7261921

http://soft.chinabyte.com/os/169/11412169.shtml

猜你喜欢

转载自blog.csdn.net/dsx4602/article/details/50189051