今日以前は、端末を使用してディレクトリの内外に移動し、コマンドを使用してファイルの日付を変更しましたtouch
。私のMacに興味深いスクリプトをインストールし、chmod 755
そのファイルを使用して実行可能にした後、端末のすべての機能を実現しました。
しかし、私は/usr/local/bin
それが何であるか疑問に思います。/usr/
私はそれがコンピュータユーザーであると仮定します。しかし、なぜ/local/
そこにいるのかよくわかりません。当然Local Computerの略なのですが、コンピュータ(あるいはサーバ)にあるので必ず必要なのでしょうか?/usr/bin
いいじゃないですか?
それは何ですか/bin
?この領域が通常端末にスクリプトをインストールするために使用されるのはなぜですか?
答え1
/usr/local/bin
一般ユーザーが実行できるプログラムに適しています。
- この
/usr/local
階層は、システム管理者がソフトウェアをローカルにインストールするときに使用されます。 - システムソフトウェアが更新されたら上書きしないでください。
- ホストグループ間で共有できるプログラムやデータに使用できますが
/usr
。 /usr/local
ローカルにインストールされているソフトウェアは、ソフトウェアを交換またはアップグレードするためにインストールしない限り、/usrではなく/usrに配置する必要があります/usr
。
このソースは説明に役立ちます。ファイルシステム階層標準より深いレベルで。
あなたは見つけることができます使用と乱用に関するこの記事/usr/local/bin
また、非常に興味深いです。
答え2
/usr/、コンピュータユーザーだとします。
閉鎖。
Unixはもともとマルチユーザーオペレーティングシステムだったので、「ユーザー」ではなく「ユーザー、"複数型。
AT&T Unixの移行システムVバージョン4(SVR4)は1988年にリリースされ、ユーザー管理ツールはデフォルトで既存の場所/home
であるユーザーホームディレクトリを作成しました/usr
。 ¹あなたの$HOME
ディレクトリは/usr/jfw
次の場所にあります。システム3ボックス。
/usr
/usr/bin
経験によれば、/usr/lib
ホームディレクトリを分離するのは良いシステム管理方法であるため、/home
SVR4のポリシーの変更により、現在私たちが属していると考えているすべての項目はそのまま残ります/usr
。
/usr
この名前を維持する理由はまだあります。これは、通常の対話型使用をサポートするのに十分なほど、システムが起動するまで使用する必要のないファイルが残っているためです。つまり、残っているのはユーザー- オペレーティングシステムの主要部分。これは/usr
それが別の物理ボリュームにある可能性があることを意味し、当時は良いことでした。92MB洗濯機サイズのハードドライブ。
初期のUnixシステムは、何らかの理由で/usr
ボリュームをマウントできなかった場合でも、シングルユーザーモードで起動できるようにコアオペレーティングシステムファイルを慎重に保存しました。/usr
ルートボリュームには、/usr
ボリュームをオンラインに戻すのに十分なツールが含まれています。
一部のUnixバージョンでは、小さな組み込みシステムでも既存のルートボリュームファイルを収容するのに十分なスペースがあるため、この古いデザイン原則を無視しています。そしてこれらすべてが/usr
一つのロールにあります。 ³Red Hat Enterprise Linux、Solaris、およびCygwinシンボリックリンクを使用して、/bin
これらのディレクトリ間に違いがなくなります。/usr/bin
/lib
/usr/lib
.../local/...はっきりとローカルコンピュータを表します...
はい。これは、/usr/local
以下のファイルが対応する単一のシステムにのみ適用される必要があることを示しています。共通ファイルは他の場所に保存する必要があります。
これはまた、Unixシステムがすべて標準化されてから数十年前に一般的に使用されていた方法に由来します。同様に、当時のハードドライブはかさばり、価格が非常に高く、今日の標準と比較してストレージスペースがほとんどありませんでした。コストとディスク容量を節約するために、Unixシステムでいっぱいのコンピュータルームでは、ほとんど/usr
のコンテンツをNFSや他のネットワークファイル共有プロトコルで共有するため、各システムに独自の冗長コピーは必要ありません。 ⁴単一システム固有のファイルボックスは下に配置され、/usr/local
別々のボリュームになります/usr
。
これらの歴史的遺産のため、手動で/usr/local
インストールすると、ほとんどのサードパーティのUnixソフトウェアがまだデフォルトのインストールとして使用されます。ほとんどのこれらのソフトウェアでは、パッケージを他の場所にインストールできますが、選択しないと、より具体的な目的を持つ他の一般的なインストール場所を妨げない安全なデフォルト値が得られます。
ソフトウェアを他の場所にインストールするには、その理由があります。 AppleのmacOSチームは、ビルドbash
時にこれを行います。GNU Bashのソースコード。 Bashは/
。/usr/local
/bin
もう1つの例は、以前のLinuxシステムがGUIソフトウェアを分離し、/usr/X11R6
既存のコマンドラインとは別に保ったことです。curses
ソフトウェアに基づいています。 .⁵/usr/local
でデフォルトのプレフィックスをオーバーライドするだけ/usr/X11R6
です。
/ binとは何ですか?
「バイナリ」の略語ですが、この場合は「プレーンテキストではないファイル」を意味します。このファイルのほとんどは実行可能ファイルUnixシステムでは、2つの用語が一部の集団では同義語になりました。 (「フレッドさん、私のためにRHEL 7バイナリを作ってください」)
/etc
Unix システムのテキストファイルは、などの/usr/include
他の場所にあります。/usr/share
昔はシェルスクリプト(通常のテキストファイル)もディレクトリの外bin
に保存されていましたが、この境界線はぼやけていました。今日のbin
ディレクトリには、厳密に「バイナリ」であるかどうかにかかわらず、通常はあらゆる種類の実行可能ファイルが含まれています。 ⁶
脚注と余談:
SVR4以前のユーザー管理ツールのプリミティブな性質は、この
HOME=/usr/$NAME
スキームがソフトウェアツールによってデフォルトに適用されず、慣例でのみ文書化されていることを意味します。この内容は4〜8ページで確認できます。AT&T Unix System V バージョン 3.2 システム管理者ガイド
/usr/$NAME
:ここでは、AT&TがSVR4より前の最後の主要なUnixバージョンで以前の方法を推奨していることがわかります。以前のUnixシステムでは、システム管理者が自分に適した他のソリューションを選択することは非常に一般的でした。人は人なので、さまざまな解決策が発明されています。
/home/$NAME
標準になる前に私が遭遇した一つの計画は/u/$NAME
。私が使用する別のシステム1990年代初頭にはユーザーが多すぎてすべてのホームディレクトリを1つの物理ボリュームに入れることができなかったため、などの方式を使用したことを覚えてい
/u1/$NAME
ます/u2/$NAME
。ホームディレクトリがどのディスクに配置されるかは、アカウントを作成するときにどのディスクにスペースがあるかによって異なります。起動中にmacOSボックスを長押しすると、シングルユーザーモードで起動できますCmd-S。画面が黒くなると、手を離すと薄い灰色のテキストが表示されます。これは端末で実行しているのと同じですが、GUIがまだ起動していないため、フルスクリーンを占めます。
気をつけて、あなたは
root
...シングルユーザーモードを終了してマルチユーザーGUIモードで起動し続けるには、シングルユーザールートプロンプトに「exit」と入力します。
Unixy オペレーティングシステムはまだ現れる
/usr
実際、最近では重要なシングルユーザーモードファイルを除いては効果がありません。一度は/usr
、ZFSボリュームに移動してFreeBSD 9システムを起動できないようにしたことがあります。 FreeBSD 10まではZFS-on-root機能が存在しなかったことを忘れてキャッチ22:オペレーティングシステム/usr
をインストールするにはファイルが必要です/usr
!これは十分に悪いですが、
/usr
FreeBSD 9がまだシングルユーザーブート機能を維持していた場合は、それを修正できました。シングルユーザーモードで起動もインストールもできない/usr
ため、どのような方法でも伝統に違反していることは明らかです。システムを復元するには、回復CDから起動する必要がありました。これも私たちが得るものです
/usr/share
。これは、異なるプロセッサタイプを使用するUnixシステム間で共有できる(たとえば、NFS経由で)ファイルを分離します。通常、テキストファイル:マニュアルページ、辞書など「X11R6」はこのバージョンを表します。Xウィンドウシステムこのルールが普及したとき、Linux GUIの基礎を提供しました。 X11R6 が Linux システムに置き換えられると、Linux システムは通常 GUI ソフトウェアの分離を停止します。X組織。
元のUnixシステム
/etc
は/bin
。
答え3
/usr/local/bin
最新のMacオペレーティングシステム(BSDベース)のUNIXに似たルートを示しています。
- 「usr」はUNIXシステムリソースを表します。これにはシステムプログラムとライブラリが保存されます。
- 「ローカル」とは、標準のディストリビューションには付属しておらず、通常サイトごとにコンパイルおよび保守されるリソースを意味します。
- 「bin」は、バイナリコンパイルされた実行可能ファイルを表します。
これは、UNIXがLinuxおよびBSDとして最初に実装されてから変更されましたが、ルールはそのまま残ります。これで、/usr/bin
「基本」またはコアプログラムとライブラリに使用され、アドインおよび/usr/local/bin
重要でないプログラムとライブラリに使用されます。
答え4
/usr/local/bin
実行可能ファイル、特にオープンソースファイルの最も人気のあるデフォルトの場所です。
/usr
ただし、これは90年代初頭にUnixシステムのオペレーティングシステムに属するファイル階層を含めるように標準化されているため、そのオペレーティングシステムを使用する複数のシステムで共有される可能性があるため、これは間違った選択かもしれません。
これらのファイルは静的であるため、/usr
ファイルシステムを読み取り専用でマウントできます。/usr/local
この標準は基本的に設計されているので非共有であるため、基本的なコンパイルを可能にするために読み書きが必要であり、オペレーティングシステムの一部ではないため無効になっています。/opt/local
似たようなものを選ばなかったのは残念です...