ユーザーがフルパス名を使ってコマンドを入力すると、シェルはそのパス名を使ってコマンドを探します。ユーザーがコマンド名しか指定しないと、シェルは PATH 変数で指定されているディレクトリの順でコマンドを探します。ディレクトリのどれかで見つかれば、シェルはコマンドを実行します。
デフォルトのパスがシステムで設定されますが、大部分のユーザーはそれを変更して他のコマンドディレクトリを追加します。環境の設定や、正しいバージョンのコマンドまたはツールへのアクセスに関連して発生するユーザーの問題の多くは、パス定義の誤りが原因です。
次に、効率的な PATH 変数を設定するガイドラインをいくつか示します。
セキュリティが特に問題とならないときは、現在の作業ディレクトリ (.) をパスの最初に指定します。しかし、現在の作業ディレクトリをパスに入れると、セキュリティ上問題があり、特にスーパーユーザーにとって問題となります。
検索パスはできるだけ短くしておきます。シェルはパスで各ディレクトリを探します。コマンドが見つからないと、検索に時間がかかり、システム性能が低下します。
検索パスは左から右に読まれるため、通常使用するコマンドをパスの初めの方に指定するようにしてください。
パスでディレクトリを重複しないように確認してください。
可能であれば、大きなディレクトリの検索は避けてください。大きなディレクトリはパスの終わりに指定します。
NFS サーバーが応答しないときに「ハング」の可能性を少なくしたり、不要なネットワークトラフィックを削減するよう、NFS がマウントするディレクトリより前にローカルディレクトリを指定します。
次の例は、ユーザーのデフォルトパスがホームディレクトリと他の NFS マウントディレクトリを含むように設定する方法を示します (現在の作業ディレクトリはパスの初めに指定されます)。C シェルユーザー初期設定ファイルでは、次の行を追加してください。
set path=(. /usr/bin $HOME/bin /net/glrr/files1/bin)
Bourne または Korn シェルユーザー初期設定ファイルでは、次の行を追加してください。
PATH=.:/usr/bin:/$HOME/bin:/net/glrr/files1/bin export PATH