Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。
1. 系统级
(a) /etc/environment: 是系统在登录时读取的第一个文件,用于为所有进程设置环境变量。系统使用此文件时并不是执行此文件中的命令,而是根据KEY=VALUE模式的代码,对KEY赋值以VALUE,因此文件中如果要定义PATH环境变量,只需加入一行形如PATH=$PATH:/xxx/bin的代码即可。
(b)/etc/profile:是系统登录时执行的第二个文件,可以用于设定针对全系统所有用户的环境变量。该文件一般是调用/etc/bash.bashrc文件。
/etc/bash.bashrc:系统级的bashrc文件,为每一个运行bash shell的用户执行此文件。此文件会在用户每次打开shell时执行一次。
注意: /etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。 这两个文件修改后一般都要重启系统才能生效。
2. 用户级(这些文件处于家目录下)
(a)~/.profile: 是对应当前登录用户的profile文件,用于定制当前用户的个人工作环境。
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。这里是推荐放置个人设置的地方
(b)~/.bashrc: 是对应当前登录用户的bash初始化文件,当用户每次打开shell时,系统都会执行此文件一次。平时设置这个文件就可以了。
那么根据以上描述,这几个文件的执行先后顺序应当是:
/etc/enviroment –>/etc/profile –>~/.profile –>/etc/bash.bashrc–> ~/.bashrc
配置环境变量
1. 在linux下设定环境变量时,如果只是临时用一下,可以直接在shell下用set或export命令设定环境变量。只能在当前shell脚本下可用.,切换到另一个终端就会失效。
#终端输入:
export PYTHONPATH=/home/username/python #PYTHONPATH设置为该路径
#终端查看一个特定环境变量包含的内容,比如PYTHONPATH
echo $PYTHONPATH
2. 如果希望此环境变量每次开机或打开shell时自动设定而无须每次都手动设定,那么需要将export命令写入以上的系统文件中。
(a) 打开.bashrc文件,
在其末尾添加:
export PYTHONPATH=/home/username/python:$PYTHONPATH
# path采用:来分隔,冒号左右不需要空格.
# :$PYTHONPATH在后面新添加的path优先搜索,$PYTHONPATH:在前面说明新添加的path后面搜索,不加代表新路径设置为PYTHONPATH路径。
其中/home/username/python为自己需要设置的环境变量路径。
在终端执行:source ~/.bashrc
,使其立即生效,或者重启电脑即可。
(b) 在终端打开环境变量的文件/etc/profile
然后将自己的环境变量加入到文件之后,用export 执行。
在终端里面使用source /etc/profile
来更新环境变量
(c) 采用export添加新的路径到环境变量PATH中。
#比如添加搜索路径/home/cc/path1和/home/cc/path2 路径到PATH中,采用:来分隔,冒号左右不需要空格
export PATH=$PATH:/home/cc/path1:/home/cc/path2
#若需要将路径放在优先搜索位置,将$PATH放在后面
export PATH=/home/cc/path1:/home/cc/pck:$PATH