新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, exportls, cat, grep, cp

✅ まとめ

  • 組み込みコマンドは bashの内部で動作 し、軽量で高速。
  • 外部コマンドは 実行ファイルとしてシステム上に存在
  • type コマンドで種類を確認、which コマンドで場所を確認できる。
  • PATH環境変数の設定によって、外部コマンドの検索順が決まる。

💬 Linuxでコマンドを使いこなすためには、
「どのコマンドがどの層で動いているのか」を理解することがとても大切です。
これを知っておくと、トラブル時の切り分けや設定変更もスムーズになります。