主要介绍了Linux中常见的环境变量使用和配置时的一些基本概念和操作。
环境变量的分类
在shell中的环境变量主要有几种: 内部变量,系统环境变量(对所有用户有效),用户环境变量(对当前用户有效) 注意shell variable不属于env variable。
注意内部变量的特殊使用方式:
表示方法 描述 |
每个应用都有自己的环境变量,比如在一个terminal中 export name=golang
,之后在新开一个终端,再echo $name
就是没有信息的,新开的终端相当于是一个新的进程了。
set、env、export
env命令显示当前用户的变量;
set命令可以查看所有的环境变量,包括环境变量与用户自定义的变量;
export命令可以将自定义的变量转化成环境变量。
相关的文件
各种软件在运行的时候都会设置一些自定义的环境变量,比如说像JVM JAVA_HOME
或者像GOPATH等等,这些环境变量一般确定好,就不再发生变化,因此希望每次打开一个新的terminal的时候,或者是系统启动的时候,就自动把这些变量存储进来。
以ubuntu为例,列举一下相关的配置文件
方法1:修改/etc/profile 文件 ,在这个文件的最后面添加所需的环境变量,重启系统之后,文件中的内容会生效。
方法2:修改 .bashrc文件,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc就可以了,而不像第一种方法给所有用户权限,这样每次该用户在重新登录的时候,对应的用户目录下的.bashrc文件就会被执行。
方法3:直接在shell中修改,仅仅针对于当前shell有效,在shell发生变化之后,当前所声明的这些环境变量就无效了。这样的变量一般称为shell variable。
区别shell variable 与 env variable
不使用export的话就是shell variable,这样的variable是不能通过cpp 中的getenv操作读取到的。一些parallel的library需要读取env variable,比如omp_num_threads
,这个时候记得要使用env variable。
PYTHONPATH
如果新安装了一个software,这个software包含有python binding,然后想使用对应的python binding,就需要手动修改一下 PYTHONPATH。通常是找到相对应的site-packages
目录,然后
export PYTHONPATH=/dir/to/site-packages:${PYTHONPATH} |
参考资料
主要参考的是这个文章
http://www.cnblogs.com/dongzhiquan/archive/2012/01/10/2317641.html
ubuntu java 环境变量配置
http://www.cnblogs.com/BigIdiot/archive/2012/03/26/2417547.html
linux 中的环境变量
http://www.cnblogs.com/BigIdiot/archive/2012/03/26/2417547.html