• ベストアンサー

LINUXサーバーについての質問です。

LINUXサーバーについての質問です。 http://qiita.com/suin/items/5c4e21fa284497782f71 上記サイトのシェルスクリプトの42行目の PATH=/sbin:/usr/sbin:/bin:/usr/bin は何を意味してるのでしょうか? このシェルスクリプトのファイルの置かれているパスですか? そうであれば、シェルスクリプトには必ずパスを記入するものでしょうか? 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

たとえば ls とコマンド打つと実行されますが、本当は/bin/lsです。 なぜこれがlsで実行されるかというと先の方が記載している環境変数 PATHに /bin: がセットされているからです。 なので仮にこのPATHに/binがセットされてない場合、/bin/ls とフルパスでコマンド打たないと実行されません。 lsだけ打ってもそんなコマンドないよって言われます。 そんなわけでPATHを設定しています。 逆にシェルスクリプト内のコマンドをすべてフルパスで記載するなら、PATHの設定いらないということになります。 現在設定されいる環境変数は echo $PATH で確認できます。

shousen412
質問者

お礼

ご回答ありがとうございます! 大変勉強になりました。

その他の回答 (2)

  • IDii24
  • ベストアンサー率24% (1597/6506)
回答No.2

環境変数です。毎回記述を避けるための処理です。実行環境と言っていいでしょう。 まあ決まり事のようなものです。

shousen412
質問者

お礼

ご回答ありがとうございます! 大変勉強になりました。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

/sbin、/usr/sbin、/bin、/usr/bin ディレクトリの中には各種コマンド等の実行ファイルが入っています。 スクリプト内で何気なく使っているコマンドも、多くはどこかのディレクトリに実体があるのでパスを通しているのです。 また、同じコマンドでも構築方法により /bin に入っている時もあれば /usr/bin に入っている場合があるといった違いが生じるので、絶対パスでコマンドを書くよりもパスを通しておいてコマンド名だけを記述する方が汎用性が高まります。

shousen412
質問者

お礼

ご回答ありがとうございます! 大変勉強になりました。

関連するQ&A