aws-cli(AWS Command Line Interface)ではTabによるコマンド補完をサポートしてますが、デフォルトでは有効ではありません。
身の回りでcliを新しく触り始めた人が知らないケースがあったので、今回導入方法をまとめまてみました。
隣人が、長いコマンド名を手打ちしているのを見かけましたら、そっと教えてあげてください。
aws-cliはインストールしてある前提ですが、macだとこんな感じで簡単に入ります。
python --version # 2.6.3以降を確認
type pip # pipを確認 →なければインストールする
sudo -H pip install awscli # インストール
ちなみに更新するときはこうです
sudo -H pip install --upgrade awscli
windowsへのインストールや他のインストール方法についての詳細はこちらを参照してください。
http://docs.aws.amazon.com/cli/latest/userguide/installing.html
shellごとの設定
bash, zshでの設定方法です。
bash
aws_completerを探します。
多分、/usr/local/bin
か/usr/local/aws/bin
あたりにいると思います。
見つかったら、completeコマンドのoptionにパスを、argsにawsを指定してあげる感じです。
.bashrcに追加するのをお忘れなく。
type aws_completer # aws_completer is /usr/local/bin/aws_completer
complete -C '/usr/local/bin/aws_completer' aws
echo "complete -C '/usr/local/bin/aws_completer' aws" >> $HOME/.bashrc # if you want
zsh
zshの補完はaws_completerではなく、aws_zsh_completer.shを使います。
aws_zsh_completer.shをsourceコマンドで読み込んで上げればOKです。
type aws_zsh_completer.sh # aws_zsh_completer.sh is /usr/local/bin/aws_zsh_completer.sh
source /usr/local/bin/aws_zsh_completer.sh
echo "source /usr/local/bin/aws_zsh_completer.sh" >> $HOME/.zshrc # if you want
実行結果
こんな感じで補完されます。
長いコマンド名の打ち間違えを減らしたり、大量のコマンドを丸暗記しなくてもいいので、cliを使った作業効率が高まりますね。
その他
cliをBundled Installerを使ってインストールした場合は、PATHを通す必要があるみたいです。(未検証)
export PATH=/usr/local/aws/bin:$PATH
参考
https://github.com/aws/aws-cli/blob/develop/README.rst#command-completion
http://docs.aws.amazon.com/cli/latest/userguide/cli-command-completion.html
追記
@ryo0301さんから編集リクエストいただきました、ありがとうございます。
awscliをインストールする為に、pipを実行するとログやキャッシュのパーミッションで警告がでることがあるらしいです。
その際は -H オプションをつけて実行してあげてください。
The directory '/Users/YOURNAME/Library/Logs/pip' or its parent directory is not owned by the current user and the debug log has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want the -H flag.
The directory '/Users/YOURNAME/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want the -H flag.
The directory '/Users/YOURNAME/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want the -H flag.