Windows 10 Creators Update (ビルド 1703、2017 年 4 月) では、これがネイティブにサポートされています。 Linux から Windows バイナリを実行できるようになりました...
notepad.exe またはその他の .exe (拡張子が必要で、パス上にある必要があります。一部の古いバージョンではパス全体が必要です)
...次のいずれかを使用してその逆:
bash.exe -c command_to_run例:bash.exe -c lsbash -c command_to_run例:bash -c lswsl command_to_run例:wsl "ls";または、次を使用して実行に使用するディストリビューションを指定します:ubuntu run ls
詳細については、上記のリンク先の記事を参照してください。
使わない理由
$ powershell.exe Start filename
Start xdg-open に相当する Windows ほとんどの Linux または open で これは、「デフォルトのデスクトップ アプリケーションで開く」ことを意味します。開くようにエイリアスするのが好きです。
ネイティブ ソリューション
Windows 10 Insider Preview Update で提供される公式ソリューション (14951) はほとんど忘れ去られていた binfmt_msc に基づいています バイナリを起動するための Linux 機能。 binfmt_misc の登録コマンド このようになります (ここで /init 暫定 binfmt_misc です win-executables の「インタープリター」):
sudo echo ":WSLInterop:M::MZ::/init:" > /proc/sys/fs/binfmt_misc/register
そして通常のプログラムのように 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
<ブロック引用> win-executable がウィンドウ (DrvFs) に常駐していなければならないというわけではありません ) ファイル システム - Linux のファイル システム (VolFs ではありません) ) - 適切な Windows を継承するため 作業ディレクトリ。
cbwin 代替
最新のビルドを入手するまで、プロジェクト cbwin は、WSL 内に 3 つの新しい Linux コマンドをインストールすることによる回避策を提供します。
wcmd:cmd.exeを介して win-executable を呼び出します .wrun:CreateProcessと同期して win-executable を呼び出します 、死ぬのを待つ (cmd.exeを使用しない) )。wstart:切り離された (非同期の) コマンドを起動します (cmd.exeを使用) ).
それらを使用するには、次のことを行う必要があります:
<オール>- 新しい
outbash.exe通常の Windows ファイルシステム (%PATH%のどこかにインストールされます) )、プラス - WSL ファイルシステムの 3 つの linux コマンド。
outbash.exe を使用してください C:\Windows\System32\bash.exe ではなく、WSL を開始する (どこにインストールしても) wrun notepad .
ヒント: 実行可能ファイルが wcmd で起動された場合 または wrun 子は生成されますが、実行可能ファイルが生きている間だけ存続します。
つまり、notepad.exe を起動しようとしています。 wcmd で メモ帳のため、機能しません 起動直後に強制終了 -- wrun を使用 (同期) または wstart (非同期で) この場合。