気の向くままに辿るIT/ICT/IoT
Shell

bashl シェル組み込みコマンド

ホーム前へ次へ
bashのシェル組み込みコマンドってなに?

bash シェル組み込みコマンド

bashシェル組み込みコマンド

 UNIX/Linuxの各種シェルには、UNIX/Linuxシステムコマンドの他に固有のシェル組み込みコマンドがあります。

 bashのbash組み込みコマンドは、GNUによってBourne Shell組み込みコマンドに追加拡張されたbash固有のシェル組み込みコマンドです。

 各シェル組み込みコマンドの詳細についてはhelpコマンド[help alias]等で要確認です。

bash固有の組み込みコマンド

 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番めのディレクトリ情報を交換する

参照:http://www.gnu.org/software/bash/manual/html_node/Directory-Stack-Builtins.html#Directory-Stack-Builtins

と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で指定した補完オプションを編集または表示

参照:http://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html#Programmable-Completion-Builtins

とシェルの振る舞いを変更する組み込みコマンドである

 bashコマンド 主な用途
 set オプションなしでシェル変数とシェル関数を表示
*他のコマンド以上に仕様が複雑で多様なオプションによってあらゆることができる
 shopt シェルオプションの切り替え
オプションなし、または-pオプション付きでシェルオプションの一覧を表示

参照:http://www.gnu.org/software/bash/manual/html_node/Modifying-Shell-Behavior.html#Modifying-Shell-Behavior

があります。

bash POSIXモード

 また、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

LINK

ホーム前へ次へ