UNIX/Linuxの各種シェルには、UNIX/Linuxシステムコマンドの他に固有のシェル組み込みコマンドがあります。
bashのbash組み込みコマンドは、GNUによってBourne Shell組み込みコマンドに追加拡張されたbash固有のシェル組み込みコマンドです。
各シェル組み込みコマンドの詳細についてはhelpコマンド[help alias]等で要確認です。
bash固有の組み込みコマンドとしては、
| bashコマンド | 主な用途 |
|---|---|
| alias | コマンド等に別名を付けるコマンド オプションなし、または-pオプションで標準出力にalias一覧を表示 |
| bind | GNUライブラリreadlineによるキーバインディング キーボードのキーと操作やコマンドなどreadline変数を設定するreadline関数やreadlineマクロとキーボードのキーとの関連付け |
| builtin | 引数のコマンドをシェル組み込みコマンドとして実行 以前(Bourne Shellで)はシェル組み込みコマンドと同名のシェル関数があった場合、無条件でシェル関数が優先されていた |
| caller | [.]1つのドット(ピリオド)から成るソースコマンドやsourceコマンドで取り込まれて実行された関数やシェルスクリプトを呼ぶアクティブなサブルーチンの内容を返す |
| command | 環境変数PATHでパス検索可能なコマンドを引数に取って実行 仮に関数内にlsという関数があったとしても、そこにcommand lsとあった場合には、関数ではなくPATHを探してシステムコマンドを実行 |
| declare | 必要であれば属性を伴う変数を定義・宣言・表示 引数で渡された名称の配列や読み取り専用属性を持つ変数、整数値属性を持つ変数、トレース属性を持つ変数などを定義・宣言 シェル関数内で定義された場合は、localコマンド同様に局所変数となる 定義済み変数・関数(関数の場合、関数名のみ、または関数名と定義)を出力 |
| echo | 標準出力コマンド 改行までの引数を(バッククォートで括られたコマンドやシングルクォートで括られていない変数の場合展開して)出力 |
| enable | シェル組み込みコマンドと同名のシステムコマンドがあった場合、常にシェル組み込みコマンドを優先する(標準の挙動) -nオプションでシステムコマンドを優先 *以前(Bourne Shellで)はシステムコマンドをフルパス指定しない限りシェル組み込みコマンドが優先された |
| help | シェル組み込みコマンド用ヘルプ help "a*"のようなパターンマッチにも対応 |
| let | シェル変数上で実行される演算を許可 *各式はシェルの演算ルールに依存して評価される |
| local | シェル関数専用の変数スコープ設定 局所変数として宣言 *関数のスコープ上の問題と異なり常にグローバルとなってしまっていた関数内の変数への対処 |
| logout | 親シェルへ整数の戻り値を返しログインシェルから出る(ログアウトする) |
| mapfile | 索引付けされた配列変数に標準入力(-uオプション付きの場合はファイルディスクリプタ)から複数行を読み込む デフォルトの配列変数は[MAPFILE] |
| printf | 書式付標準出力コマンド*C言語とほぼ同様、echoと異なり自動改行はしないので必要な場合は\nを利用 |
| read | 標準入力(-uオプション付きの場合はファイルディスクリプタ)から単一行を読み込む |
| readarray | 索引付けされた配列変数に標準入力(-uオプション付きの場合はファイルディスクリプタ)から複数行を読み込む |
| source | 現在のシェルにソースファイルを取り込む *sh組み込みコマンドの[.]1つのドット(ピリオド)から成るソースコマンド同様 |
| type | ファイルタイプの表示 シェル組み込みコマンドの場合はその旨を、システムコマンドの場合は実行ファイルパスを表示(-aオプション付加で関連パスを全て表示) |
| typeset | Korn shell/kshとの完全一致による互換性を保つ(*賛否両論あり) |
| ulimit | シェルリソースの表示・設定 |
| unalias | alias設定の解除 |
参照:http://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html
とジョブ操作組み込みコマンドである
| bashコマンド | 主な用途 |
|---|---|
| bg | ジョブをバックグラウンドで実行 |
| fg | ジョブをフォアグラウンドで実行 |
| jobs | ジョブ一覧を表示 |
| kill | シグナルを送りジョブを抹消 |
| wait | ジョブの終了(ステータスが返ってくるのを)を待つ |
| disown | 有効なジョブのテーブルから指定されたジョブを削除 |
| suspend | SIGCONT信号が送られるまでジョブを(すぐに実行できる状態で)待機させる |
参照:http://www.gnu.org/software/bash/manual/html_node/Job-Control-Builtins.html#Job-Control-Builtins
とディレクトリスタック組み込みコマンドである
| bashコマンド | 主な用途 |
|---|---|
| dirs | 現在記憶しているディレクトリ一覧を標準出力に出力 |
| popd | dirsで保持中のディレクトリスタック最上位にあるディレクトリを取り除くと同時に新たに最上位にくるディレクトリにcd(change directory)する |
| pushd | dirsで保持中のディレクトリスタック最上位にカレントディレクトリを保存、引数で渡されたディレクトリへcdする 引数がない場合にはスタックの最上位と2番めのディレクトリ情報を交換する |
とbash履歴組み込みコマンドである
| bashコマンド | 主な用途 |
|---|---|
| fc | Fix Commandの略 コマンドを再利用する為に履歴一覧を一覧表示したり、履歴一覧の番号や文字列を指定してコマンドを編集 |
| history | 履歴管理 オプションなしで履歴一覧を標準出力に表示 |
参照:http://www.gnu.org/software/bash/manual/html_node/Bash-History-Builtins.html#Bash-History-Builtins
とプログラム的な互換性に関連する組み込みコマンドである
| bashコマンド | 主な用途 |
|---|---|
| compgen | オプションに依存する利用可能な完了指定を表示 |
| complete | 引数で与えられた名前において終了させるべき引数をどのように持たせるかを記述する補完指定 |
| compopt | completeで指定した補完オプションを編集または表示 |
とシェルの振る舞いを変更する組み込みコマンドである
| bashコマンド | 主な用途 |
|---|---|
| set | オプションなしでシェル変数とシェル関数を表示 *他のコマンド以上に仕様が複雑で多様なオプションによってあらゆることができる |
| shopt | シェルオプションの切り替え オプションなし、または-pオプション付きでシェルオプションの一覧を表示 |
があります。
また、bashは(POSIXに準拠していますが)、POSIXに準拠した(bashではなく)sh組み込みコマンドを利用できるようにPOSIXモードがあり、コマンドラインから--posixオプション、または[set -o posix]でPOSIXモードを選択した場合には、POSIX標準仕様のPOSIX特殊組み込みコマンドとしてsh組み込みコマンドが実行されます。
| POSIXコマンド |
|---|
| : |
| . |
| break |
| continue |
| eval |
| exec |
| exit |
| export |
| readonly |
| return |
| set |
| shift |
| trap |
| unset |
参照1:http://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html
参照2:http://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html#Bash-POSIX-Mode