本文件 AWS CLI 僅適用於 的第 1 版。如需與 第 2 版相關的文件 AWS CLI,請參閱 第 2 版使用者指南 。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 中設定命令完成 AWS CLI
AWS Command Line Interface (AWS CLI) 包含與 bash 相容的命令完成功能,可讓您使用 Tab 鍵完成部分輸入的命令。您需要在大多數系統上手動設定此功能。
運作方式
當您輸入命令、參數或選項的部分內容時,命令完成功能會自動完成您的命令,或顯示建議的命令清單。若要提示命令完成,請在命令中輸入部分 ,然後按下完成金鑰,通常是 Tab
在大多數 shell 中。
下列範例示範命令完成功能的不同使用方式:
-
部分輸入命令並按下
Tab
以顯示建議的命令清單。$
aws dynamodb d
TAB
delete-backup describe-global-table delete-item describe-global-table-settings delete-table describe-limits describe-backup describe-table describe-continuous-backups describe-table-replica-auto-scaling describe-contributor-insights describe-time-to-live describe-endpoints
-
部分輸入參數並按下
Tab
以顯示建議的參數清單。$
aws dynamodb 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
顯示建議的資源值清單。此功能僅適用於 第 2 AWS CLI 版。$
aws dynamodb db delete-table --table-name
TAB
Table 1 Table 2 Table 3
在 Linux 或 macOS 上設定命令完成
若要在 Linux 或 macOS 上設定命令完成,您必須知道正在使用的 Shell 名稱及 aws_completer
指令碼的位置。
注意
執行 Amazon Linux 的 Amazon EC2執行個體預設會自動設定和啟用命令完成。
確認完成標籤的資料夾位於您的路徑中
若要 AWS 讓完成器成功運作, aws_completer
必須在 shell 的路徑中。which
命令可以檢查完成標籤是否位於您的路徑中。
$
which aws_completer
/usr/local/bin/aws_completer
如果該命令找不到完成標籤,請使用下列步驟將完成標籤的資料夾新增到您的路徑中。
步驟 1:找到 AWS 完成者
AWS 完成器的位置可能會因使用的安裝方法而異。
-
Package Manager - 程式,例如
pip
、brew
、yum
和 ,apt-get
通常會將 AWS 完成器 (或與其的符號連結) 安裝到標準路徑位置。-
如果您使用的是不含
--user
參數的pip
,預設路徑為/usr/local/bin/aws_completer
。 -
如果您使用的是包含
--user
參數的pip
,預設路徑為/home/
。username
/.local/bin/aws_completer
-
-
Bundled Installer – 如果您使用的是 Bundled Installer,預設路徑為
/usr/local/bin/aws_completer
。
如果所有其他失敗,您可以使用 find
命令來搜尋檔案系統是否有 AWS 完成器。
$
find / -name aws_completer
/usr/local/bin/aws_completer
步驟 2:識別您的 Shell
若要識別您使用的是哪一種 Shell,您可以利用下列其中一個命令。
-
回應 $SHELL – 顯示 Shell 的程式檔案名稱。這通常符合使用中的 Shell 名稱,除非您在登入之後啟動了不同的 Shell。
$
echo $SHELL
/bin/bash
-
ps – 會顯示目前使用者正在執行的程序。其中一個是 Shell。
$
ps
PID TTY TIME CMD 2148 pts/1 00:00:00 bash 8756 pts/1 00:00:00 ps
步驟 3:將完成標籤新增到您的路徑
-
在您的使用者資料夾中尋找 Shell 的描述檔指令碼。
$
ls -a ~/
. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
-
Bash –
.bash_profile
、.profile
或.bash_login
-
Zsh –
.zshrc
-
Tcsh –
.tcshrc
、.cshrc
或.login
-
-
在設定檔尾端新增匯出命令,類似於以下範例。將
換成您在上一節探索到的資料夾。/usr/local/bin/
export PATH=
/usr/local/bin/
:$PATH -
將描述檔重新載入到目前的工作階段,讓這些變更生效。將
換成您在第一節探索到的 Shell 指令碼的名稱。.bash_profile
$
source ~/
.bash_profile
啟用命令完成
在確認完成標籤位於您的路徑中後,請為您正在使用的 Shell 執行適當的命令,從而啟用命令完成。您可以新增命令到 Shell 的設定檔,以在每次開啟新 Shell 時執行該檔案。在每個命令中,取代 /usr/local/bin/
路徑,其中 在您的系統上找到一個路徑確認完成標籤的資料夾位於您的路徑中。
-
bash
- 使用內建命令complete
。$
complete -C '
/usr/local/bin/
aws_completer' aws新增先前的命令到
~/.bashrc
,以在每次開啟新 Shell 時執行該檔案。您的~/.bash_profile
應指定~/.bashrc
的來源,以確保命令也會在登入 Shell 中執行。 -
zsh
– 若要執行命令完成,您必須將下列自動載入行加到~/.zshrc
設定檔指令碼末尾,以執行bashcompinit
。$
autoload bashcompinit && bashcompinit
$
autoload -Uz compinit && compinit
若要啟用命令完成,請使用內建命令
complete
。$
complete -C '
/usr/local/bin/
aws_completer' aws新增先前的命令到
~/.zshrc
,以在每次開啟新 Shell 時執行該檔案。 -
tcsh
-tcsh
的完成採用文字類型及模式來定義完成行為。>
complete aws 'p/*/`aws_completer`/'
新增先前的命令到
~/.tschrc
,以在每次開啟新 Shell 時執行該檔案。
啟用命令完成後,驗證命令完成 開始運作。
驗證命令完成
啟用命令完成之後,請重新載入您的 Shell、輸入命令的部分文字並按下 Tab,即可查看可用的命令。
$
aws s
TAB
s3 ses sqs sts swf s3api sns storagegateway support
在 Windows 上設定命令完成
注意
如需 PowerShell 如何處理完成的資訊,包括其各種完成金鑰,請參閱 Microsoft PowerShell 文件 中的關於_Tab_Expansion
若要在 Windows PowerShell 上啟用 的命令完成,請完成 中的下列步驟 PowerShell。
-
使用下列命令開啟您的
$PROFILE
。PS C:\>
Notepad $PROFILE
如果您沒有
$PROFILE
,請使用下列命令建立使用者描述檔。PS C:\>
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
如需 PowerShell 設定檔的詳細資訊,請參閱 Microsoft Docs 網站上的如何在 Windows 中使用設定檔 PowerShell ISE
。 -
若要啟用命令完成,請將下列程式碼區塊新增至您的設定檔,然後儲存並關閉檔案。
Register-ArgumentCompleter -Native -CommandName aws -ScriptBlock { param($commandName, $wordToComplete, $cursorPosition) $env:COMP_LINE=$wordToComplete if ($env:COMP_LINE.Length -lt $cursorPosition){ $env:COMP_LINE=$env:COMP_LINE + " " } $env:COMP_POINT=$cursorPosition aws_completer.exe | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } Remove-Item Env:\COMP_LINE Remove-Item Env:\COMP_POINT }
-
啟用命令完成之後,請重新載入您的 Shell、輸入命令的部分文字並按下 Tab,以循環查看可用的命令。
$
aws s
Tab
$
aws
s3
若要查看完成結果適用的所有可用命令,請輸入部分命令,然後按 Ctrl + Space。
$
aws s
Ctrl + Space
s3 ses sqs sts swf s3api sns storagegateway support