当前位置: 首页 > 科技观察

如何在WSLLinuxshell中运行Windows10程序?_0

时间:2023-03-17 10:05:38 科技观察

【.com速译】WindowsSubsystemforLinux(WSL)允许您直接在Linuxshell中运行Windows10程序,弥合了Windows和Linux之间的鸿沟。WSL的优势之一是不仅可以在Windows10中运行Linux发行版,还可以灵活地在Linux中运行Windows10程序。此功能允许Linux控制Windows的许多方面,或者使Windows程序能够与WSL文件系统或Linux命令处理的输出进行交互。它还允许WSL用户创建影响Linux发行版的复杂shell脚本,也可用于在Windows10中执行命令。如何从WSLLinux启动Windows10可执行文件?Windows10和Linux都使用“PATH”变量,其中包含您在执行程序时搜索的文件夹列表。如果你尝试运行一个程序,但在PATH中没有找到它,Linux和Windows都会告诉你找不到该程序。在这种情况下,您需要使用完整路径(例如“C:\Notepad2\Notepad.exe”)来启动程序。当Windows10启动WSL发行版时,它会将LinuxPATH变量配置为包含标准Linux二进制文件夹和常规Windows10路径。您可以通过输入env|查看该路径在WSLshell提示符下执行grep“PATH”命令。图1.PATH变量注意:正常的Windows驱动器盘符会自动安装在“/mnt/c”或“/mnt/d”等下。当您在WSLshell中时,只需键入其即可执行Windows10程序全名,包括.exe扩展名。如果执行不包含.exe扩展名的命令,WSL会将其视为Linux命令。例如,如果您想启动Windows记事本来编辑PHP源文件,您应该输入以下命令:notepad.exetest.php这条命令将允许您使用记事本而不是普通的Linux文本编辑器来编辑Linux文件。如果你想启动一个不在PATH中的程序,你需要指定完整的文件名。比如你想用7Zip压缩一个文件夹,但是文件夹不在路径中,可以使用如下命令:“/mnt/c/programfiles/7-zip/7z.exe”a-tzipcode。邮政编码/请注意,我们必须将7z.exe命令括在引号中,因为“程序文件”包含空格。需要注意的是,您将无法在WSL中启动需要管理员权限的Windows10程序。同样,如果Linux文件需要更高的权限,则您无法使用Windows程序访问它。处理Windows命令的输出除了在WSL中启动程序与文件交互外,您还可以在Linux中处理Windows10程序的输出。Windows控制台程序执行后,输出直接显示在Linux而不是Windows。然后可以使用awk、sed或sort等程序处理此输出。举个简单的例子,如果我们想获取按服务名称排序的Windows10服务列表,我们可以使用以下命令:sc.exequery|grepSERVICE_NAME|awk'{print$1="";print$0}'|sort-bf|sed'/^$/d'图2.通过Linux命令管道传输SC.exe输出此功能还允许您将Windows应用程序用作复杂Linuxshell脚本的一部分。这些shell脚本可用于检查进程、监视文件更改、根据Windows10进程的输出执行命令,以及执行许多其他任务。虽然您可以为大多数Linux程序找到对应的Windows,但如果您将这两种环境与WSL混合搭配,您将获得两全其美的效果。此功能使您可以使用在任一环境中都能发挥最佳效果的工具。原标题:HowtorunWindows10programsinaWSLLinuxshell,作者:LawrenceAbrams