manを実行すると「No manual entry for ...」と表示されるコマンドの利用方法をどうしても知りたい時の対処法
動作環境
macOS Mojave # echo $0 /bin/bash
利用可能なコマンド一覧を取得するには、compgen -A command
またはcompgen -ac
を実行すればよいことを知りました。
そこで、man compgen
で詳しい利用法を確認しようとするとNo manual entry for compgenというメッセージが表示されるだけで、マニュアルが開かれることはありませんでした。
なぜ、上記のようになるか調べたので自分用のメモとして残しておきます。
which command
から/usr/bin/に配置されているプログラムを実行するLinuxコマンドの他に、shellに初期から組み込まれているビルトインコマンドがあります。
compgenはビルトインコマンドであったので、manコマンドでマニュアルを開くことができませんでした。
ビルトインコマンドを利用方法を知りたい時のために、helpコマンドが用意されています。
help compgen
の実行結果は下記の通りです。
compgen: compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [word] Display the possible completions depending on the options. Intended to be used from within a shell function generating possible completions. If the optional WORD argument is supplied, matches against WORD are generated.
helpコマンド単体で実行すると、ビルトインコマンドの一覧が表示されます。
ビルトインコマンドかどうかを知るためには、type compgen
を実行します。
type compgen
の結果は、compgen is a shell builtinであることからビルトインコマンドであることがわかります。
まとめ
compgen -ac
で利用可能なコマンドの一覧を知ることができる通常のコマンドとビルドインコマンドがある
ビルドインコマンドは、helpやtypeコマンドで確認することができる
- 作者: 沓名亮典
- 出版社/メーカー: 技術評論社
- 発売日: 2015/06/05
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る