17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

コマンドの補完リストをgrepしたいときはcompgenを使うと便利

Last updated at Posted at 2013-04-24

AWS関連コマンドとか ec2-xxxx-yyyy-zzzzz みたいなコマンドが大量にありすぎて、TAB補完しても目的のコマンドが全然探せない!

じゃーgrepすりゃいいかって思った瞬間に気づく…、補完候補ってってパイプに流せないじゃん!?

そこでcompgenですよ。

実のところbashの補完機能の裏ではまさにこのcompgenという組み込みコマンドが大活躍してる。こいつが全ての補完候補を作ってくれていると言っても過言ではないだろう。なので、補完リストを取りたいんならcompgenを直接使いこなしてしまうのが一番ってわけだ。

何かいっぱいオプションあるけど、-c オプションを抑えておけば十分です。

compgen -c ec2-とかやるとec2-まで入力してTAB補完したのとほぼ同じリストが出力される(aliasとかfunctionとかはこれだと出ないけど割愛)。

利用例

だからインスタンス操作系のコマンドって何があるのかなーと思ったら↓こんな感じで探せる。

$ compgen -c ec2- | sort | grep instance
ec2-bundle-instance
ec2-cancel-reserved-instances-listing
ec2-cancel-spot-instance-requests
ec2-confirm-product-instance
ec2-create-instance-export-task
ec2-create-reserved-instances-listing
ec2-describe-instance-attribute
ec2-describe-instance-status
ec2-describe-instances
ec2-describe-reserved-instances
ec2-describe-reserved-instances-listings
ec2-describe-reserved-instances-offerings
ec2-describe-spot-instance-requests
ec2-import-instance
ec2-modify-instance-attribute
ec2-monitor-instances
ec2-purchase-reserved-instances-offering
ec2-reboot-instances
ec2-report-instance-status
ec2-request-spot-instances
ec2-reset-instance-attribute
ec2-run-instances
ec2-start-instances
ec2-stop-instances
ec2-terminate-instances
ec2-unmonitor-instances

AWSのインスタンス操作系コマンドはそれだけでも数が多い方からこれでも多く見えるけど…、ec2-での候補は166個もあったのにinstanceでgrepしたら22個だよ!

かなり探しやすくなったでしょ?

17
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?