web-dev-qa-db-ja.com

Linuxファイルシステム

Linuxでのファイルの場所の規則は何ですか?これまでのところ、私はなんとか推測することができました:

/ proc(実行中のプロセスへの参照)

/ dev(すべてのハードウェアへの参照)

/ etc(構成ファイル)

/ home(ホーム)

/ mnt(マウントされたデバイス)

/ media(CD、USBディスクなどのリムーバブルデバイス)

...しかし、他の部分はまだ不明です、例えば:

ダウンロードしたソースはどこに置きますか?

/ usr/src

/ usr/local/src

コンパイルされたプログラムはどこに置きますか?

/ bin

/ usr/bin

/ usr/local/bin

/ bin/ sbinの違いは何ですか?

分布はどのように異なりますか?

これらは1つの質問ではないことは理解していますが、すべて一緒に回答する必要があるように思われます。うまくいけば、他の人も混乱しています。

13
pufferfish

あなたは読みたいかもしれません ファイルシステム階層標準 ;便利なリファレンスです。

あなたのホームディレクトリはそのほとんどが行くべき場所です。あなたがシステム管理者ではないふりをします。あなたがシステム上のアカウントを持っているさらに別の人のふりをします。ホームディレクトリ内、例: /home/pufferfish、あなたは好きなことをすることができます。 /home/pufferfish/bin/home/pufferfish/lib、および/home/pufferfish/srcはすべて従来の選択肢ですが、実際には問題はありません。

コンパイルされたプログラムの場合、使用するディレクトリ/ディレクトリに関係なく、スクリプトまたは実行可能ファイルのパス全体を入力せずに実際に実行できるように、それがPATH上にあることを確認してください。

分布はそれほど違いはありません。あるパッケージマネージャーが/usr/binにバイナリをインストールし、一部のライブラリが別の場所に移動し、別のシステムがさらに別の場所にインストールする可能性があることがわかりました。私は通常、物事が毎回どこに行くのかを見つけるためにいくつかの調査をしなければなりません。

14
Nikhil Chelliah

たまたま、UnixライクなOSの世界には、ほとんどのUnixベンダーが従うベストプラクティスを説明するFilesystem HierarchyStandardと呼ばれる標準があります。 * nix環境で多くの時間を費やす場合は、よく読んでおく価値があります。

ファイルシステム階層標準

あなたの質問への回答:

/ usr/srcと/ usr/local/srcの両方が機能します。あなたの選択。ただ維持することは一貫しています。

/ binは、ユーザーに必要なコマンド用です。私はそこにカスタムバイナリを配置しません。

/ sbinは、システムバイナリ(通常はsysadminのもの)用です。起動用のものとfsutilsが含まれています。

/ usr/binは、ほとんどのユーザーコマンドが存在する場所であり、通常、ほとんどのLinuxパッケージ管理システムは、バイナリまたは少なくともバイナリへのシンボリックリンクをここに配置します。

/ usr/local/binは、そのマシンに固有の独自のコンパイル済みコードを配置するのに安全な場所です。

6
Mark Turner

多分あなたはこれらを見てみるべきです:

alt text

alt text

6
n00ki3

/ usr/local /は、このシステムでコンパイルされたソフトウェア用です。/usr /に似ていますが、パッケージからインストールされていない点が異なります。

/ sbin/vs/bin /(および/ usr/sbin/vs/usr/bin):sはスーパーユーザーを表します。通常のユーザーが気にするべきではなく、多くの場合、実行する権限を持ってはならないプログラム