/ binと/ usr / binの違い


83

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

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

UNIXは最初に書かれた、されたとき/bin/usr/bin、物理的に二つの異なるディスク上に置か:/bin小さな速く(より高価な)ディスク上にある、と/usr/bin大きな低速のディスク上。今、/binへのシンボリックリンク /usr/binです:彼らは本質的に同じディレクトリです。

ただしls/binフォルダを作成すると、フォルダよりもコンテンツがはるかに少なくなり/usr/binます(少なくとも私の実行中のシステムでは)。

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


それらの人は特定のマシンについて話していませんか?
シェパン

1
@tshepangをクリックし続けると、記事の「UNIX / Linuxの基本的な紹介」にアクセスできます。だから私はノーと言うだろう、彼らは特定のマシンの話ではない
-xenoterracide

3
@xenoええ、私はやりましたが、十分な長さを維持しませんでした。その場合、そのページを削除する必要があります。誤解を招く。
シェパン

3
その文書は「歴史的参照」とみなすことができます。「このドキュメントについて」ページを見ると、1993年に元々著作権で保護されていたことがわかります。参考文献を見ると、最新のソースは1997年です。その後。
ガベ。

1
この構成の歴史に興味がある人は、これを読む必要があります。lists.busybox.net
JDS

回答:


73

何?no /bin//usr/bin、FHS準拠のシステムへのシンボリックリンクではありません。例えば、 -人気のUnixがまだあることに注意して、これを無視しLinuxes /bin/sbinにシンボリックリンクされている/usr/bin(推論はあなたが必要としないということでアーチLinux上で/binあなただけのライブをブートしたいため、救出/シングルユーザーモードのためにCD)。

/bin

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

/usr/bin/

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

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

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

完全な正確さのために、一部の大学はFHSを無視する場合があります。これはLinux標準にすぎないと考えているためです。ただし、これはLSB標準の一部です。


2つのディストリビューション間で/ usr / binを共有できるということですか?ubuntu 10.04や10.10のような?
バルキ

4
@balkiいいえ、まだ正しくリンクされている必要があります。つまり、ビルド対象のライブラリの正しいバージョンを使用する必要があります。
xenoterracide

6
/bin/usr/bin(一部のリリース?)Solarisなどの一部の大学へのリンクです。
ジル

1
@balkiあなた/usr 2つの非常に似たディストリビューション間で共有できるかもしれませんが、あなたが何をしているかを知らない限り、私はそれを試していないでしょう、そしてあなたはコンピューターが起動しない、または食べない方法で失敗する実験の準備ができていますあなたのデータ。また、10.04と10.10の間には大きな違いの多くはになることをお勧めする/usr
xenoterracide

2
また、/ usr / local / binには、ディストリビューションには含まれていないが、システム全体での使用を目的としたプログラムがインストールされる場所を含めてみましょう。
ドナート

56

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

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

/usr/bin -ローカルにログインしたユーザーがアクセスすることを意図したアプリケーション/配布バイナリ

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

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

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


4
ああ、あなたが望むなら、セキュリティなどのために、これらすべてを別々のディスクまたはパーティションに置くことができます。考えは、/ usrをアンマウントすることができ、システムは基本的な機能に必要なものをすべて備えているが、システム以外のアプリケーションは実行できないということです。
ローレンス

1
私はこの数年前に知りたかったのに。これまでに見てきた最良の説明。私は一生懸命に見えたとは言えませんが、最終的に答えを知ってうれしいです。
デビッド

2
これは素晴らしい答えです。できれば、自分のポイントを10個寄付します。
両生類

/usr/binログインしているユーザーがいない場合、@ ultrasawbladeは自動的にマウント解除されますか?たとえば、LINUXが起動してログイン認証を提示するとき、/usr/binマウントされているか、またはありませんか?

1
いいえ、起動時にマウントされ、システムが異常に構成されていない限り、アンマウントしない限りマウントされたままになります。
ローレンス

17

この問題に関する何らかの「更新」:

最近、一部のLinuxディストリビューションがにマージ/binされ/usr/bin、関連/libしてい/usr/libます。時にはまた(/usr)/sbin/usr/bin(アーチのLinux)。ですので/usr、同時に利用可能になると予想されます/

2つの階層の区別は、今では不要な複雑さであると考えられています。かつて/binは起動時にしか利用できなかったアイデアでしたが、最初のramdiskがあるとこれは時代遅れになります。

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


8

Linuxの/bin/usr/bin、持っているのが一般的であるため、分離残っている/usr(微妙な方法でこの設定ブレークものの、時には)別のパーティションに。In /binは、/マウントしただけの場合に必要なすべてのコマンドです。

SolarisおよびArch Linux(およびおそらくその他)に/binは、へのシンボリックリンクがあり/usr/binます。アーチもあり/sbin/usr/sbinにシンボリックリンク/usr/bin

特に注意すべき/binは、「システム管理者」コマンドおよび/usr/binユーザーコマンドに関する記述は当てはまりません(管理者専用であるbashと考えている場合を除きls、その場合は多くのことを学ぶ必要があります)。管理者コマンドはとに/sbinあり/usr/sbinます。


1
binがシステム管理者専用だと言ったのですか?それsbinが目的です。
xenoterracide

間違って引用されました。申し訳ありませんが、速すぎて読んでいました。
バハマ

5

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.