设置Linux环境变量的方法和区别

原创 2018年04月16日 16:46:01
设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别

通过文件设置 Linux 环境变量

首先是设置全局环境变量对所有用户都会生效
etc/profile: 此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从 /etc/profile.d 目录的配置文件中搜集shell 的设置。一般用于设置所有用户使用的全局变量。

/etc/bashrc: 当 bash shell 被打开时,该文件被读取。也就是说,每次新打开一个终端 shell,该文件就会被读取。
接着是与上述两个文件对应,但只对单个用户生效:
~/.bash_profile 或 ~/.profile: 只对单个用户生效,当用户登录时该文件仅执行一次。用户可使用该文件添加自己使用的 shell 变量信息。另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是 ~/.bash_profile, ~/.bash_login 或 ~/.profile 其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如 Ubuntu 系统一般是 ~/.profile 文件。
~/.bashrc: 只对单个用户生效,当登录以及每次打开新的 shell 时,该文件被读取。

此外,修改 /etc/environment 这个文件也能实现环境变量的设置。/etc/environment 设置的也是全局变量,从文件本身的作用上来说, /etc/environment 设置的是整个系统的环境,而/etc/profile是设置所有用户的环境。有几点需注意:

系统先读取 etc/profile 再读取 /etc/environment(还是反过来?)
/etc/environment 中不能包含命令,即直接通过 VAR="..." 的方式设置,不使用 export 。
使用 source /etc/environment 可以使变量设置在当前窗口立即生效,需注销/重启之后,才能对每个新终端窗口都生效。

修改 Linux 环境变量实例

Ubuntu 为例,修改 ~/.profile 文件:
vim ~/.profile
如果该文件存在,则在文件的最后看到如下代码,PATH 变量的值使用冒号(:)隔开的:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

在最后加上代码 PATH="$PATH:/usr/local/hadoop/bin",注意等号(=)两边不要有空格,即:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
PATH="$PATH:/usr/local/hadoop/bin"

因为这个文件是在用户登陆是才读取一次的,所以需要重启才会生效(修改 /etc/profile、/etc/environment 也是如此)。但可以使用命令 source ./.profile 使其立即生效。通过 echo $PATH 可以看到修改后的变量值:
source ./.profile
echo $PATH


通过 Shell 命令 export 修改 Linux 环境变量

另一种修改 Linux 环境变量的方式就是通过 Shell 命令 export,注意变量名不要有美元号 $,赋值语句中才需要有:
export PATH=$PATH:/usr/local/hadoop/bin

export 方式只对当前终端 Shell 有效
使用 export 设置的变量,只对当前终端 Shell 有效,也就是说如果新打开一个终端,那这个 export 设置的变量在新终端中使无法读取到的。适合设置一些临时变量。
根据变量所需,选择设置方式,例如 JAVA_HOME 这类变量,就适合将其设为为全局变量,可在 /etc/environment 中设置。

uboot的环境变量-2.9.uboot源码分析5

本课程为uboot学习的第9部分,主要讲解uboot的环境变量的实现原理和环境变量在内存中、SD卡中的存储方法。结合环境变量相关的几个命令的代码分析,目的是让大家对uboot的环境变量设计思路有深入理解,从而更深入掌握uboot。
  • 2016年02月25日 22:15

在Linux里设置环境变量的方法

  • 2011年12月29日 14:46
  • 114KB
  • 下载

linux设置环境变量的4种方法和简单比较

在linux上安装软件后通常需要配置环境变量。
  • bdss58
  • bdss58
  • 2014-09-19 16:31:53
  • 801

linux 环境变量设置的几种方式

几个常用的环境变量 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin ...
  • kalision
  • kalision
  • 2016-11-23 11:43:01
  • 2031

linux 下面安装jdk

  • 2012年12月06日 16:08
  • 13KB
  • 下载

Linux设置环境变量方法

一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,b...
  • hanzheng260561728
  • hanzheng260561728
  • 2016-05-31 21:09:02
  • 664

Linux环境变量-在linux系统下.doc

  • 2011年09月02日 00:24
  • 25KB
  • 下载

linux环境变量、本地变量、source、"."、export

Linux 的变量可分为两类:环境变量和本地变量 环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了。Linux 的环境变量具有继承性,即...
  • grantlee1988
  • grantlee1988
  • 2012-07-25 11:11:12
  • 1670

Linux环境变量及其设置

简介环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序将使用到的信息。Linux是一个多用户的操作系统,每个用户登录系统时都会有一个专用的运行环境,通常情况下每个用户的默认的环境...
  • LLZK_
  • LLZK_
  • 2016-12-22 17:33:20
  • 11959

Linux下环境变量的配置

最近一直在Linux下调试MQ,研究了一下Linux环境变量的配置,部分资料搜集自网上: 环境变量的配置文件          一般来说,对不同版本的Linux,其配置环境变量的文件可能有/etc/e...
  • bbc2005
  • bbc2005
  • 2017-11-18 12:58:33
  • 232
收藏助手
不良信息举报
您举报文章:设置Linux环境变量的方法和区别
举报原因:
原因补充:

(最多只允许输入30个字)