原文地址:http://blog.csdn.net/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命令!