bin,usr,sbinなど、パスによるコマンドの違い

Linuxコマンドの実行ファイルは、/bin以下にあるものや、/usr/local以下にあるものなど、コマンドによってパスに違いがあります。なぜこのように分類されていて、どのように分類しているのかを少しご紹介します。

/bin以下のコマンドは基本コマンド

/bin以下にあるコマンドは、そのLinuxディストリビューションにとって基本的なコマンドを指します。/bin以下にどのようなコマンドがあるのかは、そのディストリビューションによって異なります。この/bin以下のコマンドに格納されているコマンドのことを、基本コマンドと呼ぶそうです。

ディストリビューションによって含まれていませんが、ここにmakeやwhoコマンドなどが/bin以下に格納されている場合が多いようです。

/usr/binと/usr/sbinの違い

/usr以下に、/usr/binと/usr/sbinの2種類があります。/usr/bin以下に実行ファイルがあるコマンドは、ユーザーコマンドと呼ばれ、一般ユーザが使うコマンドです。

/usr/binが一般ユーザのコマンドに対して、/usr/sbinは管理コマンドです。ただ、sendmailの実行ファイルが、/usr/sbin以下に格納されているなど、何が管理コマンドなのか、コマンドの内容だけでは判断し難い場合があります。

ユーザーコマンドと管理コマンド、また基本コマンドの分類に関しては、正直コマンドの内容からだけではどこに実行ファイルをが格納されているのか正直判断しにくいでしょう。Cygwinに関しては、/binと/usr/binのコマンドが全く同一など、あまり神経質にならずに、目安くらいにとどめておいた方が良いでしょう。普段使っているコマンドのフルパスが知りたい場合は、whereisコマンドを使用します。

追加するコマンドは/usr/local/bin に

/usr/local/bin以下のコマンドは、基本的には追加で導入するコマンドを格納する場所です。パッケージ管理でコマンドを追加する場合は、/usr/bin、/usr/sbinに追加されている場合がありますが、自分でコマンドをインストールする場合は、/usr/local/bin以下にインストールするのが、一般的です。

もし、コマンドのパスの設定で、/usr/binよりもで、/usr/local/binの方が優先的に使われるように設定している場合は、/usr/local/binにコマンドの最新版を入れるだけで、最新のコマンドを利用することができます。もし、最新のコマンド版のコマンドが正常に動作しなくても、/usr/local/bin以下の実行ファイルを削除するだけで元に戻すことができます。

また、自作のコマンドも/usr/local/binに格納することが推奨されています。