Trang chủ » làm thế nào để » Cách chạy các chương trình Windows từ Bash Shell của Windows 10

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

    Trong Bản cập nhật người tạo, trình bao Bash của Windows 10 giờ đây cho phép bạn chạy các nhị phân Windows và các lệnh Dấu nhắc lệnh tiêu chuẩn, ngay từ Bash. Bạn có thể chạy cả 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 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ừ shell 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ùng quyền với 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 shell Bash với tư cách 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 của Wikipedia như vỏ Bash. Vì vậy, nếu bạn chạy một lệnh liệt kê nội dung của thư mục hiện tại, nó sẽ liệt kê nội dung của thư mục làm việc hiện tại trong shell 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 làm thế nào để chạy một chương trình.

    Cách chạy 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 trình bao 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 đúng.

    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, như các thư mục Tệp Chương trình. Bạn phải thoát khỏi không gian, dấu ngoặc và các ký tự phức tạp khác bằng cách thêm tiền tố vào chúng bằng ký tự.

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

    / mnt / c / Chương trình \ Files \ \ (x86 \) / Internet \ Explorer / iexplore.exe

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

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

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

    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: \ Windows \ System32 \ driver \ etc \ hosts"

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

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

    Một số lệnh Windows không phải là tệp .exe, nhưng được tích hợp vào chính Dấu nhắc lệnh. Ví dụ, điều này bao gồm thư mục lệnh bạn thường có thể chạy trong Dấu nhắc lệnh. Để chạy lệnh như vậy, bạn cần chạy cmd.exe nhị phân được liên kết với Dấu nhắc Lệnh và truyền lệnh đó dưới dạng đối số với / C, như vậy:

    /mnt/c/Windows/System32/cmd.exe / C lệnh

    Ví dụ: để chạy thư mục lệnh được tích hợp trong Dấu nhắc lệnh, bạn sẽ chạy lệnh sau:

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

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

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

    xuất 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, như vậy:

    PING.exe example.com
    notepad.exe
    thư mục cmd.exe / C

    Làm thế nào để chuyển đầu ra của lệnh này sang lệnh khác

    Đầu ra của lệnh Windows có thể được chuyển sang lệnh Linux và ngược lại. Ví dụ: bạn có thể sử dụng ipconfig.exe -tất cả lệnh để liệt kê chi tiết về các giao diện mạng của bạn và chuyển nó sang 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 của LINE, bạn sẽ chạy:

    /mnt/c/Windows/System32/ipconfig.exe -all | grep "Địa chỉ IPv4"

    Đó 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 tập lệnh Bash, vì vậy bạn có thể viết tập lệnh Bash kết hợp cả lệnh Windows và tiện ích Linux. Nếu nó chạy trong shell Bash, nó sẽ hoạt động 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 -viên để chạy các lệnh Bash từ Dấu nhắc lệnh Windows tiêu chuẩn.