Windows 10 Creators Update (ビルド 1703、2017 年 4 月) では、これがネイティブにサポートされています。 Linux から Windows バイナリを実行できるようになりました...
notepad.exe
またはその他の .exe
(拡張子が必要で、パス上にある必要があります。一部の古いバージョンではパス全体が必要です)
...次のいずれかを使用してその逆:
bash.exe -c command_to_run
例:bash.exe -c ls
bash -c command_to_run
例:bash -c ls
wsl 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
(非同期で) この場合。