Cách chạy chương trình Windows từ Bash Shell của Windows 10

Mục lục:

Cách chạy chương trình Windows từ Bash Shell của Windows 10
Cách chạy chương trình Windows từ Bash Shell của Windows 10

Video: Cách chạy chương trình Windows từ Bash Shell của Windows 10

Video: Cách chạy chương trình Windows từ Bash Shell của Windows 10
Video: Cách Tải File Excel Từ Google Sheet | Tải File Excel Trên Google Drive - YouTube 2024, Tháng tư
Anonim
Trong bản cập nhật người sáng tạo, vỏ Bash của Windows 10 giờ đây cho phép bạn chạy các tệp nhị phân Windows và các lệnh Command Prompt chuẩn, ngay từ Bash. Bạn có thể chạy cả hai chương trình Linux và Windows từ cùng một vỏ Bash, hoặc thậm chí kết hợp các lệnh Windows vào một tập lệnh Bash.
Trong bản cập nhật người sáng tạo, vỏ Bash của Windows 10 giờ đây cho phép bạn chạy các tệp nhị phân Windows và các lệnh Command Prompt chuẩn, ngay từ Bash. Bạn có thể chạy cả hai chương trình Linux và Windows từ cùng một vỏ Bash, hoặc thậm chí kết hợp các lệnh Windows vào một tập lệnh Bash.

Những gì bạn cần biết

Dưới đây là một số chi tiết cơ bản bạn cần biết về tính năng này:

  • Tài khoản người dùng: Các chương trình được khởi chạy từ vỏ Bash sẽ chạy như thể chúng được khởi chạy bởi tài khoản người dùng Windows hiện tại.
  • Quyền: Các chương trình này sẽ có các quyền tương tự như quy trình Bash.exe. Vì vậy, nếu bạn muốn các lệnh này có quyền truy cập Quản trị viên, bạn sẽ cần chạy vỏ Bash làm Quản trị viên.
  • Thư mục làm việc: Các chương trình Windows chia sẻ cùng một "thư mục làm việc" như vỏ Bash. Vì vậy, nếu bạn chạy một lệnh liệt kê các nội dung của thư mục hiện tại, nó sẽ liệt kê các nội dung của thư mục làm việc hiện tại trong vỏ Bash. Sử dụng

    cd

    lệnh thay đổi thư mục làm việc.

Với ý nghĩ đó, chúng ta hãy xem cách chạy chương trình.

Làm thế nào để chạy một chương trình Windows

Để chạy chương trình Windows, hãy nhập đường dẫn đến tệp.exe của chương trình trong vỏ Bash. Hãy nhớ rằng ổ đĩa Windows C: của bạn có sẵn tại / mnt / c trong Bash. Môi trường Bash cũng phân biệt chữ hoa chữ thường, vì vậy bạn phải chỉ định viết hoa chính xác.

Giả sử bạn muốn khởi chạy tiện ích Ping có tại C: Windows System32 PING.EXE. Bạn sẽ chạy lệnh sau:

/mnt/c/Windows/System32/PING.EXE

Lệnh sau sẽ không hoạt động, vì Bash phân biệt chữ hoa chữ thường:

/mnt/c/windows/system32/ping.exe

Điều này phức tạp hơn một chút nếu đường dẫn chứa các ký tự phức tạp như dấu cách và dấu ngoặc vuông, như thư mục Program Files. Bạn phải "thoát" dấu cách, dấu ngoặc và các ký tự phức tạp khác bằng cách đặt trước chúng bằng ký tự "".
Điều này phức tạp hơn một chút nếu đường dẫn chứa các ký tự phức tạp như dấu cách và dấu ngoặc vuông, như thư mục Program Files. Bạn phải "thoát" dấu cách, dấu ngoặc và các ký tự phức tạp khác bằng cách đặt trước chúng bằng ký tự "".

Ví dụ: giả sử bạn muốn chạy chương trình Internet Explorer tại C: Program Files (x86) Internet Explorer iexplore.exe. Bạn sẽ phải chạy lệnh sau trong Bash:

/mnt/c/Program Files (x86)/Internet Explorer/iexplore.exe

Lưu ý dấu "" trước dấu cách và dấu ngoặc đơn. Các ký tự này phải được "thoát" hoặc Bash sẽ không nhận ra các ký tự là một phần của đường dẫn tệp.

Image
Image

Làm thế nào để vượt qua một đối số cho một lệnh

Shell Bash chuyển đối số trực tiếp đến các lệnh bạn thực hiện.

Ví dụ: nếu bạn muốn ping example.com, bạn sẽ chạy:

/mnt/c/Windows/System32/PING.EXE example.com

Hoặc, nếu bạn muốn mở tệp máy chủ Windows trong Notepad, bạn sẽ chạy:

/mnt/c/Windows/System32/notepad.exe 'C:WindowsSystem32driversetchosts'

Bạn sử dụng đường dẫn tệp Windows chuẩn khi chuyển đường dẫn tệp trực tiếp đến chương trình Windows. Đó là bởi vì Bash chuyển trực tiếp đối số. Notepad.exe và các chương trình Windows khác mong đợi một đường dẫn tệp Windows.

Image
Image

Cách chạy lệnh tích hợp

Một số lệnh Windows không phải là các tệp.exe, nhưng được tích hợp vào Command Prompt. Ví dụ, điều này bao gồm

dir

lệnh bạn thường có thể chạy trong Command Prompt. Để chạy một lệnh như vậy, bạn cần chạy

cmd.exe

nhị phân được kết hợp với Dấu nhắc lệnh và truyền lệnh đó làm đối số với / C, như sau:

/mnt/c/Windows/System32/cmd.exe /C command

Ví dụ: để chạy

dir

lệnh được tích hợp trong Command Prompt, bạn sẽ chạy lệnh sau:

/mnt/c/Windows/System32/cmd.exe /C dir

Image
Image

Cách thêm thư mục vào đường dẫn

Môi trường Windows Services for Linux xử lý các tệp thực thi Windows tương tự như cách xử lý các tệp nhị phân của Linux. Điều này có nghĩa rằng bạn có thể thêm một thư mục chứa các tệp.exe vào đường dẫn và sau đó thực thi các tệp.exe đó trực tiếp. Ví dụ: để thêm thư mục System32 vào đường dẫn của bạn, bạn sẽ chạy:

export PATH=$PATH:/mnt/c/Windows/System32

Sau đó bạn có thể chạy các tệp Windows.exe nằm trong thư mục System32 trực tiếp, như sau:

PING.exe example.com

notepad.exe

cmd.exe /C dir

Image
Image

Làm thế nào để ống đầu ra của một lệnh khác

Đầu ra của lệnh Windows có thể được chuyển tới lệnh Linux và ngược lại. Ví dụ: bạn có thể sử dụng

ipconfig.exe -all

lệnh để liệt kê chi tiết về các giao diện mạng của bạn và đưa nó vào Linux

grep

lệnh để tìm kiếm đầu ra. Ví dụ: để liệt kê tất cả thông tin về kết nối của bạn và tìm kiếm các phần khớp với “Địa chỉ IPv4”, bạn sẽ chạy:

/mnt/c/Windows/System32/ipconfig.exe -all | grep 'IPv4 Address'

Đó là quá trình cơ bản. Các lệnh này cũng sẽ hoạt động khi được tích hợp vào một tập lệnh Bash, vì vậy bạn có thể viết một kịch bản Bash kết hợp cả các lệnh Windows và các tiện ích Linux. Nếu nó chạy trong shell Bash, nó sẽ làm việc trong một kịch bản Bash.
Đó là quá trình cơ bản. Các lệnh này cũng sẽ hoạt động khi được tích hợp vào một tập lệnh Bash, vì vậy bạn có thể viết một kịch bản Bash kết hợp cả các lệnh Windows và các tiện ích Linux. Nếu nó chạy trong shell Bash, nó sẽ làm việc trong một kịch bản Bash.

Và, nếu bạn muốn đi theo một cách khác, bạn có thể sử dụng lệnh “bash -c” để chạy các lệnh Bash từ Windows Command Prompt chuẩn.

Đề xuất: