跳转到主要内容

AWS Shell

项目描述

aws-shell - AWS CLI的交互式生产力增强器

https://aws-developer-blog-media.s3-us-west-2.amazonaws.com/cli/Super-Charge-Your-AWS-Command-Line-Experience-with-aws-shell/aws-shell-final.gif

安装

aws-shell需要python和pip来安装。您可以使用pip安装aws-shell

$ pip install aws-shell

如果您不是在虚拟环境中安装,您可以运行

$ sudo pip install aws-shell

Mac OS X (10.11 El Capitan) 用户:存在苹果及其包含的python包依赖项的问题(更多信息请参见https://github.com/pypa/pip/issues/3165)。我们正在研究修复此问题的方法,但在此期间,要安装aws-shell,您可以运行:sudo pip install aws-shell --upgrade --ignore-installed six

安装aws-shell后,现在您可以运行

$ aws-shell

要退出shell,按Ctrl-D

升级aws-shell

如果您想升级到aws-shell的最新版本,您可以运行

$ pip install --upgrade aws-shell

您也可以在AWS CLI发布新版本时使用此升级命令,该版本包含新的服务和API更新。您将能够在aws-shell中使用这些新的服务和API更新。

支持的Python版本

aws-shell在AWS CLI支持的相同Python版本上运行

  • 2.6.5及以上

  • 2.7.x及以上

  • 3.3.x及以上

  • 3.4.x及以上

配置

aws-shell 使用与 AWS CLI 相同的配置设置。如果您之前从未使用过 AWS CLI,那么运行 configure 命令是最容易开始的方式。

$ aws-shell
aws> configure
AWS Access Key ID [None]: your-access-key-id
AWS Secret Access Key [None]: your-secret-access-key
Default region name [None]: region-to-use (e.g us-west-2, us-west-1, etc).
Default output format [None]:
aws>

有关配置设置的更多信息,请参阅AWS CLI 入门指南

基本用法

aws-shell 接受的命令与 AWS CLI 相同,但您不需要提供 aws 前缀。例如,以下是您可以尝试的一些命令

$ aws-shell
aws> ec2 describe-regions
{
    "Regions": [
        {
            "Endpoint": "ec2.eu-west-1.amazonaws.com",
            "RegionName": "eu-west-1"
        },
        ...
aws> s3 ls
2015-12-07 15:03:34 bucket1
2015-12-07 15:03:34 bucket2
aws> dynamodb list-tables --output text
TABLENAMES     First
TABLENAMES     Second
TABLENAMES     Third

配置文件

aws-shell 支持使用 AWS CLI 配置文件。您有两个选项来使用配置文件。首先,您可以在启动 aws-shell 时提供配置文件

$ aws-shell --profile prod
aws>

这样做后,所有服务器端完成以及您运行的 CLI 命令将自动使用 prod 配置文件。

您也可以在 aws-shell 中更改当前配置文件

$ aws-shell
aws> .profile demo
Current shell profile changed to: demo

您还可以使用以下方式检查您在 aws-shell 中配置的配置文件

aws> .profile
Current shell profile: demo

使用 .profile 点命令更改您的配置文件后,所有服务器端完成以及 CLI 命令将自动使用您配置的新配置文件。

特性

命令和选项自动完成

aws-shell 在您输入时提供命令和选项的自动完成。

https://cloud.githubusercontent.com/assets/368057/11824078/784a613e-a32c-11e5-8ac5-f1d1873cc643.png

简写自动完成

aws-shell 还可以填写各种 AWS CLI 选项简写语法的示例。

https://cloud.githubusercontent.com/assets/368057/11823453/e95d85da-a328-11e5-8b8d-67566eccf9e3.png

服务器端自动完成

aws-shell 还利用 boto3,即 Python 的 AWS SDK,来自动完成服务器端资源,例如 Amazon EC2 实例 ID、Amazon Dynamodb 表名、AWS IAM 用户名、Amazon S3 存储桶名等。

此功能正在积极开发中。支持的资源列表持续增长。

https://cloud.githubusercontent.com/assets/368057/11824022/3648b4fc-a32c-11e5-8e18-92f028eb1cee.png

模糊搜索

每个自动完成值都支持模糊搜索。这使您可以用更少的输入来指定要运行的命令、选项和值。您可以尝试输入

  • 每个子词的首字母:ec2 describe-reserved-instances-offerings -> ec2 drio

  • 每个词的一小部分:ec2 describe-instances -> ec2 descinst

  • 命令的任何部分:dynamodb table -> 提供所有包含子序列 table 的命令。

https://cloud.githubusercontent.com/assets/368057/11823996/18e69d16-a32c-11e5-80a2-defbaa6a8a80.png

内联文档

aws-shell 会自动在您输入命令时调出文档。它将显示 CLI 选项的内联文档。还有一个单独的文档面板,它将显示您正在输入的当前命令或选项的文档。按 F9 键可以在文档面板和 CLI 面板之间切换焦点,让您可以使用所选快捷键进行导航。

https://cloud.githubusercontent.com/assets/368057/11823320/36ae9b04-a328-11e5-9661-81abfc0afe5a.png

Fish 风格自动建议

aws-shell 支持类似 Fish 的自动建议。使用右箭头键来完成建议。

https://cloud.githubusercontent.com/assets/368057/11822961/4bceff94-a326-11e5-87fa-c664e1e82be4.png

命令历史记录

aws-shell 记录您运行的命令并将它们写入 ~/.aws/shell/history。您可以使用上箭头键和下箭头键浏览您的历史记录。

https://cloud.githubusercontent.com/assets/368057/11823211/b5851e9a-a327-11e5-877f-687dc1f90e27.png

工具栏选项

aws-shell 有一个底部的工具栏,提供几个选项

  • F2 在模糊匹配和子字符串匹配之间切换

  • F3 在 VI 和 Emacs 键绑定之间切换

  • F4 在单列和多列自动完成之间切换

  • F5 显示或隐藏帮助文档面板

  • F9 在 CLI 面板和文档面板之间切换焦点

  • F10Ctrl-D 退出 aws-shell

当你在工具栏中切换选项时,您的首选项将持久保存到 ~/.aws/shell/awsshellrc 文件,以便下次运行 aws-shell 时,您的首选项将得到恢复。

https://cloud.githubusercontent.com/assets/368057/11823907/8c3f1e60-a32b-11e5-9f99-fe504ea0a5dc.png

点命令

aws-shell 提供了针对 aws-shell 的特定命令。通过在命令前添加 . 前缀来访问这些命令。

退出 Shell

您可以通过运行 .exit.quit 命令来退出 shell。

使用 .edit 创建 Shell 脚本

有时您可能希望将您在 aws-shell 中运行的一系列命令组合成一个 shell 脚本。除了保存在历史文件中的命令历史外,aws-shell 还会跟踪您从第一次开始 aws-shell 会话以来运行的所有命令。

您可以通过运行 .edit 命令来在一个编辑器中打开所有这些命令。aws-shell 将使用 EDITOR 环境变量,如果未设置,则默认在 Windows 上使用 notepad,在其他平台上使用 vi

aws> ec2 describe-instances
aws> dynamodb list-tables
aws> .edit

使用 .profile 更改配置文件

您可以使用 .profile 点命令更改 aws-shell 当前使用的 AWS CLI 配置文件。如果您不带参数运行 .profile 命令,则将打印当前配置的 shell 配置文件。

aws> .profile demo
Current shell profile changed to: demo
aws> .profile
Current shell profile: demo

.cd

您可以使用 .cd 命令更改 aws-shell 的当前工作目录。

aws> !pwd
/usr
aws> .cd /tmp
aws> !pwd
/tmp

执行 Shell 命令

aws-shell 以多种方式与其他命令集成。首先,您可以像将 AWS CLI 命令管道到其他进程一样将输出重定向到文件。

aws> dynamodb list-tables --output text | head -n 1
TABLENAMES     First
aws> dynamodb list-tables --output text > /tmp/foo.txt

其次,如果您想运行 shell 命令而不是 AWS CLI 命令,可以在您的命令前添加 ! 前缀。

aws> !ls /tmp/
foo.txt                                    bar.txt

开发者预览状态

aws-shell 目前处于开发者预览阶段。我们欢迎反馈、功能请求和错误报告。为了响应用户反馈,我们可能会在迭代 aws-shell 时进行向后不兼容的更改。

更多信息

以下是更多信息的杂项链接

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装软件包 的信息。

源分布

aws-shell-0.2.2.tar.gz (55.4 kB 查看哈希值)

上传时间

构建分布

aws_shell-0.2.2-py2.py3-none-any.whl (50.6 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者