Bash で利用可能なコマンド一覧を出力する compgen コマンド

以前、Bash で利用可能なコマンドを一覧表示するため、環境変数 PATH の中身を ls するようなスクリプトを紹介した。

今回さらに調べてみると、compgen というコマンドで利用可能なコマンドを一覧表示できることが分かったので紹介する。

コマンド 見られるモノ
compgen -a エイリアス (alias と同様)
compgen -b 組み込みコマンド (ビルトイン)
compgen -c 外部コマンド
compgen -d カレントディレクトリのディレクトリ (`ls -l
compgen -e 環境変数
compgen -f カレントディレクトリのファイル (ls -a 相当)
compgen -k 予約語
compgen -v 変数
compgen -A function 関数

ということで、エイリアス・組み込みコマンド・外部コマンド・キーワード・関数あたりが「全部見たいヤツ」になるかと思うので、

$ compgen -A function -abck

を覚えておくと良さそう。

compgen って何のためのコマンドなの?というと、補完候補 (Completion) のリストを生成 (Generate ≒ 出力) するためのコマンドみたい。