Bagaimana Menjalankan Program Windows dari Bash Shell Windows 10
Dalam Pembuat Pencipta, shell Bash Windows 10 kini membolehkan anda menjalankan Windows binari dan perintah Command Prompt standard, langsung dari Bash. Anda boleh menjalankan kedua-dua program Linux dan Windows dari shell Bash sama, atau bahkan memasukkan perintah Windows ke dalam skrip Bash.
Apa yang Anda Perlu Tahu
Berikut adalah beberapa butiran asas yang perlu anda ketahui mengenai ciri ini:
- Pengguna akaun: Program yang dilancarkan dari shell Bash akan dijalankan seolah-olah ia dilancarkan oleh akaun pengguna Windows semasa.
- Kebenaran: Program ini akan mempunyai keizinan yang sama seperti proses Bash.exe. Jadi, jika anda mahu arahan ini mempunyai akses Pentadbir, anda perlu menjalankan shell Bash sebagai Pentadbir.
- Direktori Kerja: Program Windows berkongsi "direktori kerja" sama seperti shell Bash. Jadi, jika anda menjalankan arahan yang menyenaraikan kandungan direktori semasa, ia akan menyenaraikan kandungan direktori kerja semasa dalam shell Bash. Menggunakan
cd
arahan untuk menukar direktori kerja.
Dengan itu, mari kita lihat cara menjalankan program.
Cara Menjalankan Program Windows
Untuk menjalankan program Windows, masukkan laluan ke fail .exe program dalam shell Bash. Ingat bahawa pemacu Windows C: anda boleh didapati di / mnt / c di Bash. Persekitaran Bash juga bersifat kes, jadi anda perlu menentukan permodalan yang betul.
Katakan anda mahu melancarkan utiliti Ping yang terletak di C: \ Windows \ System32 \ PING.EXE. Anda akan menjalankan arahan berikut:
/mnt/c/Windows/System32/PING.EXE
Perintah berikut tidak akan berfungsi, kerana Bash sensitif:
/mnt/c/windows/system32/ping.exe
Ini agak rumit jika laluan mengandungi watak kompleks seperti ruang dan tanda kurung, seperti folder Program Files. Anda perlu "melarikan diri" ruang, tanda kurung, dan aksara kompleks lain dengan mempersiapkan mereka dengan aksara "\".
Sebagai contoh, katakan anda ingin menjalankan program Internet Explorer yang terletak di C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe. Anda perlu menjalankan arahan berikut dalam Bash:
/ mnt / c / Program \ Files \ \ (x86 \) / Internet \ Explorer / iexplore.exe
Perhatikan "\" sebelum aksara dan ruang pendakap. Watak-watak ini mesti "melarikan diri" atau Bash tidak akan menyedari watak-watak itu adalah sebahagian daripada laluan fail.
Bagaimana untuk Mengeluarkan Argumen kepada Perintah
Shell Bash melepasi hujah terus kepada arahan yang anda laksanakan.
Sebagai contoh, jika anda ingin ping example.com, anda akan menjalankan:
/mnt/c/Windows/System32/PING.EXE example.com
Atau, jika anda mahu membuka fail tuan rumah Windows di Notepad, anda akan menjalankan:
/mnt/c/Windows/System32/notepad.exe "C: \ Windows \ System32 \ drivers \ etc \ hosts"
Anda menggunakan laluan fail Windows standard apabila menghantar laluan fail terus ke program Windows. Itu kerana Bash melepasi hujah secara langsung. Notepad.exe dan program Windows lain mengharapkan laluan fail Windows.
Bagaimana Melaksanakan Perintah Terbina dalam
Sesetengah arahan Windows bukan fail exe, tetapi dibina dalam Command Prompt itu sendiri. Sebagai contoh, ini termasuk dir
arahan yang biasanya anda jalankan dalam Command Prompt. Untuk menjalankan arahan sedemikian, anda perlu menjalankan cmd.exe
binari yang berkaitan dengan Prompt Perintah dan lulus arahan sebagai hujah dengan / C, seperti itu:
/mnt/c/Windows/System32/cmd.exe / C arahan
Sebagai contoh, untuk menjalankan dir
arahan dibina ke dalam Command Prompt, anda akan menjalankan arahan berikut:
/mnt/c/Windows/System32/cmd.exe / C dir
Cara Tambah Direktori ke Laluan
Persekitaran Windows Services untuk Linux merawat executable Windows sama seperti cara memperlakukan binari Linux. Ini bermakna anda boleh menambah direktori yang mengandungi fail .exe ke laluan dan kemudian laksanakan fail .exe tersebut secara langsung. Sebagai contoh, untuk menambah direktori System32 ke laluan anda, anda akan menjalankan:
eksport PATH = $ PATH: / mnt / c / Windows / System32
Anda kemudiannya dapat menjalankan fail Windows .exe yang terletak dalam folder System32 secara langsung, seperti:
Example.com PING.exe
notepad.exe
cmd.exe / C dir
Bagaimana Paip Output Satu Arahan ke Lain
Output perintah Windows boleh disalurkan ke perintah Linux, dan sebaliknya. Sebagai contoh, anda boleh menggunakan ipconfig.exe -all
arahan untuk menyenaraikan butiran mengenai antaramuka rangkaian anda dan paip ke Linux grep
arahan untuk mencari output. Sebagai contoh, untuk menyenaraikan semua maklumat mengenai sambungan anda dan cari bahagian yang sepadan dengan "Alamat IPv4", anda akan menjalankan:
/mnt/c/Windows/System32/ipconfig.exe -all | grep "Alamat IPv4"
Itulah proses asas. Perintah ini juga akan berfungsi apabila dimasukkan ke dalam skrip Bash, jadi anda boleh menulis skrip Bash yang menggabungkan kedua perintah Windows dan utiliti Linux. Jika ia berjalan di shell Bash, ia akan berfungsi dalam skrip Bash.
Dan, jika anda ingin pergi dengan cara lain, anda boleh menggunakan perintah "bash -c" untuk menjalankan arahan Bash dari Windows Command Prompt standard.