如何在Windows 10上从Bash Shell外部运行Linux命令

Windows 10包括一个用于运行Linux应用程序的底层“Windows Subsystem for Linux”,但它只能通过Bash shell访问。但是,有一种方法可以在不启动Bash窗口的情况下运行Linux应用程序。

这要归功于bash-c命令,用户可以使用它通过命令提示符和PowerShell来运行Linux命令,甚至可以创建桌面快捷方式,在启动时运行Linux命令或程序。

更新:如果您安装了多个Linux环境,可以使用wslconfig命令选择默认的Linux环境。还有一种方法可以在特定的Linux环境中运行命令。

如何在命令提示符或PowerShell中运行Linux命令

相关:如何在Windows 10上安装和使用Linux Bash Shell

在执行这些操作之前,您需要安装和设置Windows10的Bash shell。执行此操作后,您可以打开命令提示符窗口,然后运行以下命令在Bash窗口之外运行Linux软件:

bash -c "command"

例如,假设您希望通过apt-get安装emacs包。您需要在命令提示符窗口中运行以下命令:

bash -c "sudo apt-get install emacs"

使用bash-c时,Windows将在后台启动一个Bash shell,并将命令传递给它。该命令将一直运行到完成,然后与Bash shell一起退出。当前命令运行的任何终端输出都将直接出现在命令提示符窗口中,而不是单独的Bash shell窗口中。

此技巧还允许您在PowerShell中运行Linux命令,就像运行正常的Windows可执行文件一样。您可以通过直接运行.exe文件(就像在命令提示符窗口中那样),或通过在PowerShell中运行可执行文件的任何其他方法来执行此操作。

bash -c "uname -a"

与命令提示符窗口一样,命令的输出将直接显示在PowerShell中。这些方法也可用于将Linux命令添加到批处理文件或PowerShell脚本。

如何从运行对话框或开始菜单运行Linux命令

此技巧也适用于从“运行”对话框、“开始”菜单或任何第三方应用程序启动器运行命令。

例如,要从运行对话框启动vi,请按键盘上的Windows+R,然后运行以下命令:

bach -c "vi"

vi文本编辑器将出现在其自己的窗口中。

这也适用于“开始”菜单,因此您可以直接在“开始”菜单中键入相同的命令,然后按Enter键将其作为命令运行。

如何使用桌面快捷方式运行Linux命令

bash-c命令还允许通过桌面快捷方式启动Linux应用程序。例如,假设您希望通过桌面快捷方式启动vi文本编辑器。您可以右键单击桌面,指向新建>新建快捷方式,然后输入以下目标:

bash -c "vi"

您现在可以保存快捷方式,当您双击它时,它将启动vi。

相关:如何从Windows 10的Bash Shell运行图形化Linux桌面应用程序

有趣的是,此技巧也适用于从桌面快捷方式启动图形化Linux应用程序。安装X服务器并设置图形化Linux桌面应用程序。您应该能够创建快捷方式来直接启动它们。

但是,你必须像这样启动它们:

bash -c "DISPLAY=:0 command"

虽然您可以从Windows中的其他地方启动Bash命令,但无法直接从Bash shell窗口运行Windows软件或可执行文件。

相关文章