我在 Windows 10 上使用 WSL(适用于 Linux 的 Windows 子系统),并在其上安装了 Amazon AWS cli。当我启动 WSL(C:\\WINDOWS\\System32\\wsl.exe
在 PowerShell 中)时aws
,它运行正常。如果我尝试将其作为一行程序运行(C:\\WINDOWS\\System32\\wsl.exe aws
),它找不到该aws
命令。我需要将其作为一行程序才能从 VS Code 任务中使用它。
PS C:\Users\pablo.DCA> C:\\WINDOWS\\System32\\wsl.exe aws
/bin/bash: aws: command not found
PS C:\Users\pablo.DCA> C:\\WINDOWS\\System32\\wsl.exe
pablo@DCA-WS01:/mnt/c/Users/pablo.DCA$ aws
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
aws: error: too few arguments
一个简单的echo
命令就可以完成:
PS C:\Users\pablo.DCA> C:\\WINDOWS\\System32\\wsl.exe echo Hi
Hi
Python (我用它来安装 aws) 也是如此:
PS C:\Users\pablo.DCA> C:\\WINDOWS\\System32\\wsl.exe python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
为什么会发生这种情况?我该如何修复它,或者我应该尝试找出问题所在?
答案1
最有可能的是 AWS 不在系统路径中,例如/usr/bin/
。如果您将其添加到您的$PATH
,例如~/.bashrc
,它通常不会被执行,除非您重新启动终端。
一个选项是在 Windows 的一行调用中使用 aws 的完整路径:
c:\\windows\\system32\\wsl.exe /home/username/.local/bin/aws
-l
或者,你可以使用(或--login
)选项强制 bash 表现得像作为登录 shell 一样
c:\\windows\\system32\\wsl.exe bash -l aws