/ bin、/ sbin、/ usr / bin、/ usr / sbin、/ usr / local / bin、/ usr / local / sbinの違い


282

コマンドファイルのあるディレクトリが6つあります。これらは/bin/sbin/usr/bin/usr/sbin/usr/local/bin/usr/local/sbin

これらの違いは何ですか?自分でスクリプトを作成している場合、どこに追加すればよいですか?


関連する:



あなたの質問は、質問に近い@Keelan私は一年前に投稿さ+:askubuntu.com/questions/830074/...
WinEunuuchs2Unix

回答:


348

これについては、LinuxFilesystem Hierarchy Standard(FHS)を参照してください。

  • /bin/usrパーティションがマウントされる前に使用可能なバイナリの場合。これは、非常に初期のブート段階で使用される些細なバイナリ、またはシングルユーザーモードのブートで使用可能にする必要があるバイナリに使用されます。以下のようにバイナリを考えるcatlsなど、

  • /sbin :同じですが、スーパーユーザー(root)特権が必要なバイナリの場合

  • /usr/bin:最初と同じですが、一般的なシステム全体のバイナリ用です。

  • /usr/sbin :上記と同じですが、スーパーユーザー(root)特権を持つバイナリーが必要です。


独自のスクリプトを作成している場合、これらをどこに追加すればよいですか?

上記のどれでもない。/usr/local/binまたは/usr/local/sbinシステム全体で利用可能なスクリプトを使用する必要があります。localパスは、それがシステムパッケージ(これはによって管理されていないこと、エラーのDebian / Ubuntuのパッケージ用)。

以下のためのユーザースコープのスクリプト、使用~/bin(自分のホームディレクトリにある個人用のbinフォルダ)。

FHSは次のように述べてい/usr/localます。

このホスト固有のローカルデータの3次階層。一般的に、例えば、さらにサブディレクトリがありbin/lib/share/


/ binは、すべてのコアファイルがインストールされる場所です。ls、cat、pwdなど?では、ユーザーがインストールしたアプリは/ usr / binにありますか?/ usr / binにあるべきものの例は何ですか?
パトシパトシ14

1
スクリプトを配置/binすると問題が発生しますか?私はあなたの答えに従ってスクリプトを移動しましたが、私はまだ興味があります
-Rumesh

5
@RumeshSudhaharanは、パッケージ管理によって管理されているため、実行しないでください。他のパッケージもそのパスを使用する場合、ファイルを上書きします。パッケージ内のファイルが重複することはありません(少なくとも公式リポジトリの場合)。したがって、ローカルパスにインストールする場合はより安全です。また、それはあなた自身の便利さと安全のためだけです。ローカルパスでは、このような悪い方法でシステムを台無しにすることはできず、システムバイナリを誤って置き換えることもできません。
gertvdijk

8
エラーページの説明が好きです:Severity:Serious Certainty:Certain
cutrightjm

1
私は/ usr / local / binにいくつかのファイルを入れていると私はそれらを実行することができ、しかし、私はそれらを編集することはできません、ls -la何も示していない
M.レザNasirloo

6

私は1年以上前に自分自身に同様の質問がありました:bashスクリプトを配置するのに最適なディレクトリですか?

バイナリのシステムディレクトリ

man hier(階層)はすべてのディレクトリをリストします。バイナリ専用のものを取得するには、次を使用します。

$ man hier | grep -E 'bin$|sbin$|^.{7}(/bin)|^.{7}(/sbin)' -A2

       /bin   This directory contains executable programs which are needed in single user
              mode and to bring the system up or repair it.

--
       /sbin  Like  /bin,  this  directory  holds commands needed to boot the system, but
              which are usually not executed by normal users.

--
       /usr/X11R6/bin
              Binaries  which  belong  to the X-Window system; often, there is a symbolic
              link from the more traditional /usr/bin/X11 to here.
--
       /usr/bin
              This  is the primary directory for executable programs.  Most programs exe
              cuted by normal users which are not needed for booting or for repairing the
--
       /usr/local/bin
              Binaries for programs local to the site.

--
       /usr/local/sbin
              Locally installed programs for system administration.

--
       /usr/sbin
              This directory contains program binaries for  system  administration  which
              are  not  essential  for the boot process, for mounting /usr, or for system

独自のスクリプトを配置する場所は?

すべてのユーザーがスクリプトにアクセスするために、スクリプトをに入れることができます/usr/local/binsudoここでファイルを追加/変更するにはアクセスする必要があることに注意してください。参照:カスタムLinuxスクリプトを配置する標準的な場所はありますか?

独自のユーザーIDの場合は、スクリプトをに入れます/home/YOUR_NAME/bin。最初にこのディレクトリを作成し、ターミナルを再起動してでパスを自動的に設定する必要があることに注意してください~/.profile。参照:/ home / username / binを$ PATHに追加するには?


私が知っていること私は知らない

私はAsk Ubuntuでもっと複雑なbashスクリプトのいくつかを取り、インストールスクリプトでそれらをセットアップすることを考えていgithubます。以下にいくつか例を示します。

私はと思うのスクリプトがインストールされなければならない/usr/binの$ PATHにあるが、私はまだ適切な場所にはよく分かりません。


1
あなたの努力に感謝しますが、「私が知らないことを知っている」という部分を除いて、あなたはgertvdijkの答えを繰り返しました。
ダンゼル

1
@danzel重要な部分は、man hiergertvdijkの答えが対処しなかったセクションだと思います。つまり、コマンドラインでディレクトリ階層構造を取得できます。Webでの読み取りに頼る必要はありません(つまり、ここ)。
WinEunuuchs2Unix

1
それは興味深い情報です、私は同意します。しかし、gertvdijkはすでにFilesystem Hierarchy Standard(man hierIMOの情報的に不十分な抜粋)に言及しています。しかし、これは私の個人的な意見かもしれません。
ダンゼル

@danzel私は、ウェブサイトが私たちのハードディスクにあるものよりもはるかに詳細な分析を持っていることに同意します。インターネットを使わずに情報がハードドライブにあることを指摘しようとしています。ウィキペディアのリンクに加えて、引用されている リンクが欠落して/usr/X11R6/binおり、/usr/local/binこれはに含まれていman heirます。
WinEunuuchs2Unix

@ WinEunuuchs2Unix、最後のパラ; /usr/local/binあなたがパッケージマネージャーではないのに、どうしてですか?
パセリエ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.