本文档 AWS CLI 仅适用于版本 1。有关版本 2 的文档 AWS CLI,请参阅版本 2 用户指南。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中配置命令完成 AWS CLI
AWS Command Line Interface (AWS CLI) 包括与 bash 兼容的命令完成功能,允许您使用 T ab 键完成部分输入的命令。在大多数系统上,您需要手动配置此功能。
工作原理
当您部分输入命令、参数或选项时,命令完成功能会自动完成您的命令或显示建议的命令列表。要提示命令完成,请输入部分命令并按下完成键,通常是 Tab
在大多数炮弹中。
以下示例显示了可以使用命令完成的不同方法:
-
部分输入命令并按
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
以显示建议的资源值列表。此功能仅在 AWS CLI 版本 2 中可用。$
aws dynamodb db delete-table --table-name
TAB
Table 1 Table 2 Table 3
在 Linux 或 macOS 上配置命令完成
要在 Linux 或 macOS 上配置命令完成,您必须知道所使用的 Shell 的名称和 aws_completer
脚本的位置。
注意
默认情况下,在运行 Amazon Linux 的亚马逊EC2实例上,命令完成功能会自动配置和启用。
确认完成标签的文件夹在您的路径中
为了使 AWS 完成器成功运行,aws_completer
需要在你的 shell 路径中。which
命令可以检查完成标签是否在您的路径中。
$
which aws_completer
/usr/local/bin/aws_completer
如果 which 命令找不到完成标签,则按照以下步骤将完成标签的文件夹添加到您的路径中。
第 1 步:找到 AWS 完成者
根据所使用的安装方法, AWS 完成器的位置可能会有所不同。
-
Pack@@ age Manager-诸如
pip
yum
brew
、、和之类的程序apt-get
通常会将 AWS 完成器(或其符号链接)安装到标准路径位置。-
如果您使用没有
pip
参数的--user
,则默认路径为/usr/local/bin/aws_completer
。 -
如果您使用包含
pip
参数的--user
,则默认路径为/home/
。username
/.local/bin/aws_completer
-
-
捆绑安装程序 – 如果您使用捆绑安装程序,则默认路径为
/usr/local/bin/aws_completer
。
如果所有其他方法都失败,则可以使用find
命令在文件系统中搜索 AWS 完成器。
$
find / -name aws_completer
/usr/local/bin/aws_completer
步骤 2:识别 Shell
要识别您正在使用的 Shell,可以使用以下命令之一。
-
echo $ 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
中,以便在每次打开一个新外壳程序时运行它。您的~/.bash_profile
应指定源~/.bashrc
,以确保该命令也在登录 Shell 中运行。 -
zsh
– 要运行命令完成功能,您需要在~/.zshrc
配置文件脚本的末尾添加以下自动加载行来运行bashcompinit
。$
autoload bashcompinit && bashcompinit
$
autoload -Uz compinit && compinit
要启用命令完成,请使用内置命令
complete
。$
complete -C '
/usr/local/bin/
aws_completer' aws将之前的命令添加到
~/.zshrc
中,以便在每次打开一个新外壳程序时运行它。 -
tcsh
–tcsh
的完成采用字类型和样式来定义完成行为。>
complete aws 'p/*/`aws_completer`/'
将之前的命令添加到
~/.tschrc
中,以便在每次打开一个新外壳程序时运行它。
启用命令完成后,验证命令完成 正在工作。
验证命令完成
启用命令完成后,重新加载 Shell,输入部分命令并按 Tab 查看可用命令。
$
aws s
TAB
s3 ses sqs sts swf s3api sns storagegateway support
在 Windows 上配置命令完成
注意
有关如何 PowerShell 处理其完成情况(包括各种完成键)的信息,请参阅 Microsoft 文档中的 about_tab_Expans
要 PowerShell 在 Windows 上启用命令完成功能,请在中完成以下步骤 PowerShell。
-
使用以下命令打开你的
$PROFILE
。PS C:\>
Notepad $PROFILE
如果没有
$PROFILE
,请使用以下命令创建用户配置文件。PS C:\>
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
有关 PowerShell 配置文件的更多信息,请参阅 Microsoft 文档网站 PowerShell ISE上的如何在 Windows 中使用配置
文件。 -
要启用命令完成,请将以下代码块添加到您的配置文件中,保存,然后关闭文件。
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 + 空格键。
$
aws s
Ctrl + Space
s3 ses sqs sts swf s3api sns storagegateway support