Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
127
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@valzer0

/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に保存しておくと良さそうですね。

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

127
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
127
Help us understand the problem. What is going on with this article?