コマンド補完 - AWS Command Line Interface

コマンド補完

Unix に似たシステムでは、AWS Command Line Interface (AWS CLI) に含まれるコマンド補完機能によって、Tab キーを使用して部分的に入力されたコマンドを補完します。ほとんどのシステムでは、この機能は自動的にインストールされないため、手動で設定する必要があります。

仕組み

コマンド、パラメータ、またはオプションの一部を入力すると、コマンド補完機能によってコマンドが自動的に入力されるか、コマンドの候補リストが表示されます。コマンド補完を使用するには、コマンドの一部を入力して Tab キーを押します。

次の例は、コマンド補完を使用するさまざまな方法を示しています。

  • コマンドの一部を入力して Tab キーを押すと、コマンドの候補リストが表示されます。

    $ aws dynamodb dTAB datapipeline deploy dlm dynamodb datasync devicefarm dms dynamodbstreams dax directconnect docdb ddb discovery ds
  • パラメータの一部を入力して Tab キーを押すと、パラメータの候補リストが表示されます。

    $ aws dynamodb db delete-table --TAB --ca-bundle --endpoint-url --profile --cli-connect-timeout --generate-cli-skeleton --query --cli-input-json --no-paginate --region --cli-read-timeout --no-sign-request --table-name --color --no-verify-ssl --version --debug --output
  • パラメータを入力して Tab キーを押すと、リソース値の候補リストが表示されます。この機能は、AWS CLI バージョン 2 でのみ使用できます。

    $ aws dynamodb db delete-table --table-name TAB Table 1 Table 2 Table 3

コマンド補完の設定

コマンド補完を設定するには、2 つの情報として、使用しているシェルの名前と aws_completer スクリプトの場所が必要です。

Amazon Linux

コマンド補完は自動的に設定され、Amazon Linux を実行する Amazon EC2 インスタンス上でデフォルトで有効化されます。

シェルを識別する

使用しているシェルを特定するには、次のコマンドのいずれかを使用します。

echo $SHELL – シェルのプログラムファイル名を表示します。これは通常、ログイン後に別のシェルを起動しない限り、使用中のシェルの名前と一致します。

$ echo $SHELL /bin/bash

ps – 現在のユーザーで実行中のプロセスが表示されます。それらの 1 つはシェルです。

$ ps PID TTY TIME CMD 2148 pts/1 00:00:00 bash 8756 pts/1 00:00:00 ps

AWS コンプリータを見つける

AWS コンプリータの場所は、使用するインストール方法によって異なります。

パッケージマネージャーpipyumbrewapt-get などのプログラムでは通常、AWS コンプリータ (またはシンボリックリンク) は標準のパスの場所にインストールされます。この場合、which コマンドを実行して、コンプリータを見つけることができます。

--user コマンドを使用せずに pip を使用した場合は、次のパスが表示される場合があります。

$ which aws_completer /usr/local/aws/bin/aws_completer

pip install コマンドで --user パラメータを使用した場合は、通常、$HOME フォルダの下の local/bin フォルダでコンプリータを見つけることができます。

$ which aws_completer /home/username/.local/bin/aws_completer

バンドルされたインストーラ – 前のセクションの手順に従ってバンドルされたインストーラを使用した場合、AWS コンプリータはインストールディレクトリの bin サブフォルダに配置されます。

$ ls /usr/local/aws/bin activate activate.csh activate.fish activate_this.py aws aws.cmd aws_completer ...

他のすべてが失敗した場合、find を使用して、AWS コンプリータのファイルシステム全体を検索します。

$ find / -name aws_completer /usr/local/aws/bin/aws_completer

コンプリータのフォルダをパスに追加する

AWS コンプリータが正常に機能するためには、まずこれをコンピューターのパスに追加する必要があります。

  1. ユーザーフォルダーでシェルのプロファイルスクリプトを見つけます。現在使用しているシェルが不明な場合は、echo $SHELL を実行します。

    $ ls -a ~/ . .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
    • Bash.bash_profile.profile、または .bash_login

    • Zsh.zshrc

    • Tcsh.tcshrc.cshrc、または .login

  2. 次の例のように、プロファイルスクリプトの末尾にエクスポートコマンドを追加します。/usr/local/aws/bin を前のセクションで見つけたフォルダで置き換えます。

    export PATH=/usr/local/aws/bin:$PATH
  3. 変更が有効になるように、プロファイルを現在のセッションに再ロードします。.bash_profile を最初のセッションで見つけたシェルスクリプトの名前で置き換えます。

    $ source ~/.bash_profile

コマンド補完を有効にする

コマンド補完を有効にするには、使用しているシェルのコマンドを実行します。コマンドをシェルの RC ファイルに追加して、新しいシェルを開くたびに実行できます。各コマンドで、/usr/local/aws/bin パスを、以前のセクションのシステム上にあるパスと置き換えます。

  • bash – 組み込みのコマンド complete を使用します。

    $ complete -C '/usr/local/aws/bin/aws_completer' aws

    コマンドを ~/.bashrc に追加して、新しいシェルを開くたびに実行します。~/.bash_profile はソースとして ~/.bashrc を使用して、コマンドがログインシェルでも実行されるようにできます。

  • zsh – コマンド補完を実行するには、bashcompinit プロファイルスクリプトの最後に次の自動ロード行を追加して ~/.zshrc を実行する必要があります。

    $ autoload bashcompinit && bashcompinit

    コマンド補完を有効にするには、組み込みコマンド complete を使用します。

    $ complete -C '/usr/local/aws/bin/aws_completer' aws

    コマンドを ~/.zshrc に追加して、新しいシェルを開くたびに実行します。

  • tcshtcsh の補完は、補完の振る舞いを定義するためのワードタイプとパターンを取ります。

    > complete aws 'p/*/`aws_completer`/'

    コマンドを ~/.tschrc に追加して、新しいシェルを開くたびに実行します。

コマンド補完のテスト

コマンド補完を有効にしたら、コマンドの一部を入力し、Tab を押して使用可能なコマンドを表示します。

$ aws sTAB s3 ses sqs sts swf s3api sns storagegateway support