在win系统中运行linux程序,如何在WSL Linux外壳中运行Windows 10程序?

ca9510a3bad2be67c54e8df8088c397c.png

【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”命令来查看该路径。

7c3b8fe32acbfd3ce52ea1a7be9914ee.png

图1. PATH变量

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

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

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

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

notepad.exe test.php

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

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

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

"/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服务列表,可以使用以下命令:

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

57f2cc29ade477ab8d19fff744124665.png

图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】

【编辑推荐】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值