
新Linux入門|コマンドとパスを理解しよう!組み込みと外部コマンドの違い
Linuxを使っていると、普段何気なく ls や cd、echo などのコマンドを実行していますよね。
でも実は、これらのコマンドには 「組み込みコマンド」 と 「外部コマンド」 の2種類があるんです。
この2つの違いを理解しておくと、トラブルシューティングやスクリプト作成のときに役立ちます。
この記事では、「シェルの中にあるコマンド」と「外部プログラムとして存在するコマンド」の違いを詳しく見ていきましょう。

⚙️ 組み込みコマンドとは?
組み込みコマンド(Built-in Command) は、
bash(シェル)そのものに内蔵されているコマンド です。
これらのコマンドは、外部のプログラムを実行することなく、
シェル自身が直接処理を行います。
そのため、高速に実行できる という特徴があります。
📘 主な組み込みコマンド一覧
| コマンド | 説明 |
|---|---|
| cd | ディレクトリを移動する。 |
| echo | 文字列を表示する。 |
| pwd | 現在の作業ディレクトリを表示する。 |
| export | 環境変数を設定する。 |
| unset | 変数を削除する。 |
| alias | コマンドに別名を設定する。 |
| source | スクリプトを現在のシェルで実行する。 |
| history | コマンド履歴を表示する。 |
| jobs | バックグラウンドジョブを表示する。 |
| kill | プロセスを終了する。 |
💬 これらのコマンドは「シェルに組み込まれている」ため、
/bin や /usr/bin のようなディレクトリに実行ファイルが存在しません。
⚙️ 外部コマンドとは?
一方、外部コマンド(External Command) は、
実行可能ファイルとしてシステム上に存在するプログラム です。
これらは /bin や /usr/bin、/usr/local/bin などに配置されており、
シェルがそのファイルを呼び出して実行します。
📘 主な外部コマンドの例
| コマンド | 説明 | 実行ファイルの場所(例) |
|---|---|---|
| ls | ディレクトリの内容を一覧表示 | /usr/bin/ls |
| cat | ファイル内容を出力 | /usr/bin/cat |
| grep | 文字列検索を行う | /usr/bin/grep |
| cp | ファイルをコピーする | /usr/bin/cp |
| mv | ファイルを移動・リネームする | /usr/bin/mv |
| rm | ファイルを削除する | /usr/bin/rm |
| date | 現在の日付を表示する | /usr/bin/date |
💬 外部コマンドは実際のプログラムファイルなので、
システムの「PATH」設定により検索・実行されます。
🔍 組み込みか外部かを見分ける方法
Linuxでは、コマンドが組み込みか外部かを簡単に確認できます。
それには type コマンドを使います。
📘 コマンド書式
type コマンド名📘 使用例
[suzuki@AlmaLinux ~]$ type cd
cd はシェル組み込みコマンドです
[suzuki@AlmaLinux ~]$ type ls
ls は `ls --color=auto' のエイリアスです
ls は /usr/bin/ls です💬 このように、cd は組み込み、ls は外部コマンドであることがわかります。
また、ls はカラー表示のためにエイリアス(別名設定)が使われていることも表示されています。
🧭 whichコマンドでパスを確認する
whichコマンド は、外部コマンドがどの場所にあるかを調べるコマンドです。
つまり、システムがどのパスからコマンドを探しているかを確認できます。
📘 コマンド書式
which コマンド名📘 使用例
[suzuki@AlmaLinux ~]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls💬 この出力結果から、ls は /usr/bin/ls にあることがわかります。
また、ls にエイリアスが設定されていることも表示されます。
⚙️ PATH環境変数とコマンド検索
シェルが外部コマンドを実行するとき、
どこからその実行ファイルを探すのかを決めているのが PATH環境変数 です。
📘 PATHの確認
[suzuki@AlmaLinux ~]$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin💬 上の出力では、/usr/local/bin → /usr/bin → /bin の順に検索されることがわかります。
シェルはこの順番で実行ファイルを探し、最初に見つけたものを実行します。
🧩 組み込みコマンドと外部コマンドの違いまとめ
| 比較項目 | 組み込みコマンド | 外部コマンド |
|---|---|---|
| 実体 | シェル内部で動作 | 実行ファイルとして存在 |
| 実行速度 | 高速(シェル内で処理) | やや遅い(外部プログラム起動) |
| PATHの影響 | 受けない | PATHに依存する |
| 確認方法 | type コマンド | type / which コマンド |
| 代表的な例 | cd, echo, pwd, export | ls, cat, grep, cp |
✅ まとめ
- 組み込みコマンドは bashの内部で動作 し、軽量で高速。
- 外部コマンドは 実行ファイルとしてシステム上に存在。
- type コマンドで種類を確認、which コマンドで場所を確認できる。
- PATH環境変数の設定によって、外部コマンドの検索順が決まる。
💬 Linuxでコマンドを使いこなすためには、
「どのコマンドがどの層で動いているのか」を理解することがとても大切です。
これを知っておくと、トラブル時の切り分けや設定変更もスムーズになります。
