ank*_*tis 28 linux windows bash ubuntu windows-subsystem-for-linux
随着2016年夏季的Windows 10周年更新,可以在新的Linux子系统Linux(WSL)中运行ubuntu二进制文件,这是一个"轻量级"虚拟化子系统.
不幸的是,启动时C:\Windows\System32\bash.exe,另一个bashELF二进制文件在WSL内部启动一个进程,从那里你无法逃脱!您可以只启动其他ELF二进制文件.
那么如何*.exe从Windows Bash 执行文件?[1]
[1]问题还在微软的"官方"GH支持回购中提出.
And*_*Mao 25
在Windows 10 Creators Update(build 1703,2017年4月)中,本机支持此功能.所以你现在可以从Linux运行Windows二进制文件了...
......反之亦然:
有关更多信息,请参阅上面链接的文章.
ank*_*tis 24
Windows 10 Insider预览更新(14951)提供的官方解决方案基于几乎被遗忘的binfmt_msc Linux工具,用于启动二进制文件.binfmt_misc的注册命令将是这样的(其中/init是win-executables 的临时binfmt_misc "解释器"):
sudo echo ":WSLInterop:M::MZ::/init:" > /proc/sys/fs/binfmt_misc/register
Run Code Online (Sandbox Code Playgroud)
然后win-executable将像常规程序一样启动:
$ export PATH=$PATH:/mnt/c/Windows/System32
$ notepad.exe
$ ipconfig.exe | grep IPv4 | cut -d: -f2
$ ls -la | findstr.exe foo.txt
$ cmd.exe /c dir
Run Code Online (Sandbox Code Playgroud)
并不是说任何win-executable必须驻留在windows(DrvFs)文件系统中 - 而不是在Linux的文件系统(VolFs)上 - 以便继承正确的Windows工作目录.
直到你获得最新的构建,项目cbwin通过在WSL中安装3个新的linux命令提供了一种解决方法:
wcmd:通过调用win-executable cmd.exe.wrun:与...同步调用win-executable CreateProcess,然后等待死(不使用cmd.exe).wstart:启动一个分离(异步)命令(使用cmd.exe).要使用它们,您必须:
outbash.exe将安装在您的常规Windows文件系统(在您的某个地方%PATH%),以及outbash.exe(无论你在哪里安装它)来启动WSL,不是C:\Windows\System32\bash.exe!wrun notepad.提示:如果可执行文件与任何子项一起启动wcmd或wrun生成,那么只有可执行文件保持活动状态才能生存.
换句话说,试图启动notepad.exe与wcmd将无法正常工作,因为记事本使用-将只是已经推出后杀死wrun(同步),或wstart在此情况下(异步).
为什么不直接使用
$ powershell.exe Start filename
Run Code Online (Sandbox Code Playgroud)
StartWindows 相当于xdg-open大多数 Linux 或openmacOS,这意味着“使用默认桌面应用程序打开”。我喜欢给它起别名来打开。
| 归档时间: |
|
| 查看次数: |
16377 次 |
| 最近记录: |