PATH_(variable)
「PATH」変数 –
PATHは、Unix ライクなオペレーティング システム、DOS、OS/2、およびMicrosoft Windowsの環境変数であり、実行可能プログラムが置かれている一連のディレクトリを指定します。一般に、実行中の各プロセスまたはユーザー セッションには、独自の PATH 設定が
コンテンツ
1 歴史
2 Unix および Unix ライク
3 DOS、OS/2、および Windows
4 参考文献
歴史
Multics は、検索パスのアイデアを生み出しました。初期のUnix シェルはでプログラム名を検索するだけでした/binが、バージョン 3 Unixではディレクトリが大きすぎたため/usr/bin、検索パスがオペレーティング システムの一部になりました。
Unix および Unix ライク
POSIXおよび Unix ライクなオペレーティング システムでは、$PATH変数はコロン ( ) 文字で区切られた 1 つ以上のディレクトリ名のリストとして指定されます:。 -string内のディレクトリはエスケープすることを意図していないため、名前にPATHディレクトリを含めることはできません。:
、/bin、/usr/binおよび/usr/local/binディレクトリは通常、ほとんどのユーザーの設定に含まれています$PATH(ただし、これは実装ごとに異なります)。通常、スーパーユーザーには、システム管理コマンドを簡単に実行するためのエントリ/sbinも現在のディレクトリ ( ) もユーザーによって含まれている場合があり、現在の作業ディレクトリにあるプログラムを直接実行できます。システム管理者は、通常、悪意のあるtarbombによって配置される可能性のある現在のディレクトリにあるスクリプトが誤って実行されるのを防ぐために、これを含めません。その場合、そのようなプログラムを実行するには、コマンド ラインで絶対パス ( ) または相対パス ( ) を指定する必要が/usr/sbin.$PATH/home/userjoe/bin/script.sh./script.sh
ユーザーがコマンド名を指定するか、プログラムからexec呼び出しを行うと、システムは を検索し、リストの左から右に各ディレクトリを調べて、コマンド名に一致するファイル名$PATHを探します。見つかったプログラムは、コマンド シェルまたはコマンドを発行したプログラムの子プロセスとして実行されます。
DOS、OS/2、および Windows
DOS、OS/2、および Windows オペレーティング システムでは、%PATH%変数は、セミコロン ( ) 文字で区切られた 1 つ以上のディレクトリ名のリストとして指定されます;。
Windows システム ディレクトリ (通常はC:WINDOWSsystem32) は通常、パスの最初のディレクトリであり、その後にインストールされたソフトウェア パッケージの多くの (すべてではない) ディレクトリが続きます。多くのプログラムは、コマンド ウィンドウからではなく、グラフィカル ユーザー インターフェイスから実行するように設計されているため、パスに表示されません。一部のプログラムは、インストール中にディレクトリを PATH 変数のコンテンツの先頭に追加して、検索プロセスを高速化したり、OS コマンドを上書きしたりする場合がDOS 時代には、AUTOEXEC.BATにor行を追加するのが通例でした。PATH {program directory};%PATH%SET PATH={program directory};%PATH%
コマンド シェルにコマンドが入力されるか、プログラムによってシステム コールが実行されてプログラムが実行されると、システムはまず現在の作業ディレクトリを検索し、次にパスを検索します。各ディレクトリを左から右に調べ、実行可能なファイル名を探します。指定されたコマンド名と一致します。実行可能プログラムのファイル名拡張子はまたはEXEでありCOM、バッチ スクリプトの拡張子はBATまたはですCMD。他の実行可能なファイル名の拡張子もシステムに登録できます。
一致する実行可能ファイルが見つかると、システムはそれを実行する新しいプロセスを生成します。
PATH 変数を使用すると、独自のフォルダーにある一般的に使用されるプログラムを簡単に実行できます。ただし、賢明に使用しないと、PATH 変数の値は、あまりにも多くの場所を検索したり、無効な場所を検索したりして、オペレーティング システムの速度を低下させる可能性が
無効な場所は、サービスの実行を完全に停止することもできます。特に、Windows Server 環境内の他のサービスに通常依存している「サーバー」サービスは特にそうです。
参考文献
^ McIlroy, MD (1987). リサーチ Unix リーダー: Programmer’s Manual, 1971–1986 (PDF) (Technical report) からの注釈付き抜粋。CSTR。ベル研究所。139。
^ Open Group Unix 仕様、環境変数 ^ Open Group Unix 仕様、execve() 関数 ^ PATH 文字列パーサーの実装例として exec.c をダッシュ ^ Microsoft.com、PATH コマンド