linux下的环境变量
bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。
/etc/profile,/etc/bashrc 是系统全局环境变量设定
~/.profile,~/.bashrc用户目录下的私有环境变量设定
当登入系统获得一个shell进程时,其读取环境设置脚本分为三步:
- 首先读入的是全局环境变量设置文件/etc/profile,然后根据其内容读取额外的文档,如/etc/profile.d和/etc/inputrc
- 读取当前登录用户Home目录下的文件~/.bash_profile,其次读取~/.bash_login,最后读取~/.profile,这三个文档设定基本上是一样的,读取有优先关系
- 读取~/.bashrc
~/.profile与~/.bashrc的区别:
- 这两者都具有个性化定制功能
- ~/.profile可以设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次
- ~/.bashrc也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次
以下给出几种centos下环境变量的修改方式
1.直接运行命令
export PATH=$PATH:/usr/local/php/bin //此处我设置的php的
使用这种方法,只会对当前回话生效,也就是说每当登出或注销系统以后,PATH 设置就会失效,只是临时生效。
2.修改~/.bash_profile文件,修改文件中 PATH 一行,将 /usr/local/php/bin 加入到 PATH=$PATH:$HOME/bin 一行之后(注意以冒号分隔),保存文件并退出,执行 source ~/.bash_profile 使其生效,这种方法只对当前登陆用户生效。
3.修改/etc/bashrc(Ubuntu和Debian中是/etc/bash.bashrc),影响所有用户使用的bash shell。/etc/bashrc顾名思义是为初始化bash shell而生,在bash shell打开时运行。这里bash shell有不同的类别:登录shell和非登陆shell,登录shell需要输入用户密码,例如ssh登录或者su - 命令提权都会启动login shell模式。非登陆shell不会执行任何profiel文件;交互shell和非交互shell,提供命令提示符等待用户输入命令的是交互shell模式,直接运行脚本文件是非交互shell模式,一般情况下非交互shell模式不执行任何bashrc文件。根据以上情况,选择是否修改/etc/bashrc。