ifconfig: コマンド 'ifconfig' は '/sbin/ifconfig' で使用できます

ifconfig: コマンド 'ifconfig' は '/sbin/ifconfig' で使用できます

私の質問は別のオープンな質問に関連しています質問私のecho $PATHの出力は次のようになります

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/sahil/.rvm/bin{}:/home/android-sdks/{}:/home/android-sdks/platform-tools/{}:/home/android-sdks/tools/{}:/home/sahil/android-sdks/tools{}:/home/sahil/android-sdks/tools:/home/sahil/android-sdks/platform-tools/

しかし、走る

ifconfig 

次のような出力が得られます

Command 'ifconfig' is available in '/sbin/ifconfig'
The command could not be located because '/sbin' is not included in the PATH environment variable.
This is most likely caused by the lack of administrative privileges associated with your user account.
ifconfig: command not found

他の質問で示されているようなコマンドを実行した後

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

それは走るifconfigただし、Ruby Rails または RVM の他のコマンドはブロックされます。

これを解決する方法について助けを求めています。また、なぜこれが起こるのでしょうか?

答え1

以下のコマンドを試してください

export PATH=$PATH:/usr/sbin

または(すべてのパスを設定する場合)

export PATH=$PATH:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin:/usr/games

答え2

あなたのオリジナル$PATH(投稿した行はあまり読みにくいです):

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:
/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:
/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin:
/usr/local/bin:/usr/bin:/bin:/usr/games:
/home/sahil/.rvm/bin{}:
/home/android-sdks/{}:
/home/android-sdks/platform-tools/{}:
/home/android-sdks/tools/{}:
/home/sahil/android-sdks/tools{}:
/home/sahil/android-sdks/tools:
/home/sahil/android-sdks/platform-tools/

と があります。すでにお分かりのとおり、/usr/local/binはの中にあります。/usr/bin/binifconfig/sbin

したがって、そのパスが設定されている場所にも含める必要があります/sbin

見るルビージェムこれを行う方法に関するドキュメント。

答え3

/sbinは通常、パスの一部です。Fedoraなどの他のディストリビューションでは、一般ユーザー向けにPATHに含まれていませんが、Ubuntuでは常に含まれていると思います。/etc/environmentファイルをチェックして、有効かどうか、また/sbinがパスに追加されているかどうかを確認することをお勧めします。/etc/environment を cat する次のような出力が得られます。

adnan@adnan-laptop:~$ cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

ご覧のように/sbinすでに PATH 環境変数の一部です。ファイルの内容が同じ場合は、権限を確認してください。そうでない場合は、このファイルの PATH に /sbin を追加してください。私の場合、権限は次のとおりです。

adnan@adnan-laptop:~$ ls -l /etc/environment 
-rw-r--r-- 1 root root 79 2009-10-29 01:55 /etc/environment

答え4

変数は何ですかPATH?

PATHディレクトリ パスのリストです。ユーザーがフル パスを指定せずにコマンドを入力すると、このリストにコマンドにつながるパスが含まれているかどうかがチェックされます。この変数内のパスの順序は、コマンドが検索される順序を示します。複数のディレクトリに同じ名前のプログラムがある場合は、リストの先頭 (左側) に最も近いフォルダーにあるプログラムが実行されます。

他のコマンド (Ruby Rails および RVM から) がブロックされた理由は、以下を実行したためです。

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

PATHその結果、含まれていないこのようなプログラムのフォルダ、すなわち:

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin

/sbin代わりに、独自の を追加する必要がありますPATH

/sbin追加方法PATH

PATHは基本的に常に環境内にあるため、エクスポートする必要はなく、/sbinディレクトリを追加するだけで済みます。これを行うには、bashで実行します。

PATH="$PATH:/sbin"

パスは次のようになります。

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/sahil/.rvm/bin{}:/home/android-sdks/{}:/home/android-sdks/platform-tools/{}:/home/android-sdks/tools/{}:/home/sahil/android-sdks/tools{}:/home/sahil/android-sdks/tools:/home/sahil/android-sdks/platform-tools/:/sbin

ただし、この変更は永続的ではありません。終了すると、現在のセッションがPATH以前の値で再ロードされます。永続的にするには、この変更をファイルに追加する必要があります~/.profile。これを行う方法の 1 つは次のようになります。

echo 'PATH="$PATH:/sbin"' >> ~/.profile

ここで、現在のシェルで「~/.profile」の内容を実行する必要があります。

source ~/.profile

準備は完了です。現在のシェルだけでなく、今後のすべてのセッションにPATHディレクトリが含まれるようになります。

なぜ ~/.bashrc ではなく ~/.profile を使用したのですか?

この概念はあなたにとって役に立つかもしれません:

  • ~/.profileログイン時に起動するプログラム (グラフィカル プログラムは別ファイルに格納されます) や
    環境変数の定義など、セッション全体に適用されるものを格納する場所です。

  • ~/.bashrcエイリアスや関数の定義、シェル オプション、プロンプト設定など、bash 自体にのみ適用されるものを置く場所です。(キー バインディングもここに置けますが、bash の場合は通常 ~/.inputrc に置きます。)

このトピックに関する詳細情報はここでは得られません。

/sbinあなたの にが必要ですかPATH?

/sbinデフォルトで含めるべきかどうかについては、ここでは議論しません。PATHここで議論してもあまり生産的な議論にはならない可能性があるからです。私が持っているものを、あなたが望むなら持っていてもいいです。あなたの判断で。

関連情報