Dalam Pembaruan Windows 10 Creators (build 1703, April 2017), ini didukung secara native. Jadi sekarang Anda dapat menjalankan binari Windows dari Linux...
notepad.exe atau .exe lainnya (ekstensi diperlukan dan harus berada di jalur Anda, beberapa versi lama memerlukan seluruh jalur)
...dan sebaliknya menggunakan salah satu dari yang berikut:
bash.exe -c command_to_runyaitu:bash.exe -c lsbash -c command_to_runyaitu:bash -c lswsl command_to_runyaitu:wsl "ls"; atau tentukan distro yang ingin Anda gunakan untuk menjalankannya menggunakan:ubuntu run ls
Untuk informasi selengkapnya, lihat artikel tertaut di atas.
mengapa tidak menggunakan saja
$ powershell.exe Start filename
Start adalah Windows yang setara dengan xdg-open di sebagian besar linux atau open di macOS, yang berarti "buka dengan aplikasi desktop default". Saya suka menggunakan alias untuk membuka.
Solusi asli
Solusi resmi yang disediakan dengan Pembaruan Windows 10 Insider Preview (14951) didasarkan pada binfmt_msc yang hampir terlupakan Fasilitas Linux untuk meluncurkan binari. Perintah pendaftaran untuk binfmt_misc akan seperti ini (di mana /init adalah binfmt_misc sementara "penerjemah" untuk win-executable):
sudo echo ":WSLInterop:M::MZ::/init:" > /proc/sys/fs/binfmt_misc/register
Dan kemudian win-executable akan diluncurkan seperti program biasa:
$ 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
Bukan berarti setiap win-executable harus berada di windows (DrvFs ) sistem file - bukan pada sistem file Linux (VolFs ) - untuk mewarisi Windows yang tepat direktori kerja.
cbwin alternatif
Hingga Anda mendapatkan build terbaru, project cbwin menawarkan solusi, dengan menginstal 3 perintah linux baru di dalam WSL:
wcmd:memanggil win-executable melaluicmd.exe.wrun:memanggil win-executable secara sinkron denganCreateProcess, dan tunggu mati (tidak menggunakancmd.exe).wstart:meluncurkan perintah terpisah (asynchronously) (dengan menggunakancmd.exe).
Untuk menggunakannya, Anda harus:
- Instal cbwin :
outbash.exebaru akan diinstal di sistem file Windows reguler Anda (di suatu tempat di%PATH%Anda ), ditambah- 3 perintah-linux dalam sistem file WSL.
- Gunakan
outbash.exeini (di mana pun Anda menginstalnya) untuk memulai WSL, BUKANC:\Windows\System32\bash.exe! - Awali setiap win-executable dengan salah satu dari perintah tersebut, mis.
wrun notepad.
Kiat: Jika executable diluncurkan dengan wcmd atau wrun memunculkan anak mana pun, ini hanya bertahan selama yang dapat dieksekusi tetap hidup.
Dengan kata lain, mencoba memulai notepad.exe dengan wcmd tidak akan berfungsi, karena notepad akan dimatikan setelah diluncurkan -- Gunakan wrun (sinkron) atau wstart (asinkron) dalam hal ini.