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に保存しておくと良さそうですね。
もしくは、同じコマンド名で、元からあるコマンドに追加機能を加えるようなやり方もありかもしれません。