尽管 AWS CLI 是管理 AWS 支持的服务的绝佳资源,但很难记住以下内容的用法:
SAWS
旨在通过以下功能增强AWS CLI:
在底层, SAWS
由 AWS CLI 提供支持,并支持相同的命令和命令结构。
SAWS
和AWS CLI
用法:
aws [parameters] [options]
SAWS
特点:
SAWS
适用于 Mac、Linux、Unix 和 Windows。
您可以通过更新 ~/.sawsrc 文件来控制加载哪个主题以进行语法突出显示:
# Visual theme. Possible values: manni, igor, xcode, vim, autumn, vs, rrt,
# native, perldoc, borland, tango, emacs, friendly, monokai, paraiso-dark,
# colorful, murphy, bw, pastie, paraiso-light, trac, default, fruity
theme = vim
SAWS
在您键入时提供智能自动完成功能。输入以下命令将以交互方式列出并自动完成仅特定于ec2
所有子命令:
aws ec2
除了 AWS CLI 提供的默认命令、子命令和选项之外, SAWS
还支持自动完成 AWS 资源。目前,包括存储桶名称、实例 ID 和实例标签,并为更多正在开发的资源提供额外支持。
s3api
的选项:
--bucket
用法示例:
aws s3api get-bucket-acl --bucket
s3
的语法:
s3://
用法示例:
aws s3 ls s3://
注意:下面的示例演示了模糊资源补全的使用:
ec2
的选项:
--instance-ids
用法示例:
aws ec2 describe-instances --instance-ids
aws ec2 ls --instance-ids
注意: ls
命令演示了可自定义快捷键的使用:
ec2
的选项:
--ec2-tag-key
--ec2-tag-value
用法示例:
aws ec2 ls --ec2-tag-key
aws ec2 ls --ec2-tag-value
标签支持带有*
字符的通配符。
注意: ls
、 --ec2-tag-value
和--ec2-tag-key
演示了可自定义快捷方式的使用:
如果您需要其他资源的支持,请随时提交问题或拉取请求。
~/.saws.shortcuts 文件包含您可以修改的快捷方式。它预先填充了几个开箱即用的方便快捷方式。您可以将快捷键与模糊完成结合起来,以减少击键次数。下面是一些例子。
列出所有 EC2 实例:
aws ec2 ls
列出所有正在运行的 EC2 实例:
aws ec2 ls --ec2-state running # fuzzy shortcut: aws ecstate
列出具有匹配标签的所有 EC2 实例(支持通配符*
):
aws ec2 ls --ec2-tag-key # fuzzy shortcut: aws ectagk
aws ec2 ls --ec2-tag-value # fuzzy shortcut: aws ectagv
列出具有匹配 ID 的 EC2 实例:
aws ec2 ls --instance-ids # fuzzy shortcut: aws eclsi
列出所有 DynamoDB 表:
aws dynamodb ls # fuzzy shortcut: aws dls
列出所有 EMR 集群:
aws emr ls # fuzzy shortcut: aws emls
在 ~/.saws.shortcuts 文件中添加/删除/修改快捷方式以满足您的需求。
请随意提交:
要切换 AWS 资源和快捷方式的模糊完成,请使用F3
键。
用于启动和停止 EC2 实例的模糊快捷方式示例:
aws ecstop
aws ecstart
注意:模糊补全目前仅适用于 AWS 资源和快捷方式。
SAWS
支持 Fish 式自动建议。使用right arrow
键完成建议。
SAWS
允许您从saws>
提示符执行 shell 命令。
SAWS
会跟踪您输入的命令并将其存储在~/.saws-history
中。使用向上和向下箭头键循环浏览命令历史记录。
SAWS
支持上下文命令行help
和上下文 Web docs
。
help
命令由 AWS CLI 提供支持,并在命令行中输出帮助。
用法:
aws help
有时您不太确定需要使用什么特定命令/子命令/选项组合。在这种情况下,与通过 Web 浏览器浏览在线 AWS CLI 文档相比,使用help
命令行浏览多种组合会很麻烦。
SAWS
使用docs
命令或F9
键支持上下文 Web 文档。 SAWS
将显示特定于当前输入的命令和子命令的 Web 文档。
用法:
aws docs
SAWS
支持许多工具栏选项:
F2
切换输出语法突出显示F3
切换AWS资源和快捷方式的模糊补全F4
切换快捷键的完成F5
刷新资源以自动完成F9
显示上下文 Web 文档F10
或control d
退出SAWS
SAWS
已在 Windows 7 和 Windows 10 上进行了测试。
在 Windows 上,.sawsrc 文件可以在%userprofile%
中找到。例如:
C:Usersdmartin.sawsrc
尽管您可以使用标准 Windows 命令提示符,但使用 cmder 或 conemu 可能会获得更好的体验。
SAWS
托管在 PyPI 上。以下命令将安装SAWS
以及 AWS CLI 等依赖项:
$ pip install saws
您还可以从 GitHub 源安装最新的SAWS
,其中可能包含尚未推送到 PyPI 的更改:
$ pip install git+https://github.com/donnemartin/saws.git
如果您没有在 virtualenv 中安装,请使用sudo
运行:
$ sudo pip install saws
安装后,启动SAWS
:
$ saws
建议您在 virtualenv 中安装 Python 包,以避免潜在的依赖项或权限问题。
要查看SAWS
virtualenv
和 Docker 安装说明,请单击此处。
Apple 及其包含的 python 包依赖项存在一个已知问题(更多信息请参见 pypa/pip#3165)。我们正在研究解决此问题的方法,但与此同时,要安装锯,您可以运行:
$ sudo pip install saws --upgrade --ignore-installed six
使用 AWS CLI 配置您的凭证:
$ aws configure
如果您想在SAWS
中使用特定的命名配置文件,请在 OS X、Linux 或 Unix 上运行以下命令:
$ export AWS_DEFAULT_PROFILE=user1
$ saws
或者作为一句单行:
$ AWS_DEFAULT_PROFILE=user1 saws
Windows 用户可以运行以下命令:
> set AWS_DEFAULT_PROFILE=user1
> saws
用于使用特定配置文件启动SAWS
命令行选项正在开发中。有关如何安装和配置 AWS CLI 的更多详细信息,请参阅以下文档。
轻微测试表明SAWS
似乎也与 Python 3.5 兼容。
由于缺乏 boto 的支持,Pypy3 不受支持。
如果您有兴趣为SAWS
做出贡献,请运行以下命令:
$ git clone https://github.com/donnemartin/saws.git
$ pip install -e .
$ pip install -r requirements-dev.txt
$ saws
Travis CI 上提供了持续集成详细信息。
Gemnasium 上提供了依赖关系管理详细信息。
在活动的 Python 环境中运行单元测试:
$ python tests/run_tests.py
在多个 Python 环境中使用 tox 运行单元测试:
$ tox
源代码文档可在 Readthedocs.org 上找到。
运行以下命令来构建文档:
$ scripts/update_docs.sh
欢迎贡献!
查看贡献指南,了解有关如何执行以下操作的详细信息:
SAWS
提供支持SAWS
的创建SAWS
的创建并提供了一些方便的实用功能请随时与我联系讨论任何问题、疑问或意见。
我根据开源许可证向您提供此存储库中的代码和资源。因为这是我的个人存储库,所以您收到的我的代码和资源的许可证来自我,而不是我的雇主 (Facebook)。
Copyright 2015 Donne Martin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.