如何在Linux终端退出AWS Cli编辑模式并提交命令
解决AWS CLI终端输入JSON后无法提交的问题
嘿,我完全懂这种翻遍文档都找不到答案的挫败感!你遇到的其实是Linux终端里的**标准输入(stdin)**输入场景——当AWS CLI提示你输入POST内容时,它并不是在开启什么文本编辑器,只是在等待你结束标准输入的输入,所以单纯按回车只会换行,不会提交。
给你几个实用的解决办法:
- 直接用Ctrl+D提交输入:当你写完所有JSON内容后,直接按下键盘上的Ctrl+D组合键(这是Linux系统里结束标准输入的默认快捷键),终端就会把你输入的所有内容发送给AWS CLI,完成命令提交。
- 用文件重定向输入(适合长JSON):如果你的JSON内容比较复杂或者需要重复使用,建议先把JSON内容保存到一个文件里,比如命名为
aws-config.json,然后用命令重定向的方式传入:
这样就跳过了交互式输入的步骤,直接读取文件内容作为POST数据。aws your-target-command < aws-config.json - 命令行直接指定JSON(推荐):AWS CLI本身支持通过
--cli-input-json参数直接在命令行传入JSON内容,这样就不会触发交互式输入提示了。举个例子:
注意要用单引号把整个JSON字符串包裹起来,避免Shell解析里面的双引号导致错误。aws ec2 run-instances --cli-input-json '{"ImageId": "ami-xxxxxx", "InstanceType": "t2.micro"}'
为啥你之前试的Escape、:q、exit这些都没用呢?因为你根本没进入任何文本编辑器,只是在终端的标准输入流里输入内容,那些都是Vim等编辑器的命令,自然对当前场景不起作用啦~
内容的提问来源于stack exchange,提问作者Ew Na




