设置 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 中设置。

参考

http://dblab.xmu.edu.cn/blog/linux-environment-variable/

设置Linux环境变量的方法和区别_Ubuntu/CentOS的更多相关文章

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

    设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别. 通过文件设置 Linux 环境变量 首先是设置全局环境变量,对所有用 ...

  2. 设置Linux环境变量的方法与区别(Ubuntu)

      设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别.   通过文件设置 Linux 环境变量 首先是设置全局环境变量, ...

  3. (转)在Linux里设置用户环境变量的方法

    背景:在linux下,root用户安装完jdk后,非root用户不能使用java环境变量. 问题排查: 通过在root和非root用户下分别执行echo $PATH 可以观察环境变量的异同.然后将需要 ...

  4. 三种配置linux环境变量的方法(以java为例)

    1.先确认是否为openjdk:参考 2. 修改/etc/profile文件  如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性 ...

  5. Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种.环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的配置文件不同.Linux环境变量本身配置过 ...

  6. 在Linux中永久设置Anaconda环境变量的方法

    [感谢:http://www.codesec.net/view/459539.html] 如果在安装Anaconda的过程中没有将安装路径添加到系统环境变量中,需要在安装后手工添加: 1.在终端输入$ ...

  7. Linux 环境变量配置的 6 种方法,建议收藏

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量 ...

  8. Linux环境变量配置全攻略

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  9. 超详干货!Linux 环境变量配置全攻略

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! Linux环境变量配置 在自定义安装软件的时候,经常需要 ...

随机推荐

  1. Android中Looper的quit方法和quitSafely方法

    Looper是通过调用loop方法驱动着消息循环的进行: 从MessageQueue中堵塞式地取出一个消息.然后让Handler处理该消息,周而复始.loop方法是个死循环方法. 那怎样终止消息循环呢 ...

  2. Hibernate的一些使用技巧

    1.Hibernate是如今最流行的开源对象关系映射(ORM)持久化框架,SSH框架组合是很多JavaEE工程的首选,java持久化框架(JPA)的设计师是Hibernate的作者,因此对于Hiber ...

  3. linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)

    本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...

  4. hdu 2112 HDU Today 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目意思:又是求最短路的,不过结合埋字符串来考查. 受之前1004 Let the Balloo ...

  5. hdu-5120 Intersection(计算几何)

    题目链接: Intersection Time Limit: 4000/4000 MS (Java/Others)     Memory Limit: 512000/512000 K (Java/Ot ...

  6. I.MX6 system.img unpack repack

    /************************************************************************* * I.MX6 system.img unpack ...

  7. 51Nod 1717

    链接 分析:对于任意一个数,它的约数总是成对出现的,但是对于完全平方数,它因为有两个约数不相等,所以只会出现奇数次,所以最终的结果就是减去完全平方数 #include "iostream&q ...

  8. 【USACO 2857】 Steady Cow Assignment

    [题目链接] 点击打开链接 [算法] 二分答案,check的时候跑最大流,即可 [代码] #include<bits/stdc++.h> using namespace std; #def ...

  9. CQOI2013 新数独

    传送门 这道题也是很暴力的搜索啊…… 因为数独一开始全是空的,只有许许多多的大小限制条件,那也没必要纠结从哪开始搜索了,直接暴力搜索之后判断一下是否合法. 这题最恶心的是读入.现学了一招判断点在哪个块 ...

  10. nc之二:nc命令详解

    NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本.因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小).功能实用,被设计为一个简单.可靠的网络工具,可通 ...