AWS Linux インフラ

【Linux】内部コマンドと外部コマンドの違い【シェル】

Linuxコマンドの中には、内部コマンドと外部コマンドがあります。
シェルスクリプトを書くときなどに知っておいた方が良い知識かなと思うので、紹介します。

内部/外部コマンドとは?

Linuxの内部コマンドは、Linuxに標準搭載されたコマンドです。
内部コマンドのパスは、/bin配下にあります。

一方外部コマンドは、Linuxに標準搭載されていないコマンドです。
Linuxのディストリビューション(Ubuntu, CentOSなどなど)のよって搭載されたものや、ユーザーが自信でインストール・作成したものを指します。
外部コマンドのパスは、基本的に/usr/bin配下にあります。
(/usr/local/binの場合もあります)

というわけで、違いをまとめると以下の通りになります。

内部コマンド外部コマンド
Linuxに標準搭載ディストリビューションによって異なる
/bin/usr/bin または /usr/local/bin
cd, mkdir などfind, gzipなど

使い分けを意識するとき

「なるほど、内部コマンドと外部コマンドの違いはわかった」という方でも、
「この知識どこで使うねん?」と疑問に思うと思います。

確かに、日常的にLinuxを触っていて、これらコマンドを意識することはありません。

しかし、シェルスクリプトを書くときは要注意です。

シェルスクリプトの実行環境(ディストリビューション、バージョン、パッケージ...etc)が全く同じであれば、何も意識しなくても良いですが、
もしかしたら環境が違う人が使うかもしれない場合は、コマンドはきちんと絶対パスで書くべきです。

特に、外部コマンドは環境によって異なる可能性が高いです。

想定していた通りの挙動にならない可能性も出てきますので、十分に注意してください。

ここまで読んでいただき、ありがとうございました。

-AWS, Linux, インフラ
-, ,