输入ifconfig命令报错:“ifconfig: command not found”
原因:ifconfig命令所在路径/sbin未包含在系统环境变量PATH中(遇到其他命令出现这种情况可以参考下述解答,举一反三)
最近刚开始学习linux~遇到了一些问题,大多在网上都能找到解决方法,但是很多都是直接教怎么做,而没有讲述原理
不知道原理,往往这一次看过下一次就忘了。
所以,以后我将写下来我遇到的问题以及解决方法,并尽可能的将“为什么要这样解决”阐述明白
一方面自己可以透彻理解,一方面给需要的朋友提供帮助
O(∩_∩)O哈!还有补充的可以在评论中写下来。
解决方法:
1. 直接输入:/sbin/ifconfig
2. 临时修改环境变量:在shell中输入
$export PATH = $PATH:/sbin
然后再输入ifconfig命令即可,但是这只是临时更改了shell中的PATH,如果关闭shell,则修改消失,下次还需要重复如上操作
3.永久修改PATH变量使之包含/sbin路径:
打开/etc/profile文件,在其中输入export PATH=$PATH:/sbin,保存并重启X即可,这样一来,PATH路径永久修改成功,以后任何时候只需书序ifconfig命令即可
分析:
1. 直接输入:/sbin/ifconfig
2. 临时修改环境变量:在shell中输入
$export PATH = $PATH:/sbin
然后再输入ifconfig命令即可,但是这只是临时更改了shell中的PATH,如果关闭shell,则修改消失,下次还需要重复如上操作
3.永久修改PATH变量使之包含/sbin路径:
打开/etc/profile文件,在其中输入export PATH=$PATH:/sbin,保存并重启X即可,这样一来,PATH路径永久修改成功,以后任何时候只需书序ifconfig命令即可
分析:
首先,你是用root账户登录的话是用ifconfig一般是不会出现这种情况的
用一般用户登录的时候使用此命令为什么会找不到命令呢?
在linux中,我们在执行一个命令时,系统会按照PATH的设置去找相应命令的可执行文件
通过echo $PATH可以看到PATH中有哪些路径被设置了
这里以centOS5.6为例:
使用root账户登录时:
![](https://img-my.csdn.net/uploads/201212/03/1354504204_5565.png)
![](https://img-my.csdn.net/uploads/201212/03/1354504204_5565.png)
而使用一般用户查看:
![](https://img-my.csdn.net/uploads/201212/03/1354504242_1384.png)
![](https://img-my.csdn.net/uploads/201212/03/1354504242_1384.png)
通过对比可以发现,在一般用户的PATH中是没有sbin这个目录的设置的,
而ifconfig命令的可执行文件正是在sbin下。由此得到上面三种解决办法。
注: 因为随便把/sbin加入到PATH中,可能会引起一些不必要的问题。 所以 除非是有意调用这个文件夹下的脚本指令,可以用全路径加成(解决方法1),不必要加入PATH(方法3)
最近刚开始学习linux~遇到了一些问题,大多在网上都能找到解决方法,但是很多都是直接教怎么做,而没有讲述原理
不知道原理,往往这一次看过下一次就忘了。
所以,以后我将写下来我遇到的问题以及解决方法,并尽可能的将“为什么要这样解决”阐述明白
一方面自己可以透彻理解,一方面给需要的朋友提供帮助
O(∩_∩)O哈!还有补充的可以在评论中写下来。