问题:当我 在终端输入ifconfig命令查看ip时,总是提示bash: ifconfig: command not found。输入的 ifconfig命令并没有错,可是为什么总是提示我命令找不到呢?
我在百度上找到的答案是必须输 入/sbin/ifconf ig或者用root的身份登录输入ifconfig才能运行ifconfig命令。将两种方法试了一下,果然成功拉。那么为什么普通用户就必须输入完整的 路径/sbin/ifconfig才能运行ifconfig命令,而超级用户直接就可以直接输入ifconfig就可以运行呢。这和环境变量PATH有关。
超级用户root的和普通用户的 PATH不同。超级用户root 的PATH 包括/sbin 和/usr/sbin,而普通用户一般不包括。因此普通用户不能直接运行/sbin下的文件。而/ifconfig文件就在/sbin的目录下,因此,超级用户root可以输入直接ifconfig就可以运行ifconfig命令,而普通用户只能输入完整的路径才能运行。即使普容用户通过su命令变成超级用户,也只是继承了普通用户的PATH,还是没有包括/sbin 和/usr/sbin。
因此要想普通用户直接也能直接运行ifconfig就必须在普通用户的 PATH里也设置上/sbin路径。在/home/heishirt/.bash_profile(说明:heishirt是指你的普通用户名)文件里的PATH="$PATH:$HOME/bin加上:/sbin保存退出,重启或者执行source .bash_profile,让刚配置的路径生效。普通用户就可以只输入ifconfig就可以运行ifconfig命令了。
我在百度上找到的答案是必须输 入/sbin/ifconf ig或者用root的身份登录输入ifconfig才能运行ifconfig命令。将两种方法试了一下,果然成功拉。那么为什么普通用户就必须输入完整的 路径/sbin/ifconfig才能运行ifconfig命令,而超级用户直接就可以直接输入ifconfig就可以运行呢。这和环境变量PATH有关。
超级用户root的和普通用户的 PATH不同。超级用户root 的PATH 包括/sbin 和/usr/sbin,而普通用户一般不包括。因此普通用户不能直接运行/sbin下的文件。而/ifconfig文件就在/sbin的目录下,因此,超级用户root可以输入直接ifconfig就可以运行ifconfig命令,而普通用户只能输入完整的路径才能运行。即使普容用户通过su命令变成超级用户,也只是继承了普通用户的PATH,还是没有包括/sbin 和/usr/sbin。
因此要想普通用户直接也能直接运行ifconfig就必须在普通用户的 PATH里也设置上/sbin路径。在/home/heishirt/.bash_profile(说明:heishirt是指你的普通用户名)文件里的PATH="$PATH:$HOME/bin加上:/sbin保存退出,重启或者执行source .bash_profile,让刚配置的路径生效。普通用户就可以只输入ifconfig就可以运行ifconfig命令了。