Đề XuấT, 2024

Editor Choice

Cách Linux Bash Shell hoạt động trên Windows 10

Với việc phát hành Bản cập nhật kỷ niệm cho Windows 10, Microsoft đã công bố Hệ thống con Windows cho Linux (WSL) - một cách để chạy Bash thực, bản địa trên Windows 10, hỗ trợ thực thi các nhị phân Linux gốc. Nó thực hiện điều này bằng cách chạy hình ảnh Ubuntu Linux ở chế độ người dùng trên Windows.

Điều này có nghĩa là bạn có thể chạy các công cụ dòng lệnh Linux như ls, grep, topchmod . Vì bạn đang chạy Ubuntu chính hãng bên dưới, nên chạy lsb-release -a sẽ cung cấp cho bạn đầu ra sau:

Bạn có thể sử dụng apt-get và bạn bè để cài đặt các tiện ích như vim, git, screen, tmux hoặc thậm chí chơi một trò chơi nethack:

Tuy nhiên, hãy nhớ rằng hệ thống này đang ở giai đoạn thử nghiệm và không dành cho khối lượng công việc của máy chủ. Nó chỉ là một công cụ cho các nhà phát triển (và những người đam mê) để thử nghiệm các ứng dụng tập trung vào Linux của họ trên Windows mà không cần sửa đổi. Đây cũng không phải là một công cụ dành để chạy các ứng dụng hoặc môi trường GUI của Linux như Gnome hoặc KDE, mặc dù điều đó cũng có thể xảy ra với một số hack nhất định. Khi đã xóa nó, chúng ta hãy xem cách Linux shell hoạt động trong Windows 10.

Hệ thống con Windows cho Linux (WSL)

Theo tài liệu chính thức, thì WSL là một tập hợp các thành phần cho phép các tệp nhị phân ELF64 của Linux chạy trên Windows. Nó thực hiện điều đó bằng cách triển khai giao diện nhân Linux ảo trên đầu nhân Windows NT. Đó là, nó không sử dụng bất kỳ mã nào từ nhân Linux thực tế - bất cứ khi nào một ứng dụng thực hiện một cuộc gọi hệ thống dành riêng cho Linux (syscall), WSL sẽ dịch nó sang tòa nhà Windows tương đương, sau đó thực hiện tất cả các công việc nặng.

Sự khác biệt từ Máy ảo và Cygwin

Bây giờ chúng ta hãy xem Linux Bash Shell trên Windows 10 khác biệt như thế nào so với các máy ảo và Cygwin.

Máy ảo

Bạn có thể đang nghĩ, À, sao lại dùng cái này? Tại sao không sử dụng máy ảo Linux trong Windows?

So với máy ảo, WSL sử dụng ít tài nguyên hơn . Nó cũng cho phép bạn làm việc với các tệp của mình như trên Linux, đồng thời cung cấp cho bạn quyền truy cập hoàn toàn vào hệ thống tệp Windows bên dưới mà không phải phụ thuộc vào các thư mục được chia sẻ hoặc chia sẻ mạng.

Cygwin

Một phương pháp phổ biến khác để chạy các công cụ phổ biến giống Linux / Unix trên Windows là Cygwin. Sự khác biệt lớn nhất giữa hai cách tiếp cận là Cygwin không phải là cách để chạy các tệp nhị phân Linux gốc trên Windows. Nó chỉ cung cấp một bộ các công cụ GNU và Nguồn mở cung cấp chức năng tương tự như bản phân phối Linux trên Windows.

Mặt khác, các công cụ WSL là các tệp nhị phân được biên dịch Linux ELF-64 chạy trên Windows. Ví dụ: chạy lệnh apt-get install emacs trong WSL sẽ tải xuống và cài đặt các tệp giống như trên bản cài đặt Ubuntu 14.04, từ kho lưu trữ chính thức của Ubuntu.

Người dùng, Quyền và Hệ thống tệp trong WSL

Hệ thống phân cấp tệp

WSL được cài đặt trong thư mục %LocalAppData%\lxss\rootfs của người dùng hiện tại. Điều này được gọi là Môi trường WSL và hoạt động như thư mục Linux / ((root) của Linux. Ví dụ: nếu tên người dùng của bạn trên Windows là beebom, thư mục gốc của Linux sẽ nằm trong C:\Users\beebom\AppData\Local\lxss\rootfs. Điều này có nghĩa là mỗi người dùng Windows có thể có môi trường WSL của riêng họ và có thể thực hiện các thay đổi như gói phần mềm apt-get install mà không ảnh hưởng đến những người dùng Windows khác.

Có thể truy cập hệ thống tệp Windows bên dưới trong WSL. Tất cả các ổ đĩa được gắn dưới /mnt. Ví dụ C:\ được gắn dưới /mnt/c, D:\ được gắn dưới /mnt/d, v.v.

Người dùng và Quyền

Khi bạn cài đặt WSL lần đầu tiên, nó sẽ nhắc bạn tạo một người dùng Linux mặc định mới. Người dùng này không cần phải có cùng tên với người dùng Windows hiện tại và được coi là một thực thể riêng biệt nói chung. Bạn thậm chí có thể tạo nhiều người dùng Linux, được điều khiển bởi một người dùng Windows.

Có thể có được quyền root bằng sudo . Hãy nhớ rằng việc root trong WSL chỉ ảnh hưởng đến quyền của người dùng trong môi trường và hệ thống tệp của Linux - chúng không có tác động đến các đặc quyền của Windows được cấp. Ví dụ: phiên WSL với đặc quyền quản trị viên Windows có thể cd /mnt/c/Users/Administrator trong khi phiên Bash không có đặc quyền quản trị viên sẽ thấy Quyền bị từ chối. Nhập sudo cd /mnt/c/Users/Administrator sẽ không cấp quyền truy cập vào thư mục của Quản trị viên vì các quyền bị hạn chế bởi Windows.

Các tính năng hệ thống tệp dành riêng cho Linux

Linux là một hệ thống phân biệt chữ hoa chữ thường . Điều đó có nghĩa là photo.pngPhoto.png được coi là hai tệp khác nhau. Mặc dù Windows không phân biệt chữ hoa chữ thường theo mặc định, nhưng nó vẫn nhận biết chữ hoa. Điều đó có nghĩa là trong khi photo.pngPhoto.png không được coi là hai tệp riêng biệt, chắc chắn nó nhận thức được sự khác biệt trong trường hợp.

WSL xử lý phân biệt chữ hoa chữ thường giống như trên Linux. Thậm chí có thể tạo hai tệp có tên chỉ khác nhau tùy theo trường hợp bên ngoài môi trường WSL. Tuy nhiên, hãy nhớ rằng nhiều ứng dụng Windows không thể xử lý các tình huống như vậy và có thể không thể mở một hoặc cả hai tệp.

Tương tự, các liên kết tượng trưng được hỗ trợ, miễn là bạn đang chạy một hệ thống tệp NTFS. Tuy nhiên, các liên kết tượng trưng sẽ chỉ hoạt động bên trong WSL và không thể được giải quyết bởi các ứng dụng Windows khác.

Linux cũng hỗ trợ gần như tất cả các ký tự đặc biệt bên trong tên tệp, trong khi Windows hạn chế hơn. Tuy nhiên, WSL cho phép sử dụng các ký tự đặc biệt như vậy, miễn là chúng bị giới hạn trong môi trường của hệ thống Linux.

Sẵn sàng để chạy dòng lệnh Linux trên Windows?

Vì vậy, đó là cách Ubuntu Bash hoặc Linux Bash Shell, còn được gọi là Hệ thống con Windows cho Linux hoạt động trên Windows 10 (với bản cập nhật Anniversary). Cùng với hoạt động của nó, chúng tôi cũng đã học được cách nó khác biệt và tốt hơn so với các phương pháp truyền thống chạy các lệnh dành riêng cho Linux trên Windows. Vì vậy, nếu bạn luôn muốn sử dụng các lệnh Linux, hãy bắt đầu và nếu bạn có câu hỏi, nhận xét hoặc mẹo, hãy đảm bảo cho chúng tôi biết trong phần bình luận.

Top