sos:好多命令都提示找不到?!

sos:好多命令都提示找不到?!

比如说常用的shutdown:
[root@qh3 libo]# shutdown
bash: shutdown: command not found
你看,在根用户下都用不了.
还有做启动盘的命令
[root@qh3 libo]# mkbootdisk --device /dev/fd0 'uname -r'
bash: mkbootdisk: command not found
还有其他一些呢,真的把我搞得很郁闷,请问问题可能出在什么地方啊?
试试他:
/sbin/shutdown
都用绝对路径。
我也不知道为什么,有时侯行,有时侯不行。
若是su的根用户,没用"su -"的话,其环境变量还是user的,所以无法找到/sbin和/usr/sbin里的命令。若直接用root登录就可以了。以后从普通用户su 到根用户用"su -"就可以了。
ifconfig命令在哪啊,怎么找也找不到~
输入echo $PATH
看看你的路径变量是不是不全,有没有包括/sbin:/bin这些关键的路径。
如果没有添加之:PATH=$PATH:/sbin:/bin
可以在~/.profile中添加上面的命令。
普通用户和根用户的默认命令搜索路径(由$PATH环境变量决定)是不同的,例如普通用户的默认命令搜索路径中没有/sbin.

当你以普通用户执行/sbin中的命令时就会提示说找不到该命令, 实际上并不是你的系统中没有该命令, 而是该命令所在的目录不在你的$PATH环境变量中。
当你用su命令成为root时,你会继承你成为root前的普通用户的$PATH环境变量。使用su - 会使你如同用root登陆一样, 即这时你的环境变量才是root的$PATH.

另外, 搜索命令可以用 whereis name;  或者 locate name |grep bin (过滤不相关输出).

所以, 如果你在SHELL下输入命令, 系统提示说没找到该命令, 并不一定是你的系统中没有该命令, 而是系统在你的$PATH中没有找到该命令。 当然, 也有可能你的系统中确实没有该命令。


不建议把/sbin添加到普通用户的$PATH中, 因为其中的某些命令(如果不是全部的话)普通用户没有权限执行。
想要控制台的普通用户执行某些只有root才能执行的命令, 参看RH9文档 定制指南 的控制台命令 部分。当然, 也还有其他方法。

注: 以上都是在RH9中, 其他系统可能不同。