PATH
変数値のベストプラクティスまたは少なくともルールを探しています。
特に知りたいです。
- 値に、およびディレクトリの優先/推奨順序がありますか
/bin
?/usr/bin
/usr/local/bin
PATH
- root以外のユーザーの場合および/または変数を含めると、
/sbin
欠点/usr/sbin
がありますか?/usr/local/sbin
PATH
(1)に関して、私の無知な意見は、これらの経路が順番に現れなければならないということです。
..:/usr/local/bin:...:/usr/bin:...:/bin:...
...PATH
変数から。ここでのアイデア(ある場合)は、ローカル/usr/local/bin
インストールが.NETに存在する可能性のあるコマンドを「ローカル」に上書きできることです/usr/bin
。同じ理由で(これは実際に拡張されました!)/usr/bin
伝統的にに配置されていたコマンドの適用範囲です/bin
。
上記内容の99%が幻想であることに気づきました。それで私がこの質問をするのです。
*/sbin
同様に、幻覚的な方法で、ディレクトリ内のコマンドはスーパーユーザー権限を持つ人のためのものであり、一般ユーザーがそのコマンドを使用できるようになると、彼らの小さな心が混乱するという概念が思い出されるようです。つまり、PATH
一般ユーザーの変数には*/sbin
パスを含めないでください。
それにもかかわらず、私は変数の初期設定(各ユーザーが自分のシェル初期化スクリプトを実行する前に取得する設定を*/sbin
意味します)にパスを含むシステムを見たことがないので、なぜこれを知りたいのですか?場合 。PATH
PATH
答え1
- はい、いいえ。注文には特別なルールはありません。簡単に:ツールが
xyz
内部に/bin
あり、/usr/bin
同じツールへのリンクではなく実際に別のツールである場合、基本的にどのツールを実行する必要がありますか?
はい。 「地域優先」がその決定に大きな役割を果たしました。したがって、提案は/usr/local/bin:/usr/bin:/bin
意味があります。しかし、実際に保証を受けることができる場合はほとんどありません。理論的には可能ですが、実際には...
スーパーユーザーがより良いバージョンを見つけても、「標準ツールは展開レベルで維持する必要がある」ため、ls
システム全体に通常のバージョンとしてインストールされるか、/bin
まったくインストールされません。商用バージョンのLinuxを使用している場合は、他のバージョンのシステムツールをインストールすることは法的に禁止されています。
直接インストールできますが、この場合は新しいバージョンがそのバージョンに移動するため、/home/user/bin
これは実際に可能な範囲の唯一のソースです。
/sbin
/usr/sbin
代わりに、管理者と一般ユーザーのために予約するように設計されたツールもあります。通常、ルートのプライベートパス(たとえば)に含まれます/root/.bashrc
。
したがって、あなたは正しいです。これは主に一般ユーザーを混同せずに誘惑しないためです。