bin
ディレクトリはバイナリファイルの保存に使用される、つまりそのディレクトリ内のファイルには0
と1
しかないというチュートリアルをたくさん見ました。
ただし、多くの場合、bin
には0
と1
だけではないファイルが表示されます。
たとえば、Django-admin.py
ディレクトリの下のxx/bin/
:
#!/usr/bin/env python
from Django.core import management
if __name__ == "__main__":
management.execute_from_command_line()
いいえ、bin
ディレクトリはバイナリファイルのみを保存するためのものではありません。これは、主に実行可能ファイルを保持するためのものです。
歴史的に、さまざまなスクリプト言語で記述されたスクリプトが一般的になる前は、bin
ディレクトリwouldには、ソースコードではなく、主にバイナリ(コンパイルまたはアセンブル)非テキストファイルが含まれていました。 bin
のファイルについての今日の主なことは、それらが実行可能であることです。
実行可能ファイルscriptは、インタープリターによって解釈されるテキストファイルです。この例のスクリプトはPythonスクリプトです。実行すると、python
インタープリター($PATH
のどこかにある別の実行可能ファイル)が使用されます。それを実行します。
また、余談ですが、テキストファイルは、バイナリファイルと同様に、ゼロと1で構成されるファイルです。
「バイナリファイル」はbin
ディレクトリの語源ですが、現在の意味ではありません。元々は、コンパイルされたプログラムのように、バイナリファイル用でした。これは、メモリにロードしてコードとして実行できるマシンコードを含むファイルです。しかし、このプログラムがマシンコードであろうと、他のプログラムによって解釈されるスクリプトであろうと、すぐに実行可能なプログラムが含まれるようになりました。逆に、直接実行できないマシンコードを含むファイルは/bin
ではなく/lib
に保存されます( library の場合)。
Filesystem Hierarchy Standard から:
/ binには、システム管理者とユーザーの両方が使用できるコマンドが含まれていますが、他のファイルシステムがマウントされていない場合(シングルユーザーモードなど)に必要です。スクリプトによって間接的に使用されるコマンドが含まれる場合もあります。
つまり、重要なプログラム実行可能ファイルが含まれています。必須ではないプログラムを含む他のフォルダーには、/ usr/bin、/ usr/local/binなどがあります。
スクリプトもビットとバイトとして保存されます。自分で試してみてください。
xxd -b /usr/bin/zcat