Linuxにバイナリを配置する場所がこれほど多くあるのはなぜですか?少なくとも次の5つがあります。
- /bin/
- /sbin/
- /usr/bin/
- /usr/local/bin/
- /usr/local/sbin/
そして、私の私書箱には、これらのいくつかに対する書き込み権限がありません。
どのタイプのバイナリがこれらbinのどれになりますか?
~/bin/個人的なもののために。
                /usr/local/binか?
                Linuxにバイナリを配置する場所がこれほど多くあるのはなぜですか?少なくとも次の5つがあります。
/bin//sbin//usr/bin//usr/local/bin//usr/local/sbin/そして、私の私書箱には、これらのいくつかに対する書き込み権限がありません。
どのタイプのバイナリがこれらbinのどれになりますか?
~/bin/個人的なもののために。
                /usr/local/binか?
                回答:
/bin(および/sbin)は/、大きな/usrパーティションなどをマウントする前に小さなパーティションに配置する必要があるプログラムを対象としていました。最近では、主にのような主要なプログラムの標準的な場所として機能します/bin/shが、元の意図は、たとえば小さな組み込みデバイスへのインストールにも関連する場合があります。
/sbinは、とは異なり、マウント/binする前に必要なシステム管理プログラム(通常のユーザーは通常使用しません)用です/usr。
/usr/bin 配布管理された通常のユーザープログラム用です。
ある/usr/sbin同じ関係に/usr/binよう/sbinに持っています/bin。
/usr/local/binローカルでコンパイルされたパッケージなど、配布パッケージマネージャーによって管理されていない通常のユーザープログラム用です。/usr/bin将来のディストリビューションのアップグレードでは、警告なしに変更または削除される可能性があるため、インストールしないでください。
/usr/local/sbin、あなたはおそらくこの時点で推測できるようにである/usr/local/binよう/usr/sbinに/usr/bin。
さらに、/optモノリシックの非配布パッケージ用のものもありますが、適切に統合される前に、さまざまな配布がGnomeとKDEをそこに置いていました。通常、Oracleなどの大規模で動作の悪いサードパーティパッケージ用に予約する必要があります。
~/binそのディレクトリをユーザーとしてPATHに追加します...注のおかげで、私は真剣に古いコメントを削除しました。
                    PATH、変数、そしてecho $PATH私のために示し/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gamesにおける実行可能ということを意味し、/usr/local/binものをオーバーテイクの優先順位がで/usr/binている中のものよりも優先されます/bin。
                    Wikipedia のFilesystem Hierarchy Standardエントリは、私が持っていたときに同じ質問に答えるのに役立ち、それに非常に説明的な表があります。
そのページ1からの抜粋:
/bin Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp. /usr/bin Non-essential command binaries (not needed in single user mode); for all users. /usr/local Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin, lib, share /usr/sbin Non-essential system binaries, e.g., daemons for various network-services. /sbin Essential system binaries, e.g., fsck, init, route.
1 2019年6月19 日に取得; パーマリンク。
sbinディレクトリは、一般的にシステム管理のみなプログラムが含まれています。通常のユーザー向けのプログラムは絶対に使用しないでください。
起動中にいくつかのプログラムが必要になり、最終的に/bin/またはになり/sbin/ます。これらは、ファイルシステムをマウントする前に使用可能である必要があります。以下のようなものmount、およびfsckファイルシステムをチェックしてマウントする必要があるが存在する必要があります。
ほとんどのパッケージプログラムは、/usr/bin/とになり/usr/sbin/ます。これらは、ルートファイルシステム以外のファイルシステム上にある場合があります。場合によっては、ネットワークにマウントされたドライブ上にある可能性があります。
ローカルのプログラムやスクリプトがで所属/usr/local/bin/と/usr/local/sbin/。これにより、それらは明らかに非標準であり、おそらく現場でのみ利用可能です。
詳細についてman hierは、ディストリビューションの推奨ファイルシステム階層の説明を提供するコマンドを実行してください。ウィキペディアのファイルシステム階層について読むこともできます。
1970年代にUNIXは、すべての公式の実行可能ファイルが/binあり/usr/bin、ユーザーのホームディレクトリ(例:)の下の場所で、他のユーザー/usr/dmrにとっても関心のある可能性のある独自のバイナリを保存できます。
このオープンの結果は/usr/bin、ドキュメント化されていないソフトウェアのジャンクヤードであったためStephen Bourne、cron script毎晩新しいバイナリをチェックし、ドキュメントを持たない、またはドキュメントを更新せずに更新されたすべてのバイナリを削除するものを書きました。
1970年代後半/usr/binに、OSベースのディストリビューションに統合され/usr/local/bin、以前のopenの目的で使用されるようになりました/usr/bin。
しばらくして、システム管理者はネットワーク(たとえばUSENET)からインポートされたソフトウェア/usr/local/binを保管non-localし、UNIX企業は/usr/bin再び同じ間違いを繰り返すことを好まなかったため、1987年頃にすべてのUNIX企業が同意したファイルシステム階層会議がありましたあきらめて代わり/usr/local/binに使用し/opt/<vendor>/binます。
残念ながら、Linuxディストリビューションはこの決定に従わなかった。...
/optUNIX についてではなく、Linuxについてであった質問に答えようとさえしません。これは、「車に4つの車輪があるのはなぜですか」と答えるようなものです。「自転車には2つあります!悲しいことに、車にはありません。」車は4を持っている理由を理解OPを助けない
                    
/usr/sbin/。