bash: useradd: command not found

3600阅读 0评论2010-07-17 xudonglee
分类:LINUX

今天要在我的系统中添加一个用户,没有想到会出现这样的一个错误:如下所示:

[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”命令省事,而且在某些操作中也不会出现什么问题,但是如果需要用到环境变量的地方,我们又要重新进行更改,这个开销可比一开始加上“-”来的大的多。

所以,人生不能偷懒,今天你偷懒,明天你可能要花数倍不止的代价来弥补,甚至有些错误根本无法弥补!自勉!
上一篇:Linux网络编程--8. 套接字选项
下一篇:更改命令提示符