シェルインタプリタである csh(1)、ksh(1)、および sh(1) には、特殊の組み込みコマンドが用意されています。シェルは、case, for、foreach、function、if、repeat、select、switch、until、および while をコマンドとして解釈します。これらのコマンドの詳細は、各シェルのマニュアルページの「コマンド」の項に記載されています。以下に示すコマンドは、効率の改善とコマンド間でのデータ共有を可能にするため、シェルに組み込まれています。詳細については、各コマンドのマニュアルページを参照してください。
| コマンド | 組み込み対象シェル | 
|---|---|
| alias | csh, ksh | 
| bg | csh, ksh, sh | 
| break | csh, ksh, sh | 
| case | csh, ksh, sh | 
| cd | csh, ksh, sh | 
| chdir | csh, sh | 
| continue | csh, ksh, sh | 
| dirs | csh | 
| echo | csh, ksh, sh | 
| eval | csh, ksh, sh | 
| exec | csh, ksh, sh | 
| exit | csh, ksh, sh | 
| export | ksh, sh | 
| fc | ksh | 
| fg | csh, ksh, sh | 
| for | ksh, sh | 
| foreach | csh | 
| function | ksh | 
| getopts | ksh, sh | 
| glob | csh | 
| goto | csh | 
| hash | ksh, sh | 
| hashstat | csh | 
| history | csh | 
| if | csh, ksh, sh | 
| jobs | csh, ksh, sh | 
| kill | csh, ksh, sh | 
| let | ksh | 
| limit | csh | 
| login | csh, ksh, sh | 
| logout | csh, ksh, sh | 
| nice | csh | 
| newgrp | ksh, sh | 
| notify | csh | 
| onintr | csh | 
| popd | csh | 
| ksh | |
| pushd | csh | 
| pwd | ksh, sh | 
| read | ksh, sh | 
| readonly | ksh, sh | 
| rehash | csh | 
| repeat | csh | 
| return | ksh, sh | 
| select | ksh | 
| set | csh, ksh, sh | 
| setenv | csh | 
| shift | csh, ksh, sh | 
| source | csh | 
| stop | csh, ksh, sh | 
| suspend | csh, ksh, sh | 
| switch | csh | 
| test | ksh, sh | 
| time | csh | 
| times | ksh, sh | 
| trap | ksh, sh | 
| type | ksh, sh | 
| typeset | ksh | 
| ulimit | ksh, sh | 
| umask | csh, ksh, sh | 
| unalias | csh, ksh | 
| unhash | csh | 
| unlimit | csh | 
| unset | csh, ksh, sh | 
| unsetenv | csh | 
| until | ksh, sh | 
| wait | csh, ksh, sh | 
| whence | ksh | 
| while | sh, ksh, sh | 
上記のコマンドに対しては、 入出力のリダイレクトが可能です。 ファイル記述子 1 は、デフォルトの出力位置です。 ジョブ制御が有効なときには、さらにいくつかの特殊コマンド がシェル環境に追加されます。
組み込みの予約コマンド以外に、 sh では以下のコマンドが使用されます。
コマンドは何もせず、影響は何もありません。 終了状態 0 が返されます。
filename で示すファイルからコマンドを読み取り、それを実行し、戻ります。 PATH で指定された検索パスを使用して、 filename が存在しているディレクトリを見つけます。
組み込みコマンドは C シェル内で実行されます。 組み込みコマンドが、パイプラインの いずれかの構成要素 (最後の要素を除く) として現われると、 サブシェル内で実行されます。 組み込みの予約コマンド以外に、 csh では以下のコマンドが使用されます。
NULL コマンド。このコマンドは解釈されますが、実行はされません。
入出力のリダイレクトが可能です。 特に断わりのない限り、 出力はファイル記述子 1 上に書き込まれ、 構文エラーがなければ終了状態は 0 です。
1 つまたは 2 つのアスタリスク (*) が先頭に付加されているコマンドは、 以下のような特殊な処理を受けます。
コマンドが完了しても、 コマンドの直前の 変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、 それを含むスクリプトは中止されます。
変数代入形式で、 ** から始まるコマンドに続くワードは、 変数代入と同一の規則で展開されます。 つまり、 チルド置換は = 符号の後に実行され、 ワード分割とファイル名生成は実行されません。
組み込みの予約コマンド以外に、 ksh では以下のコマンドが使用されます。
パラメタの展開だけを行います。
file 全体を読み取ってからコマンドを実行します。 コマンドは現在のシェル環境において実行されます。 PATH で指定された検索パスを使用して、file が存在しているディレクトリを見つけます。 引数の arg は (指定されていれば) 定位置パラメタになります。 引数を指定しないと定位置パラメタは変更されません。 終了状態は、 最後に実行されたコマンドの終了状態です。
intro(1), alias(1), break(1), cd(1), chmod(1), csh(1), echo(1), exec(1), exit(1), find(1), getoptcvt(1), getopts(1), glob(1), hash(1), history(1), jobs(1), kill(1), ksh(1), let(1), limit(1), login(1), logout(1), newgrp(1), nice(1), nohup(1), print(1), pwd(1), read(1), readonly(1), set(1), sh(1), shift(1), suspend(1), test(1B), time(1), times(1), trap(1), typeset(1), umask(1), wait(1), chdir(2), chmod(2), creat(2), umask(2), getopt(3C), profile(4), environ(5)