zsh で AWS CLI コマンドの補完を有効にしようとしたらちょっとだけ躓いた
2019-01-19AWS CLI のコマンドを Tab キーで補完することができると知ったので、実際にやってみました。内容は参考記事とほぼ同じで、シェルだけが違います。今回は zsh で AWS CLI コマンドの補完を有効にする方法のメモです。
AWS CLI のインストール方法によっては多少変わる部分があるとのことですが、自分の場合はその部分とは別の部分で躓きました。
前提
-
AWS CLI がインストールされている
-
AWS Command Line Interface をインストールする - AWS Command Line Interface
自分は バンドルされたインストーラを使用して インストールしていたようです。(後に躓いた原因)
やること
- AWS コンプリータ の場所を確認する
.zshrc
で AWS コンプリータ を読み込むようにする
1. AWS コンプリータ の場所を確認する
AWS CLI コマンドの補完をしてくれる AWS コンプリータ がある場所を確認します。
>>> which aws_completer
aws_completer not found
はい。いきなりおかしいですね。AWS CLI がインストールされていれば存在しているはずです。
>>> which aws
/usr/local/bin/aws
当たり前ですが aws
コマンドは存在しています。
なんとなく /usr/local/bin/
にありそうな気はするので、一応確認してみます。
>>> ls -al /usr/local/bin/ | grep aws
lrwxr-xr-x 1 root admin 22 12 22 12:13 aws -> /usr/local/aws/bin/aws
どうやら aws
の実態は /usr/local/aws/bin/aws
にあるようです。なので、 /usr/local/aws/bin/
以下を確認してみます。
>>> ls -al /usr/local/aws/bin/ | grep aws
-rwxr-xr-x 1 root wheel 824 12 22 12:13 aws
-rwxr-xr-x 1 root wheel 1432 12 22 07:23 aws.cmd
-rwxr-xr-x 1 root wheel 204 12 22 07:23 aws_bash_completer
-rwxr-xr-x 1 root wheel 1145 12 22 12:13 aws_completer
-rwxr-xr-x 1 root wheel 1807 12 22 07:23 aws_zsh_completer.sh
ありました。
バンドルされたインストーラを使用して AWS CLI をインストール
した場合はこのような状態になっているようです。(どうやってインストールしたか忘れてた)
無事に AWS コンプリータ の場所がわかりました。
ただ、 aws_completer
にPATH が通っていないので通しておきます。というか、 aws
と同様にシンボリックリンクを作成しておきます。
>>> ln -s /usr/local/aws/bin/aws_completer /usr/local/bin/aws_completer
>>> which aws_completer
/usr/local/bin/aws_completer
2. .zshrc
で AWS コンプリータ を読み込むようにする
AWS コンプリータ を .zshrc
で読み込むようにします。
source /usr/local/aws/bin/aws_zsh_completer.sh
上の 1 行を .zshrc
に追記して、再読込します。
>>> source ~/.zshrc
これで AWS CLI コマンドの補完が有効になりました。試しに aws codecommit
まで打って Tab キーを押してみると、次のように候補が出てきます。
>>> aws codecommit
batch-get-repositories delete-file get-comments-for-pull-request get-repository post-comment-for-pull-request update-pull-request-description
create-branch delete-repository get-commit get-repository-triggers post-comment-reply update-pull-request-status
create-pull-request describe-pull-request-events get-differences list-branches put-file update-pull-request-title
create-repository get-blob get-file list-pull-requests put-repository-triggers update-repository-description
credential-helper get-branch get-folder list-repositories test-repository-triggers update-repository-name
delete-branch get-comment get-merge-conflicts merge-pull-request-by-fast-forward update-comment
delete-comment-content get-comments-for-compared-commit get-pull-request post-comment-for-compared-commit update-default-branch
これで色々と捗りそうです。
comments powered by Disqus