UNIX/Linuxのシェルには、そのコマンド名にしてsh,bash,csh,tcsh,ksh,zsh...など数多くあり、数多くのUNIX/Linuxコマンド以外にシェル組み込みコマンドというコマンドが存在し、それらシェル組み込みコマンドもそれぞれですが、ここではコマンド名shであるBourne Shellの組み込みコマンドとBourne Again SHell/bashの拡張組み込みコマンドに触れます。
bashを利用している場合、あまりshとbashを区別して意識しませんから組み込みコマンドもbashの組み込みコマンドと認識していても不思議ではありません。
尚、shと異なりbashは、今尚バージョンアップが継続中なので新たな組み込みコマンドが追加されたり、既存コマンドが拡張されたりすることもあるでしょう。
Bourne ShellとGNU拡張版bashは、UNIX/Linuxにおいて多く採用されています。
ちなみにshとbashのバージョンを
$ sh -version
と
$ bash -version
のように調べてみると
GNU bash, version x.x.xx(x)-release
Copyright (C) xxxx Free Software Foundation, Inc.
のように実はいずれもbashでshがbashのalias(別名)になっているケースも珍しくありません。
ちなみにaliasもれっきとしたコマンドであり、コマンドラインから
$ alias ls="ls -aF"
と一時的に有効に、またログインすると必ず読み込まれるような管理ファイルに
alias ls="ls -aF"
などと設定すれば、lsとだけ入力するだけで実行する度に[ a ]オプションと[ F ]オプションを指定したのと同じ結果になりますが、ちなみにこれはBourne Shell組み込みコマンドではなく、bashで追加拡張されたbash組み込みコマンドです。
bashの拡張は、Bourne Shellにもともとあったコマンドよりも数多く、豊富な機能が提供されており、当然、利用しているUNIX/Linuxにbashがあれば、Bourne Shellとbashの両方のシェル組み込みコマンドを利用することができます。
また、bashにはPOSIX(Portable Operating System Interface)モードがあり、POSIXモードとして指定された場合には、POSIX特殊コマンドとして動作するsh/bash組み込みコマンドもあります。
POSIXはIEEE/The Institute of Electrical and Electronics Engineers, Inc.という電子・電気技術協会が策定したOSにおけるアプリケーションインタフェースの標準化規格です。