通过PowerShell/cmd为Linux应用程序调用Windows子系统

问题描述:

最近推出的Windows内部人员构建14316,我们有Linux的Windows子系统(测试版),允许在Windows上运行Ubuntu Linux CLI软件。 可以通过在Windows PowerShell中运行bash命令或通过在Windows上运行Ubuntu上的Bash应用程序来启动它。通过PowerShell/cmd为Linux应用程序调用Windows子系统

所以,我的问题是关于第一种方式。我们可以从PowerShell启动bash,但是没有其他的ubuntu CLI应用程序可用。你如何做一项工作?假设我想让zsh在不使用bash的情况下启动。

+0

在这个新的宇宙中有'zsh'吗?它是否安装?你可以安装它吗?这些是你的问题吗? –

+0

@EtanReisner不,这些不是我的问题。请再读第二段。我的意思是打开子系统的应用程序,而不先启动bash。安装zsh与真实硬件上的ubuntu相同。 –

+0

一旦你安装了'zsh' *不*只为你工作,是否运行'zsh'(而不是'bash')?如果不是为什么不呢?怎么了? –

还不行,根据Windows Blog: Run Bash on Ubuntu on Windows

三是注意Bash和Linux工具无法与Windows应用程序和工具,反之亦然互动。因此,您将无法从Bash运行记事本,或者从PowerShell运行Bash中的Ruby。

in Microsoft/CommandLine-Documentation#32,大约是从内部猛砸运行Win32的命令相关的能力:

放心吧,我们要寻找到在未来的互操作的故事,但我们赢了在Windows 10周年更新时间框架中不会添加此功能。

您可能会用-c选项bash来运行特定命令。

+1

是的,使从PowerShell推送参数到-c的函数有点作品。例如,'function Bash-Echo($ x){bash -c“echo $ x”}“,或者如果不需要参数,甚至可以使用别名。虽然我不认为这是很好的解决方案,但暂时还是可以的。 –

+0

不要将bash.exe视为严格的bash shell。而应将其视为可访问Windows Linux子系统(WLS)的控制台。如果你要安装zsh作为你选择的shell(你仍然需要打开bash.exe),并选择它作为默认shell,那么zsh将在控制台中打开。如果这没有意义,请参阅askubuntu.com或搜索其他Windows Linux子系统帮助。您也可以在Bash控制台中输入zsh。无论系统如何,您都无法打开独立的zsh。 –