aws cli 输出自动发送到 vi
aws cli output automatically being sent to vi
我目前正在学习 AWS CLI (v2) 并将其安装在 Ubuntu 18.04 上。我正在 运行ning zsh 并安装了 oh-my-zsh。我试图让 aws 命令输出作为 JSON 字符串(甚至作为文本)报告回终端,但输出总是 重定向到 vi.
我的 AWS 账户是全新的——没有 EC2 实例。当我运行以下命令时:
aws ec2 describe-instances
它发送预期的输出值(例如 { "Reservations": [] }),但直接发送到 vi,而不是将 JSON 字符串输出到要求之后关闭 vi 的终端。无论输出格式如何(json、文本、table)或我使用什么 shell(bash、zsh),都会发生这种情况。
我不确定这是 AWS CLI 配置 issue/change 还是 shell/Linux 配置 issue/change
- 我查看了我的 .zshrc、.bashrc、.bash_profile 和 .bash_aliases 文件,但没有看到任何明显的解决方案可以更改或重定向输出。
- 我一直在搜索 AWS CLI 文档、Stack Overflow 和 Google,但我没有找到修复或类似案例。
感谢您 any/all 的建议。
AWS 上有一篇标题为 Controlling Command Output from the AWS CLI 的文档。根据这个文档,正确的语法应该是
aws ec2 describe-instances --output json
我建议创建一个新的用户帐户 and/or 进入没有配置文件的子 shell 并再次尝试 运行 您的 AWS 命令。例如...
username:~$ sudo -u `whoami` bash --noprofile
# Now it drops us into a sub-shell with no /etc/profile or any scripts
bash-3.2$ aws ec2 describe-instances
以上将您带入一个不包含任何配置文件(/etc/profile 或 .bash_profile)文件的子 shell。它应该是原始的。从这里我们再次尝试你的命令,看看它做了什么。我想在这里它会工作得很好,不会让你进入 VI。如果是这样,那么您需要在别处寻找导致这种情况发生的 bash/zsh 包含的内容(例如:/etc/profile)。
注意:如果这不能解决您的问题,您的问题可能在 ~/.aws 文件夹中,我会清除该文件夹并从头开始,重新运行 aws configure
然后再次尝试您的命令。
这是 PAGER 环境变量设置为“less”(我与 vi 混淆了)。
此修复是更新 ~/.aws/config 文件并将 cli_pager 设置为空值,例如:
[default]
region = us-west-2
output = json
cli_pager =
感谢 Sorin 对我的问题发表评论并引导我找到答案。
只需 运行 你的命令 --no-cli-pager
就像这样
aws ec2 describe-instances --no-cli-pager
您还可以运行一个单行命令:
aws configure set cli_pager ""
我目前正在学习 AWS CLI (v2) 并将其安装在 Ubuntu 18.04 上。我正在 运行ning zsh 并安装了 oh-my-zsh。我试图让 aws 命令输出作为 JSON 字符串(甚至作为文本)报告回终端,但输出总是 重定向到 vi.
我的 AWS 账户是全新的——没有 EC2 实例。当我运行以下命令时:
aws ec2 describe-instances
它发送预期的输出值(例如 { "Reservations": [] }),但直接发送到 vi,而不是将 JSON 字符串输出到要求之后关闭 vi 的终端。无论输出格式如何(json、文本、table)或我使用什么 shell(bash、zsh),都会发生这种情况。
我不确定这是 AWS CLI 配置 issue/change 还是 shell/Linux 配置 issue/change
- 我查看了我的 .zshrc、.bashrc、.bash_profile 和 .bash_aliases 文件,但没有看到任何明显的解决方案可以更改或重定向输出。
- 我一直在搜索 AWS CLI 文档、Stack Overflow 和 Google,但我没有找到修复或类似案例。
感谢您 any/all 的建议。
AWS 上有一篇标题为 Controlling Command Output from the AWS CLI 的文档。根据这个文档,正确的语法应该是
aws ec2 describe-instances --output json
我建议创建一个新的用户帐户 and/or 进入没有配置文件的子 shell 并再次尝试 运行 您的 AWS 命令。例如...
username:~$ sudo -u `whoami` bash --noprofile
# Now it drops us into a sub-shell with no /etc/profile or any scripts
bash-3.2$ aws ec2 describe-instances
以上将您带入一个不包含任何配置文件(/etc/profile 或 .bash_profile)文件的子 shell。它应该是原始的。从这里我们再次尝试你的命令,看看它做了什么。我想在这里它会工作得很好,不会让你进入 VI。如果是这样,那么您需要在别处寻找导致这种情况发生的 bash/zsh 包含的内容(例如:/etc/profile)。
注意:如果这不能解决您的问题,您的问题可能在 ~/.aws 文件夹中,我会清除该文件夹并从头开始,重新运行 aws configure
然后再次尝试您的命令。
这是 PAGER 环境变量设置为“less”(我与 vi 混淆了)。
此修复是更新 ~/.aws/config 文件并将 cli_pager 设置为空值,例如:
[default]
region = us-west-2
output = json
cli_pager =
感谢 Sorin 对我的问题发表评论并引导我找到答案。
只需 运行 你的命令 --no-cli-pager
就像这样
aws ec2 describe-instances --no-cli-pager
您还可以运行一个单行命令:
aws configure set cli_pager ""