bash: ifconfig: command not found 解决办法

来源:互联网 发布:java软件技术学校 编辑:程序博客网 时间:2024/05/22 01:56

经常遇到"bash:xxxx:command not found"这样的问题,用root用户也不行,在网上查阅了此问题,解决方法如下:


原文1.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 看一下该目录是否在路经下,注意linux下是完全区分大小写的,所以不要忽略这点 

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 

,其它的命令也可以出现这种情况,解决的方法是一样的。


原文2 http://www.cnblogs.com/cninfochina/articles/2171545.html

如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么,首先就要考虑root 的$PATH里是否已经包含了这些环境变量。 
主要是这四个:/bin ,/usr/bin,/sbin,/usr/sbin。 
四个主要存放的东东: 
/bin: 
bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。 

/usr/bin: 
主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。 

/sbin: 
主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。 

/usr/sbin: 
放置一些网路管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。 

可以在家目录下查看.bash_profile里的PATH。如果是:PATH=$PATH:$HOME/bin则需要添加成如下:

PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin



网上的解释:

一般我们敲一个命令的时候,系统会到path变量指定的目录中去寻找的,在Linux系统下默认有那么几个可执行文件的目录,一般可执行文件的目录都叫 bin,我们一般在根目录下面有个/bin 和一个/sbin 这两个目录都是存放一些可执行文件或者说是命令的!把这两个目录放到PATH变量里边,系统就会去这连个目录中寻找,而/sbin目录是只有超级用户才能使用的执行文件路径,init这个命令又放在/sbin下面所以普通用户的PATH没有/sbin这个路径也就会出现上面的提示,如果你想用但你只是设置下你的PATH变量也不好使的,因为/sbin目录下面的还有个权限的问题,你先用root用户给那些执行文件赋予你普通用户权限,然后你用普通用户登录,要么把自己的PATH变量里加上一行,要么直接进入/sbin目录执行init命令! 
原创粉丝点击