如何在WSL Linux外壳中运行Windows 10程序?

译文
系统 Windows Linux
Windows Subsystem for Linux(WSL)让您可以直接在Linux外壳中运行Windows 10程序,弥合了Windows和Linux之间的鸿沟。WSL的优势之一是,您不仅可以在Windows 10中运行Linux发行版,还可以灵活地在Linux中运行Windows 10程序。

[[339410]]

【51CTO.com快译】Windows Subsystem for Linux(WSL)让您可以直接在Linux外壳中运行Windows 10程序,弥合了Windows和Linux之间的鸿沟。

WSL的优势之一是,您不仅可以在Windows 10中运行Linux发行版,还可以灵活地在Linux中运行Windows 10程序。

这一功能使Linux可以控制Windows的诸多方面,或者使Windows程序能够与WSL文件系统或Linux命令处理的输出进行交互。

它还让WSL用户可以创建影响Linux发行版的复杂外壳脚本,还可以用于在Windows 10中执行命令。

如何从WSL Linux启动Windows 10可执行文件?

Windows 10和Linux都使用“PATH”变量,该变量含有您在执行程序时搜索的文件夹列表。

如果您尝试运行某个程序,但在PATH中找不到该程序,Linux和Windows都会告诉您找不到该程序。在这种情况下,您需要使用完整路径(比如“C:\Notepad2\Notepad.exe”)来启动程序。

Windows 10启动WSL发行版时,它会配置Linux PATH变量,以包含标准的Linux二进制文件夹和常规的Windows 10路径。

您可以通过在WSL外壳提示符下键入env |grep“ PATH”命令来查看该路径。

图1. PATH变量

注意:平常的Windows驱动器号会自动挂载在‘/ mnt / c’或‘/ mnt / d’等下面。

您在WSL外壳中时,只需键入全名(包括.exe扩展名),即可执行Windows 10程序。

如果执行命令时不包括.exe扩展名,WSL会认为它是Linux命令。

比如说,如果您想启动Windows记事本来编辑PHP源文件,应输入以下命令:

 

  1. notepad.exe test.php 

该命令将让您可以使用记事本而不是普通的Linux文本编辑器来编辑Linux文件。

如果您想启动不在PATH中的程序,需要指定完整文件名。

比如说,如果您想使用7Zip来存档文件夹,但是该文件夹不在路径中,您可以使用以下命令:

 

  1. "/mnt/c/program files/7-zip/7z.exe" a -tzip code.zip code/ 

请注意,由于“program files”含有空格,因此我们不得不将7z.exe命令括在引号中。

应注意的是,您将无法在WSL中启动需要管理员权限的Windows 10程序。同样,如果Linux文件需要提升的权限,您无法使用Windows程序访问它。

处理Windows命令的输出

除了启动程序与WSL中的文件交互外,您还可以在Linux中处理Windows 10程序的输出。

执行Windows控制台程序后,输出直接在Linux中而不是Windows中加以显示。

然后可以使用awk、sed或sort之类的程序来处理该输出。

举个简单的例子,如果我们想获取按服务名称排序的Windows 10服务列表,可以使用以下命令:

 

  1. sc.exe query | grep SERVICE_NAME | awk '{print $1=""; print $0}' | sort -bf| sed '/^$/d' 

图2. 通过Linux命令管道输出SC.exe

该功能还让您可以将Windows应用程序用作复杂的Linux外壳脚本的一部分。

这些外壳脚本可用于检查进程、监测文件更改、基于Windows 10进程的输出执行命令以及执行许多其他任务。

虽然您可以找到大多数Linux程序的Windows对应版本,但如果使用WSL混合搭配这两种环境,您将获得两全其美的效果。

该功能让您可以使用在任何一种环境中用起来最擅长的工具。

原文标题:How to run Windows 10 programs in a WSL Linux shell,作者:Lawrence Abrams

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:庞桂玉 来源: 51CTO
相关推荐

2018-04-16 09:20:45

Windows 10LinuxWSL

2016-08-02 10:34:17

LinuxWindows双启动

2019-07-17 15:23:23

Windows 10应用程序Windows

2018-12-21 19:30:28

Windows 10Windows管理员身份

2019-03-25 10:30:11

Windows 10 Windows程序

2019-03-27 13:20:31

Windows 10更新驱动程序

2019-06-14 11:15:27

WindowsLinuxWSL

2021-03-11 10:40:45

Windows 10WSL 2Linux

2018-10-29 10:13:29

Windows 10应用程序卸载

2021-01-07 15:01:36

Windows 10 Linux微软

2017-09-18 10:05:15

WindowsLinux容器

2013-05-14 10:53:43

2013-04-09 09:38:02

2020-04-30 08:00:00

WSLWindows 10Linux

2021-09-16 17:38:49

UbuntuLinuxJava

2019-05-08 11:30:41

MicrosoftWindows 10后台应用程序

2018-07-18 16:35:06

Windows 10Windows驱动程序

2018-04-23 10:10:25

Windows 10关闭通知

2018-08-30 10:00:12

Windows 10修复黑屏

2018-04-09 09:45:09

Windows 10休眠
点赞
收藏

51CTO技术栈公众号