可能是我没说清楚。我su进入root.的~/.bash_profile 内容如下:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and sta ...
ShinyGuo 发表于 2009-3-31 12:42
可能是我没说清楚。我su进入root.的~/.bash_profile 内容如下:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:/bin:/sbin:/usr/sbin:/usr/bin
export PATH
unset USERNAME
-----------------------------------------
但是当我echo $PATH的时候显示
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/bin:/usr/bin:/usr/sbin:/usr/local/bin
上边的这一行是在哪儿设置的?
另:我说的当前窗口指在当前的终端窗口。
w176177082 于 2010-10-27 16:07:24发表:
读了有些明白!
yujie870217 于 2009-04-02 23:11:37发表:
恩 二楼的解释已经很清楚了,其一 你要export your path 再有就是su的时候path是不会变的
xtygaht 于 2009-04-02 13:58:24发表:
顶一个
相思爱文 于 2009-03-31 17:50:33发表:
你好,我当时看完贴只是想及时通知你,楼上的答复正确,应该查明原因,评分后会及时发出链接及消息,
对于export $PATH这种写法是错误的,谢谢指点。
chenzhj 于 2009-03-31 14:39:00发表:
/root/.bash_profile
是针对于root用户的环境配置
/etc/profile
是针对于所有用户
ShinyGuo 于 2009-03-31 14:12:24发表:
十分感谢wang7131984 兄,
我也知道了su 和 su - root的区别!他的解答很正确,解释了我的疑惑!
再次感谢!
ShinyGuo 于 2009-03-31 14:05:12发表:
12# wang7131984
我等会仔细研究,就说这个回复的,就太赞了!感谢...:0D1
wang7131984 于 2009-03-30 19:31:00发表:
不好意思,好久没看shell竟然犯这么低级的错误,哈哈~。
在.bash_profiles中加入
PATH=$PATH:XXXXXX
export PATH
也就是说你的那个配置文件是没有问题的
至于你为什么echo $PATH没有改变,我怀疑是使用的用户不当造成的。
当普通用户输入
su
xxxxxx
普通用户虽然拥有了root权限,但是他的使用环境仍然是普通用户的环境,也就是说你这时
echo $PATH实际上是普通用户定义的PATH,所以你当然不可能看见你/root/.bash_profile中的PATH了。
如果你想只改变普通用户的PATH,那么使用 vi /home/$USERNAME/.bash_profile,在其中加入上面的语句。
还有一种方法:如果你真是想改变root的PATH,那么使用
su -
xxxxxxx
这样你就不仅仅拥有了root权限,而且拥有root的环境。这是你再echo $PATH就能看见你已经定义的PATH
最后一种方法:调用root权限更改/etc/profiles,这样所有的用户都拥有了这个PATH,当然这是极不推荐的,除非你更改的东西是所有公用的。
总结:所以你遇到的问题更本就不是语句的问题,而是一个权限和环境的问题。深入理解linux中的用户的环境配置文件而不能断章取义。完毕...够详细了吧
ShinyGuo 于 2009-03-31 13:10:15发表:
ShinyGuo 于 2009-03-31 13:05:37发表:
[i=s] 本帖最后由 ShinyGuo 于 2009-3-31 13:14 编辑 [/i]
export $PATH岂不是要把PATH的值当成一个变量名字export?这是不对的吧。会出现bash错误。
export PATH才行吧!
阁下可不可以写详细些?如果你真知道,请不吝赐教。
wang7131984 于 2009-03-31 12:50:56发表:
export $PATH
ShinyGuo 于 2009-03-31 12:43:29发表:
4# 相思爱文
老大你这是什么意思?干啥给我威望-2了
ShinyGuo 于 2009-03-31 12:42:27发表:
[i=s] 本帖最后由 ShinyGuo 于 2009-3-31 12:44 编辑 [/i]
可能是我没说清楚。我su进入root.的~/.bash_profile 内容如下:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:/bin:/sbin:/usr/sbin:/usr/bin
export PATH
unset USERNAME
-----------------------------------------
但是当我echo $PATH的时候显示
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/bin:/usr/bin:/usr/sbin:/usr/local/bin
上边的这一行是在哪儿设置的?
另:我说的当前窗口指在当前的终端窗口。
wang7131984 于 2009-03-31 10:19:43发表:
另外不知道你当前窗口是什么意思?
wang7131984 于 2009-03-31 10:16:51发表:
export是将环境变量导出当当前的shell和所有的子shell。在启动时执行.bash_profiles之后就会执行这个语句,如果你想让所有的用户都生效就不能在.bash_profiles中定义。而要在/etc/profiles之中定义
相思爱文 于 2009-03-31 03:46:51发表:
cd ~
cp .bashrc .bashrc_bakup
vim .bashrc
PATH= XXXXX
export $PATH
logout
login
echo $PATH
bash
echo $PATH
ShinyGuo 于 2009-03-30 22:25:44发表:
楼上不靠谱啊。export是仅限于当前的窗口的。我想要永久地改变的。
wang7131984 于 2009-03-30 20:36:38发表:
PATH= XXXXX
export PATH