web-dev-qa-db-ja.com

/ binと/ usr / binの違い

これをこのウェブサイトで読みましたが、意味がありません。

http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/basic/node32.html

UNIXが最初に作成されたとき、/bin/usr/binは物理的に2つの異なるディスクに存在していました:/binはより高速な(高価な)より小さなディスクにあり、/usr/binはより低速なより大きなディスクにありますディスク。現在、/bin/usr/binへのシンボリックリンクです。これらは基本的に同じディレクトリです。

ただし、ls/binフォルダーを使用すると、(少なくとも実行中のシステムでは)/usr/binフォルダーよりも内容がはるかに少なくなります。

だから誰かが違いを説明できますか?

92
whoami

何?いいえ/bin/は、FHS準拠システムの/usr/binへのシンボリックリンクではありません。これを無視する人気のあるUnicesとLinuxがまだあることに注意してください。たとえば、/bin/sbinは、Arch Linuxで/usr/binにシンボリックリンクされています(理由は、/binは、レスキュー/シングルユーザーモード用です(ライブCDを起動するだけなので)。

/bin

システム管理者とユーザーの両方が使用できるコマンドが含まれていますが、他のファイルシステムがマウントされていない場合(シングルユーザーモードなど)に必要なコマンドが含まれています。スクリプトによって間接的に使用されるコマンドも含まれる場合があります

/usr/bin/

これは、システム上の実行可能コマンドの主要なディレクトリです。

基本的に、/binには、システムが緊急修理、起動、およびシングルユーザーモードで必要とする実行可能ファイルが含まれています。 /usr/binには、不要なバイナリが含まれています。

私は、それらが別々のディスク/パーティション上にある可能性があることに注意します。/bin/と同じディスク上にある必要があります。 /usr/binは別のディスク上にあってもかまいませんが、この構成はしばらくの間壊れていることに注意してください(これが、たとえばsystemdがブート時にこの構成について警告する理由です)。

完全な正確さのために、一部のuniceはFHSを無視する場合があります。これはLinux標準にすぎないと私は思うので、私はそれがまだSUS、Posixまたはその他のUNIX標準に含まれていることを知りませんが、それはIMHOであるべきです。 [〜#〜] lsb [〜#〜] 標準の一部です。

79
xenoterracide

更新:いくつかの履歴と/usrがある本当の理由については、これを読んでください: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html 。また this


/sbin-起動、低レベルのシステム修復、またはメンテナンス(実行レベル1またはS)に必要なバイナリ

/bin-任意の実行レベルで機能する通常/標準のシステムに必要なバイナリ。

/usr/bin-ローカルにログインしているユーザーがアクセスするためのアプリケーション/配布バイナリ

/usr/sbin-/ sbinにあるものをサポートまたは構成するアプリケーション/配布バイナリ。

/usr/share/bin-Web経由でアクセスすることを意図したアプリケーション/配布バイナリまたはスクリプト、つまりApache Webアプリケーション

*local*-バイナリはディストリビューションの一部ではありません。ローカルでコンパイルするか、手動でインストールします。通常、/local/binはありませんが、常に/usr/local/bin/usr/local/share/binがあります。

59
LawrenceC

この問題のある種の「更新」:

最近、一部のLinuxディストリビューションは/bin/usr/binにマージし、関連して/lib/usr/libにマージしています。 (/usr)/sbinから/usr/bin(Arch Linux)の場合もあります。そのため、/usr/と同時に使用できると予想されます。

2つの階層の違いは、不必要に複雑になっていると考えられます。かつては、起動時に/binのみを使用できるようにするという考えでしたが、 initial ramdisk を使用すると、これは時代遅れになります。

Fedora Linux(2011)とArch Linux(2012)がこのように進んでいることを知っており、Solarisはこれを長い間(15年以上)行っています。

18
JonnyJD

Linuxでは、/bin/usr/binは別々のパーティションに/usrを配置するのが一般的であるため、まだ分離されています(ただし、この構成は微妙に壊れる場合があります)。 /binには、/のみがマウントされている場合に必要なすべてのコマンドがあります。

SolarisおよびArch Linux(およびおそらく他のLinux)では、/bin/usr/binへのシンボリックリンクです。 Archには/sbin/usr/sbin/usr/binにシンボリックリンクされています。

特に、/binは「システム管理者」コマンド用であり、/usr/binはユーザーコマンド用であるというステートメントはnot truebashlsは管理者専用であると考えている場合を除いて、この場合、多くのことを学ぶ必要があります)。管理者コマンドは/sbinおよび/usr/sbinにあります。

8
bahamat

多くのUNIXベースのシステムがあります。 Linux、AIX、Solaris、BSDなど。元の引用には、すべてのフレーバーに適用される歴史的なコンテキストが含まれています。特定の1つのシステムを見ると、異なる結果が表示されます。元の引用の最後の文は、一部のバージョンとディストリビューションにのみ固有のものです。

5
Chris Quenelle