设置Linux环境变量的方法和区别
2016-02-23 17:37
337 查看
http://www.powerxing.com/linux-environment-variable/
设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别。
首先是设置全局环境变量,对所有用户都会生效:
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 中不能包含命令,即直接通过
export 。
使用
以 Ubuntu 为例,修改 ~/.profile 文件:
Shell
命令
如果该文件存在,则在文件的最后看到如下代码,PATH 变量的值使用冒号(:)隔开的:
Shell
在最后加上代码
Shell
因为这个文件是在用户登陆是才读取一次的,所以需要重启才会生效(修改 /etc/profile、/etc/environment 也是如此)。但可以使用命令
Shell
命令
另一种修改 Linux 环境变量的方式就是通过 Shell 命令 export,注意变量名不要有美元号 $,赋值语句中才需要有:
Shell
命令
export 方式只对当前终端 Shell 有效
使用 export 设置的变量,只对当前终端 Shell 有效,也就是说如果新打开一个终端,那这个 export 设置的变量在新终端中使无法读取到的。适合设置一些临时变量。
根据变量所需,选择设置方式,例如 JAVA_HOME 这类变量,就适合将其设为为全局变量,可在 /etc/environment 中设置。
http://www.powerxing.com/linux-environment-variable/
设置 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
Shell
命令
如果该文件存在,则在文件的最后看到如下代码,PATH 变量的值使用冒号(:)隔开的:
# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi
Shell
在最后加上代码
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" fiPATH="$PATH:/usr/local/hadoop/bin"
Shell
因为这个文件是在用户登陆是才读取一次的,所以需要重启才会生效(修改 /etc/profile、/etc/environment 也是如此)。但可以使用命令
source ./.profile使其立即生效。通过
echo $PATH可以看到修改后的变量值:
source ./.profile echo $PATH
Shell
命令
通过 Shell 命令 export 修改 Linux 环境变量
另一种修改 Linux 环境变量的方式就是通过 Shell 命令 export,注意变量名不要有美元号 $,赋值语句中才需要有:export PATH=$PATH:/usr/local/hadoop/bin
Shell
命令
export 方式只对当前终端 Shell 有效
使用 export 设置的变量,只对当前终端 Shell 有效,也就是说如果新打开一个终端,那这个 export 设置的变量在新终端中使无法读取到的。适合设置一些临时变量。
根据变量所需,选择设置方式,例如 JAVA_HOME 这类变量,就适合将其设为为全局变量,可在 /etc/environment 中设置。
http://www.powerxing.com/linux-environment-variable/
相关文章推荐
- CentOS6安装Discuz!X3.2详解
- linux字符驱动之定时器去抖动按键驱动
- 查看Linux占用流量的进程
- 整理Linux查看系统日志的一些经常使用命令
- 《The One Page Linux Manual》的中文版
- Linux 内核系统结构及主要组成部分
- linux mysql 数据库开启外部访问设置指南
- linux上安装ldap服务
- Centos+Serync+inotify实时同步数据文件(二)
- Linux_DHCP篇
- 1.概述
- Linux内核基础--事件通知链(notifier chain) 简单一例
- Linux内核基础--事件通知链(notifier chain)
- linux远程拷贝命令-scp
- vim 常用操作
- Maven学习 (五) 使用Nexus搭建Maven私服(LINUX)
- Linux学习笔记--which命令(搜索命令的命令)
- Linux单网卡绑定多IP
- linux下串口应用程序
- linux 配置mysql odbc