原文地址:http://blog.youkuaiyun.com/scoliver/article/details/7242896
经常遇到"bash:xxxx:command not found"这样的问题,用root用户也不行,在网上查阅了此问题,解决方法如下:
http://hi.baidu.com/jinjun8505/blog/item/e2c5dd8d9b1998f3f01f36e3.html
原本使用ifconfig 可以使用,今天是怎么了,可能安装软件修改了,百度~~
[oracle@localhost /]$ ifconfig
提示:“bash: ifconfig: command not found”
于是我切换到root用户下
[root@localhost /]$ ifconfig
依然提示:“bash: ifconfig: command not found”
分析问题
1.whereis ifconfig 看一下这个命令在哪个目录下
2.echo $PATH 看一下该目录是否在路经下,注意lunux下是完全区分大小写的,所以不要忽略这点
3.执行命令,需要指定路径或者把目录加入PATH中
4.于是可以这样访问
方法一:[root@localhost sbin]$ /sbin/ifconfig 就可以出现使用了
方法二:[root@localhost sbin]$ export PATH=$PATH:/sbin ,这样设置后,下次就可以直接访问了,免处第一种的麻烦,如:
[root@localhost /]$ ifconfig
方法三:修改/etc/profile文件,注释掉if语句即可
把下面的if语句注释掉:
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
修改为
# Path manipulation
# if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
#fi
注:不光是ifconfig命令出现“bash: ifconfig: command not found”,原因非root用户的path中没有/sbin/ifconfig
,其它的命令也可以出现这种情况,解决的方法是一样的。
http://www.cnblogs.com/cninfochina/articles/2171545.html
网上的解释:
一般我们敲一个命令的时候,系统会到path变量指定的目录中去寻找的,在Linux系统下默认有那么几个可执行文件的目录,一般可执行文件的目录都叫 bin,我们一般在根目录下面有个/bin 和一个/sbin 这两个目录都是存放一些可执行文件或者说是命令的!把这两个目录放到PATH变量里边,系统就会去这连个目录中寻找,而/sbin目录是只有超级用户才能使用的执行文件路径,init这个命令又放在/sbin下面所以普通用户的PATH没有/sbin这个路径也就会出现上面的提示,如果你想用但你只是设置下你的PATH变量也不好使的,因为/sbin目录下面的还有个权限的问题,你先用root用户给那些执行文件赋予你普通用户权限,然后你用普通用户登录,要么把自己的PATH变量里加上一行,要么直接进入/sbin目录执行init命令!