TL;DR
- AWS CLI v2で、シェル補完が有効なようなので設定したい
-
aws_completer
を使ってシェル補完を有効にするが、継続的に有効にするには~/.bashrc
等に設定する
ちなみに、Amazon Linux上ではデフォルトで有効化されているようです。
Amazon Linux
コマンド補完は自動的に設定され、Amazon Linux を実行する Amazon EC2 インスタンス上でデフォルトで有効化されます。
AWS CLI v2をインストールする
最初に、AWS CLI v2をインストールしましょう。
今回の環境はCentOS 7なので、Linux向けのインストールを行います。
$ uname -srvmpio
Linux 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
Linux での AWS CLI バージョン 2 のインストール
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
これで、AWS CLI v2がインストールされました。
$ aws --version
aws-cli/2.0.16 Python/3.7.3 Linux/3.10.0-1127.8.2.el7.x86_64 botocore/2.0.0dev20
現時点のバージョンは、2.0.16ですね。
コマンド補完を設定する
では、AWS CLI v2のコマンド補完を設定してみましょう。
Amazon Web Services ブログ / AWS CLI v2 が一般利用可能となりました
ドキュメントを見ていると、aws_completer
をPATH
に追加するように書かれています。が、pip
を使った方法など、そもそも内容がv1寄りのような…?
aws_completer
コマンドを探してみましょう。
AWS CLI v2のデフォルトのインストール方法では、/usr/local/bin
に配置されるようです。
$ ls -l /usr/local/bin
合計 0
lrwxrwxrwx. 1 root root 37 5月 24 05:40 aws -> /usr/local/aws-cli/v2/current/bin/aws
lrwxrwxrwx. 1 root root 47 5月 24 05:40 aws_completer -> /usr/local/aws-cli/v2/current/bin/aws_completer
では、aws_completer
を使ってシェル補完を設定します。bash
の場合は、こちらです。
$ complete -C aws_completer aws
zsh
やtcsh
の場合は、ドキュメントを参照してください。
シェル補完が使えるようになったか、確認してみましょう。
$ aws ec
ec2 ec2-instance-connect ecr ecs
大丈夫そうです。
シェルにログインする際にコマンド補完を有効にする
bash
の場合は、$HOME/.bash_profile
に追加しましょう。
$ echo 'complete -C aws_completer aws' >> $HOME/.bash_profile
これで、シェルを起動する度にコマンド補完が有効になります。