search
LoginSignup
168

More than 3 years have passed since last update.

posted at

updated at

/bin, /usr/bin, /usr/sbin, /usr/local/bin の違いとは?

Linuxを触っているとたくさんのコマンドを使うようになります。
最初は意味不明なコマンドの一覧でしたが、慣れてくるとGUI操作が煩わしくて戻れなません。
GUIって気づくとファイルやフォルダがぐちゃぐちゃになるのはなぜだろうか?

で、dockerで立ち上げたテスト環境をいじくり回していたらbin,/usr/bin,/usr/sbinの違いって何だろうと思って調べてみました。

/bin

まずは/binですね。
これは、Linuxの基本コマンドが登録されているdirectoryのようです。
Linuxのディストリビューションによって違いがあるようですが、Linuxでしたら、だいたい同じようなコマンドが置かれているみたいですね。

/sbin

管理システムコマンド
/binコマンドはroot or user でも使えるコマンドですが、
/sbinコマンドは、rootユーザー以外は通常環境パスが通ってないので、デフォルトでは使えないコマンドです。

/usr/bin

/usr/binは、/binと違い、一般ユーザーが使うコマンドが格納されているみたいです。

/usr/sbin

/usr/sbinは管理コマンド。

/usr/local/bin

/usr/local/binは自分でインストールしたコマンドを使えるようにする場所みたいです。
Linuxのリポジトリにあるもの以外のものをインストールした時や自作のコマンドを格納しておく時に便利みたいですね。

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

とdocker公式のubuntuのPATHからわかるように
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
という優先度から、自作や外部からのインストールは/usr/local/sbin もしくは /usr/local/binに保存しておくと良さそうですね。

もしくは、同じコマンド名で、元からあるコマンドに追加機能を加えるようなやり方もありかもしれません。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
168