PATHになぜそんなに多くのプログラムがありますか?

PATHになぜそんなに多くのプログラムがありますか?

デスクトップLinuxについて私を混乱させる1つ以上のものは、ほとんどすべてが私のPATHにあるということです。すべては、gnome-character-mapやglchessのようなものを含むすべてのデスクトップアプリケーションを意味します。これにはコマンドラインインターフェイスがないため、定期的に端末で実行している状況は想像できません。すべて入力する必要がある不快感。道。混乱しているように見えますが、そのような理由があるかもしれません。

なぜするこのようなことが起こりますか?パフォーマンスやメンテナンスの可能性に大きな影響はありますか?

答え1

ユーザーが実行したいすべてのコマンドはPATHにあります。それがまさにその目的です。これには次のコマンドが含まれます。あなた直接実行されるコマンド、他の人が直接実行するコマンド、または他の人が他のコマンドによって呼び出され、間接的に実行されるコマンド。これは、端末で実行されるコマンドに限定されない。 GUIで実行されるコマンドは、コマンド検索パスからも検索されます(つまり、これはまさにその目的です)。

フルパスを入力する必要はありません。フルパスが何であるかを知る必要があります!/usr/binオペレーティングシステムに付属のほとんどのプログラムが含まれているか、管理者が手動でインストールしたプログラムが含まれているか、/usr/local/bin一部のUnixのコアオペレーティングシステムに属さないプログラムが含まれているかどうかを追跡する必要があります。バリエーション)、他のシステム固有のディレクトリ、またはユーザーのホームディレクトリのどこかにあります。

「パフォーマンスやメンテナンスへの影響」については、何と比較しているのか言及していないため、回答しにくいです。プログラムを再配置した場合、またはOSに付属のもの、またはシステム管理者が提供したもの以外のものをインストールしたい場合は、どこにでもフルパスを入力する必要があるのと比較して、これはメンテナンスにとって悪夢です。最新バージョンの場合は、すべての場所でフルパスを変更する必要があります。複数のディレクトリから名前を検索する場合、パフォーマンスに与える影響はわずかです。

PATHWindowsと比較すると、状況は悪いです。一部のプログラムは、実行可能ファイルだけでなく、あらゆる種類のゴミをPATHに追加し、最終的にすべてのプログラムを含まない1マイルの長さの変数で終わります。インストール時にシステムパスに自分自身を追加します。

答え2

PATH変数にはディレクトリパスのリストが含まれています。ユーザーが完全なパスを指定せずにコマンドを入力した場合は、このリストを調べてコマンドへのパスが含まれていることを確認します。端末やコマンドライン自体に関する内容はありません。

また、デスクトップLinuxに関連するものはありません。私のXPシステムのPATHには次のものがあります。%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\WbemこれにはおそらくほとんどのWindows用のバイナリが含まれます。

指定された順序でPATHのディレクトリを検索し、一致するものが見つかったらすぐに停止します。システムディレクトリは通常、先頭にあり、優先順位が最も高くなります。ユーザーは最後にカスタム検索パスを追加する必要があります。

パフォーマンスについて:ほとんどの最新のシェルはPATHの内容をキャッシュするため、ユーザーがコマンドを入力するたびにディスクをスキャンする必要はありません。

関連情報