「#!/usr/bin/bash」 としてはエラーになり、
「#!/bin/bash」 とすると動く、
との記事を書きました。
⇒ その記事はこちら
そこで、今回、
「/usr/bin」 と 「/bin」 の違いを調べてみました。
Linuxコマンドを学ぶための教科書
![]() | 新しいLinuxの教科書 |
三宅 英明,大角 祐介 | |
SBクリエイティブ |
【1】 binとは
binとは、「バイナリ」の略です。正式には「Binary code」で、実行可能なプログラムのことです。ということは、binディレクトリは、実行可能プログラムの置き場所という役割を果たすディレクトリなのです。
【2】 Linuxのディレクトリ構造
次に、Linuxのディレクトリ構造がどうなってるのかです。
以前はディレクトリ構造は、ディストリビューションや、バージョンによってかなりバラバラの状態だったようです。
そこで、規格の統一化が図られることとなりました。
その規格名を、『FHS(Filesystem Hierarchy Standard)』 といいます。
現在、ほとんどの主要ディストリビューションが、このFHSを元にディレクトリを構成しているので把握しやすくなっています。
ディレクトリ構造の一覧は、ググると出てきます。まだ見たことがない方は、一度見ておくのがよいと思われます。
【3】 /bin と、/usr/bin の違い
Linuxのディレクトリ構造を見てみると、同じ「binディレクトリ」であっても、ルートディレクトリの直下にある「/bin」と、usrディレクトリのサブディレクトリとしての「/usr/bin」とがあることが分かります。当然、別物ということです。
そして、両者の違いは、次のとおりです。
「/bin」
どのユーザでも使えるコマンドだけを入れるディレクトリで、OSの働きの根幹に関わるような役割をもつコマンドを入れることになります。
「/usr/bin」
ユーザが一般的に使用するコマンドを配置するけれども、緊急時のシステム保守に必須ではないコマンドを配置することになります。
【4】 bashの格納場所
Ubuntu 18.04LTS では、bashの格納場所は、「/bin」となっています。
⇒ こちらの記事を見てください。
【5】 結論
ですから、
シェルスクリプト冒頭1行目のシバンを、
「#!/usr/bin/bash」 としたのではエラーとなり、
「#!/bin/bash」 とすると動くのです。

当初、LinuxはGUIだけで使うつもりだったのが、徐々に引き込まれていって、今回、ディレクトリ構造を調べるまでになりました。
では、また、次の回で。