环境变量是什么:
环境变量是操作系统中指定操作系统或者应用程序运行的一些参数,可以看作是系统的全局变量。可以分为系统级变量和用户级变量。
当要求系统运行一个程序却没有指定完整的路径时,首先会在当前目录下寻找相应的可执行文件,当没有符合条件的文件时,会到path指定的路径下寻找。
当程序运行需要一些参数时,可以通过环境变量将需要的参数传递进去。
环境变量有什么用:
解决未指定路径的应用程序运行。
解决双系统下软件共用的问题:当一些软件运行时需要写入注册表的文件时,可以通过环境变量更改完成共用,具体见具体的文件。
设置一些软件或者体系的运行环境时。
Ubuntu环境变量设置
一些有关环境变量的命令
- echo 显示某个环境变量值echo $PATH
- export 设置一个新的环境变量export HELLO=hello (可以无引号)
- env 显示所有环境变量
- set 显示本地定义的shell变量
- unset 清除环境变量unset HELLO
- readonly 设置只读环境变量readonly HELLO
2. Linux的变量种类
按变量的生存周期来划分,Linux变量可分为两类:
- 永久的:需要修改配置文件,变量永久生效。
- 临时的:使用export命令声明即可,变量在关闭shell时失效。
设置变量的三种方法
在/etc/profile文件中添加变量【对 所有用户 生效 永久的】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是永久的;例如:编辑/etc/profile文件,添加CLASSPATH变量
vi /etc/profile export CLASSPATH=./JAVA\_HOME/lib;$JAVA\_HOME/jre/lib
修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。
在用户目录下的.bash_profile文件中增加变量【对 单一用户 生效 永久的】
用VI在用户目录下的.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(BASH) 有效 临时的】
在shell的命令行下直接使用
[export 变量名=变量值]
定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
环境变量的查看
- 使用
echo
命令查看单个环境变量。例如:echo $PATH
- 使用
env
查看所有环境变量。 - 使用
set
查看所有本地定义的环境变量,unset
可以删除指定的环境变量。
Ubuntu下都有那些软件需要设置环境变量?
PATH
:指定命令的搜索路径HOME
:指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)HISTSIZE
:指保存历史命令记录的条数。LOGNAME
:指当前用户的登录名。HOSTNAME
:指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。SHELL
:指当前用户用的是哪种Shell。LANG/LANGUGE
:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。MAIL
:指当前用户的邮件存放目录。PS1
:命令基本提示符,对于root用户是#,对于普通用户是$。PS2
:附属提示符,默认是>。
windows环境变量设置
有两种方法可以设置windows的环境变量:
- 可以通过命令行set的方式设定,具体的命令有:
set
打印所有的环境变量set 变量名 =
清空某个环境变量set 变量名 = 内容
设置某个变量内容set 变量名 = %变量名%内容
追加变量内容
- 可以在窗口修改
第一种修改方法仅在当前窗口内有效。
第二种修改方法全局生效。
都有那些环境变量?
%ALLUSERSPROFILE%
局部 返回所有用户配置文件的位置。%APPDATA%
局部 返回默认情况下应用程序存储数据的位置。%CD%
局部 返回当前目录字符串。%CMDCMDLINE%
局部 返回用来启动当前的 Cmd.exe 的准确命令行。%CMDEXTVERSION%
系统 返回当前的命令处理程序扩展的版本号。%COMPUTERNAME%
系统 返回计算机的名称。%COMSPEC%
系统 返回命令行解释器可执行程序的准确路径。%DATE%
系统 返回当前日期。%ERRORLEVEL%
系统 返回最近使用过的命令的错误代码。通常用非零值表示错误。%HOMEDRIVE%
系统 返回连接到用户主目录的本地工作站驱动器号。基于主目录值的设置。用户主目录是在本地用户和组中指定的。%HOMEPATH%
系统 返回用户主目录的完整路径。基于主目录值的设置。用户主目录是在本地用户和组中指定的。%HOMESHARE%
系统 返回用户的共享主目录的网络路径。基于主目录值的设置。用户主目录是在本地用户和组中指定的。%LOGONSEVER%
局部 返回验证当前登录会话的域控制器的名称。%NUMBER\_OF\_PROCESSORS%
系统 指定安装在计算机上的处理器的数目。%OS%
系统 返回操作系统的名称。Windows 2000 将操作系统显示为 Windows_NT。%PATH%
系统 指定可执行文件的搜索路径。%PATHEXT%
系统 返回操作系统认为可执行的文件扩展名的列表。%PROCESSOR\_ARCHITECTURE%
系统 返回处理器的芯片体系结构。值: x86,IA64。%PROCESSOR\_IDENTFIER%
系统 返回处理器说明。%PROCESSOR\_LEVEL%
系统 返回计算机上安装的处理器的型号。%PROCESSOR\_REVISION%
系统 返回处理器修订号的系统变量。%PROMPT%
局部 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。%RANDOM%
系统 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。%SYSTEMDRIVE%
系统 返回包含 Windows XP 根目录(即系统根目录)的驱动器。%SYSTEMROOT%
系统 返回 Windows XP 根目录的位置。%TEMP%
and %TMP% 系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其它应用程序则需要 TMP。%TIME%
系统 返回当前时间。%USERDOMAIN%
局部 返回包含用户帐户的域的名称。%USERNAME%
局部 返回当前登录的用户的名称。%UserProfile%
局部 返回当前用户的配置文件的位置。%WINDIR%
系统 返回操作系统目录的位置。
Java环境变量的设置
Java都需要设置那些环境变量?
JAVA\_HOME
指明JDK安装路径.(在安装好java之后就该配置)Path
使得系统可以在任何路径下识别java命令.(如果你采用命令形式编译java源码,设置这个很方便)classpath
为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别它.
Java在windows和linux下配置环境变量
windows:系统设置 分别设置这三项。
Linux:
修改
/etc/profile
文件
如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。- 用文本编辑器打开/etc/profile
在profile文件末尾加入:
export JAVA\_HOME=/usr/share/jdk1.6.0\_14 export PATH=$JAVA\_HOME/bin:$PATH export CLASSPATH=.:$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar
重新登录
注解
- 你要将 /usr/share/jdk1.6.0_14改为你的jdk安装目录
- linux下用冒号:来分隔路径
- $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值
在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种常见的错误。 - CLASSPATH中当前目录.不能丢,把当前目录丢掉也是常见的错误。
- export是把这三个变量导出为全局变量。
- 大小写必须严格区分。
修改
.bash\_profile
文件这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。
- 用文本编辑器打开用户目录下的.bash_profile文件
在.bash_profile文件末尾加入:
export JAVA\_HOME=/usr/share/jdk1.6.0\_14 export PATH=$JAVA\_HOME/bin:$PATH export CLASSPATH=.:$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar
重新登录
直接在shell下设置变量
不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。
只需在shell终端执行下列命令:
export JAVA\_HOME=/usr/share/jdk1.6.0\_14 export PATH=$JAVA\_HOME/bin:$PATH export CLASSPATH=.:$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar
引用来源
http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html
http://blog.chinaunix.net/uid-27135166-id-3304153.html
http://www.jb51.net/LINUXjishu/77524.html
http://blog.chinaunix.net/uid-27135166-id-3304153.html
http://blog.csdn.net/fb281906011/article/details/8057672
http://jingyan.baidu.com/article/4ae03de320d99f3eff9e6bfd.html