今天要在我的系统中添加一个用户,没有想到会出现这样的一个错误:如下所示:
[root@xudonglee xudonglee]# useradd devid
bash: useradd: command not found
|
各位请看清楚了,我用的可是root用户哦,但是为什么root用户还会报错呢?
原因就是在我从我的帐户su到root用户的时候是这样做得:
bash-3.2$ su
口令:
[root@xudonglee xudonglee]#
|
对,问他就处在“su”上面,因为如果只是使用su进行转换的话,并没有将root用户的环境变量和工作目录同时带入,环境变量没有带入这一点看不出来,但是工作目录大家都看的很清楚,最后一行,还是我对home目录,而不是root的家目录阿。
现在进行更正:
bash-3.2$ su -
口令:
[root@xudonglee ~]# pwd
/root
[root@xudonglee ~]#
|
这下就一目了然了,当使用“su -”时,root的环境变量和工作目录进行了更改,将工作目录改为他的家目录了。
下面是这种情况下,root的环境变量:
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
|
而下面的是,我再次模拟使用“su”时,root的环境变量
/usr/kerberos/sbin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
|
现在大家应该很清楚了,这两个命名虽然都转换到了root用户,但是他们的效果是不一样的,所以以后咱们在使用的时候,最好直接使用“su -”命令。
虽然使用“su”命令省事,而且在某些操作中也不会出现什么问题,但是如果需要用到环境变量的地方,我们又要重新进行更改,这个开销可比一开始加上“-”来的大的多。
所以,人生不能偷懒,今天你偷懒,明天你可能要花数倍不止的代价来弥补,甚至有些错误根本无法弥补!自勉!
阅读(3554) | 评论(0) | 转发(0) |