ubuntu的环境变量

原创
2016/01/08 19:42
阅读数 73

ubuntu中有两种环境变量,一种是单一用户配置(只对自己生效),另一种是全局(所有用户,除root用户)配置。

全局的有

  • /etc/bash.bashrc

  • /etc/profile

  • /etc/environment

用户的有

  • ~/.bashrc

  • ~/.profile

对于普通用户来说,配置的读取顺序是~/.bashrc ----> /etc/bash.bashrc ---->  ~/.profile  ---->  /etc/profile-->/etc/environment

如果有一个命令在两个配置文件都进行了配置,那么系统会选择最先找到的。

例如~/.bashrc配置如下两种情况:

    1 PATH=$PATH:~/mybin

    2 PAHT=~/mybin:$PATH

第一种情况,mybin里的命令会最后被找到,$PATH会按照如上顺序查找命令,最后加上~/mybin路径

第二种情况正好相反,mybin里的命令会最先找到,然后才是其他配置文件里的命令

如果/etc/bash.bashrc和~/.profile等也有相似的规律,$PATH的先后是有影响的。

对于同一个配置文件里有两个PATH,如下,大家可以自行考虑

PATH=~/mybin1:$PATH:~/mybin2

PATH=~/mybin3$PATH:~/mybin4


现在来考虑两种特殊情况

1 root用户

    ubuntu用户在命令行中可以用su命令进入root账户,root的环境配置只有两个文件,/etc/bash.bashrc和/etc/environment这两个地方都可以配置,顺序同上,即/etc/bash.bashrc  ---->/etc/environment


2 sudo命令

    大家可能发现有些命令加上sudo命令后就无法找到了,其实sudo这个命令有点特殊,sudo的配置文件在/etc/sudoers,这是一个单独的配置文件,只能sudo用来查找命令。如果想让sudo运行某些外部命令,也可以用sudo -s也可。


最后提醒大家一下,~/.bashrc 和 /etc/bash.bashrc两个修改完配置,重新打开一个命令行窗口即可,其他三个文件需要重新登录才能生效,注销登录即可。修改/etc/environment时候注意下,官方现在并不推荐这种方式,当然也能成功。





展开阅读全文
加载中
点击加入讨论🔥(1) 发布并加入讨论🔥
打赏
1 评论
0 收藏
1
分享
返回顶部
顶部