Laptop

Tại sao tôi ưu tiên WSL hơn PowerShell cho giao diện dòng lệnh Windows?

Tai sao toi uu tien WSL hon PowerShell cho giao dien dong lenh Windows 1

Trên Windows, khi tôi cần giao diện dòng lệnh, tôi có thể chọn giữa PowerShell có sẵn (native) hoặc cài đặt Windows Subsystem for Linux (WSL). Cá nhân tôi thích sử dụng lựa chọn thứ hai khi làm việc trên Windows. Dưới đây là lý do tại sao tôi tìm đến một shell Linux thay vì PowerShell.

Xem thêm: Hướng dẫn cách sao lưu Driver và tích hợp chúng vào File ISO cài đặt Windows

1. Tôi quen thuộc hơn với Linux

Một lý do khiến tôi gắn bó với WSL trên Windows, đến mức tôi cài đặt nó trên mọi máy Windows mới mua, thay vì sử dụng PowerShell, là vì tôi thấy toàn bộ hệ thống (paradigm) kiểu Linux và Unix quen thuộc hơn. Tôi đã từng sử dụng MS-DOS vào những năm và thỉnh thoảng mở Command Prompt trên các phiên bản Windows cũ hơn, nhưng xét về giao diện dòng lệnh, chính Unix mới là thứ đã thu hút trí tưởng tượng của tôi, với tất cả các lệnh kỳ lạ như ls, pwd, và cd của nó.

Hành trình này bắt đầu một cách kỳ lạ trên máy Mac, vốn là nền tảng hàng đầu cho việc sáng tạo phương tiện truyền thông khi tôi đang học bằng cấp về truyền thông. Một ngày nọ, tôi quyết định khám phá terminal của macOS, hay đúng hơn là Mac OS X. Đây là nơi tôi học cách điều hướng cây thư mục và tạo tệp trong Vim. Tôi dường như là một trong số ít người biết cách thực sự thoát khỏi Vim. Hoặc ít nhất là tôi sẽ biết nếu tôi muốn thoát.

Tai sao toi uu tien WSL hon PowerShell cho giao dien dong lenh Windows 4

Được trang bị kiến thức về Unix, tôi nhanh chóng lấy đĩa Knoppix CD ra và khởi động nó, vì cuối cùng tôi cũng có thể kết nối nó với internet khi đã cắm vào bộ định tuyến Airport (Vâng, Apple từng sản xuất bộ định tuyến, thực tế là giới thiệu Wi-Fi vào khoảng đầu thiên niên kỷ). Điều này đã đưa tôi đến con đường khám phá các bản phân phối Linux, và cuối cùng dẫn tôi đến việc viết bài cho HTG.

Kiến thức của tôi về Linux và Unix cảm thấy quá giá trị để lãng phí vào việc học một thứ gì đó khá khác biệt so với các shell dòng lệnh khác.

2. PowerShell cho cảm giác “kỳ lạ”

Tôi chưa bao giờ có thể nắm bắt được hoàn toàn PowerShell. Nó dường như cố gắng trở nên khác biệt triệt để so với mô hình Unix và Linux truyền thống. Trong Linux, bạn hoạt động trên văn bản thuần túy (pure text). Đầu vào và đầu ra văn bản có thể được chuyển hướng (redirected) sang các chương trình và tệp khác. Đây là điều mang lại sức mạnh cho phong cách lập trình kiểu Unix và là một phần quan trọng của “Triết lý Unix.”

Tai sao toi uu tien WSL hon PowerShell cho giao dien dong lenh Windows 3

Ngược lại, PowerShell được xây dựng theo hướng “hướng đối tượng” (object-oriented). Khi bạn viết một đường ống (pipeline) trong PowerShell, bạn đang làm việc trên một đối tượng thay vì một luồng văn bản (text stream).

Cú pháp dòng lệnh của PowerShell cũng luôn có vẻ hơi quá dài dòng đối với sở thích của tôi. Tôi đánh giá cao việc Microsoft đã “đặt bí danh” (aliased) cho một số lệnh phổ biến thành các lệnh MS-DOS và Unix ngắn hơn. Có vẻ như Microsoft cũng đã nhận ra rằng đây có thể là một vấn đề.

3. Linux có được sự quan tâm lớn hơn từ cộng đồng nhà phát triển

Linux, hay đúng hơn là Unix, không chỉ thu hút trí tưởng tượng của tôi mà còn của toàn bộ cộng đồng nhà phát triển. Cầm bất kỳ cuốn sách lập trình nào lên, nó rất có thể sẽ mặc định bạn đang sử dụng môi trường giống Unix. Đó có thể là một bản cài đặt Linux hoặc macOS. Đọc qua các bài viết trên Hacker News, các đoạn mã dòng lệnh thường sẽ bắt đầu bằng dấu “$” (dấu đô la), cho biết dấu nhắc người dùng mặc định cho hầu hết các shell giống Unix, hoặc dấu “#” (dấu thăng), chỉ ra rằng lệnh đó cần được chạy với quyền siêu người dùng (superuser). Các hệ thống giống Unix, bao gồm macOS, Ubuntu và các hệ thống Linux khác, rất được mong muốn trong khảo sát nhà phát triển của Stack Overflow.

Tai sao toi uu tien WSL hon PowerShell cho giao dien dong lenh Windows 2

Nhìn lướt qua máy tính xách tay của một nhà phát triển, họ sẽ đang chạy terminal macOS hoặc một loại shell Linux nào đó. Đây chính là lý do khiến Microsoft tạo ra WSL ngay từ đầu: mô hình Unix đã phổ biến rộng rãi trong giới lập trình viên. Đây là thứ các nhà phát triển học trong các lớp khoa học máy tính ở đại học. Đây là thứ họ xây dựng các dự án của mình trong thời gian rảnh. Một thế hệ nhà phát triển đã bắt đầu sự nghiệp của mình với các công cụ mã nguồn mở chạy trên Linux và không có hứng thú lập trình trên các công cụ .NET.

Khi các nhà phát triển tạo một dự án trong thế giới thực, họ sẽ xây dựng nó trên nền tảng nào, Linux hay PowerShell? Rõ ràng câu trả lời là cái trước. Đây là lý do tại sao, ngay cả trên Windows, tôi sẽ dành nhiều năng lượng hơn để học hỏi thêm về phía WSL.

Nếu tôi muốn làm theo một cuốn sách hoặc hướng dẫn để học một ngôn ngữ lập trình hoặc công cụ mới, tôi có thể tự tin rằng nếu muốn làm điều đó trên Windows, tôi chỉ cần khởi động một terminal WSL và làm theo. Tôi không chắc liệu tôi có thể làm điều tương tự từ một terminal PowerShell hay không.

4. Linux dường như có tính di động cao hơn

Mặc dù Microsoft nhấn mạnh rằng PowerShell là một chương trình đa nền tảng, đã được mã nguồn mở hóa và cung cấp trên Linux, nhưng không rõ tại sao bất kỳ ai lại muốn sử dụng PowerShell trên một hệ thống Linux.

Các shell Linux có lợi thế là đã được cài đặt sẵn trên các bản phân phối Linux. Với PowerShell, bạn phải cài đặt nó riêng biệt khỏi hệ thống. Nếu một bản phân phối Linux nào đó đóng gói nó làm shell mặc định, tôi sẽ rất vui lòng thử nghiệm và đánh giá nó cho một bài viết trong tương lai.

Ngay cả trên Windows, hệ điều hành dường như ủng hộ PowerShell, tôi vẫn có thể có được một shell Linux. Điều này đã đúng trong nhiều năm trước khi WSL ra đời. Các công cụ Cygwin, MinGW và UWIN đã có thể cung cấp các khả năng giống Unix trên Windows. Ngược lại, không có nhiều nỗ lực để chuyển Command Prompt sang Linux.

Với kiến thức về dòng lệnh Linux của mình, tôi có thể ngồi xuống một hệ thống Linux, một máy Mac, và tất nhiên, một hệ thống Windows đang chạy WSL và có thể chạy các lệnh một cách tự nhiên và thậm chí chạy các script mà không cần phải thay đổi chúng. Tôi không thể nói điều tương tự đối với chiều ngược lại.

5. Hầu hết chương trình dòng lệnh đều ưu tiên Linux

Do sự quan tâm lớn mà Linux chiếm giữ trong giới nhà phát triển, có vẻ như các công cụ dòng lệnh mới thường được viết ưu tiên cho các hệ thống giống Unix, đặc biệt là Linux. Điều này không có gì đáng ngạc nhiên khi xét đến số lượng máy chủ đang chạy Linux.

Các máy chủ, trình thông dịch, trình gỡ lỗi, trình soạn thảo và máy khách IRC mới vẫn đang được viết cho Linux. Chúng dường như đến với Windows thông qua PowerShell chậm hơn. Khi chúng đến được Windows, thường là thông qua WSL. Có lẽ có một lý do kỹ thuật cho việc này. Trong nhiều năm, Windows thiếu một pseudoconsole thực sự, điều này gây khó khăn cho việc chuyển nhiều ứng dụng dựa trên terminal phổ biến sang Windows. Theo một bài đăng trên blog của Microsoft, chính dự án WSL là động lực thúc đẩy việc cuối cùng tạo ra phần mềm quan trọng này trên Linux.

Tôi sử dụng WSL vì tôi có thể truy cập các công cụ mình cần một cách dễ dàng.

Microsoft định vị PowerShell chủ yếu là một công cụ để quản trị viên CNTT quản lý máy tính để bàn và máy chủ và ít hơn như một cách để chạy các chương trình thực tế trong terminal, mặc dù họ đã có những bước tiến bằng cách thêm các công cụ như OpenSSH vào bản cài đặt Windows mặc định.

6. Tôi có thể quản lý Windows từ Linux

Mặc dù Microsoft tuyên bố PowerShell là cách để quản lý Windows từ dòng lệnh, thậm chí đi xa hơn là thay thế Command Prompt cũ bằng nó, tôi vẫn có thể làm rất nhiều thứ mà tôi có thể dùng PowerShell cho từ một bản cài đặt WSL.

Các bản cài đặt WSL cho phép truy cập hệ thống Windows từ Linux thông qua thư mục /mnt. Điều này có nghĩa là đối với bản cài đặt Windows chính của tôi trên ổ C:\, tôi có thể chạy tất cả các công cụ yêu thích của mình từ Linux trên các thư mục và tệp của Windows. Có ít lý do hơn để phải đối phó với những sự khác thường của PowerShell. Tôi cũng có thể khởi chạy các chương trình Windows thông thường từ dòng lệnh Linux.

Tai sao toi uu tien WSL hon PowerShell cho giao dien dong lenh Windows 1

Tôi có thể làm điều này với tất cả các công cụ và chương trình Linux yêu thích mà tôi đã quen thuộc trên các hệ thống khác, trong khi vẫn chạy các ứng dụng phổ thông như game từ Windows. Chắc chắn, có nhiều game hơn trên Linux, và Proton không ngừng cải thiện, nhưng vẫn sẽ có một vài nhà phát triển lạc hậu không buồn gõ lệnh “make” từ terminal của họ.

Vì WSL quen thuộc với tôi hơn với tư cách là một người dùng lâu năm của các hệ thống giống Unix, tôi sẽ kiên trì với nó hơn là PowerShell khi tôi sử dụng hệ thống Windows. Có lẽ đó chỉ là sự quen thuộc, nhưng với sự phổ biến rộng rãi của Linux trong thế giới công nghệ, tôi sẽ có nhiều người đồng hành.

7. Kết luận

WSL (Windows Subsystem for Linux) đã chứng minh là một lựa chọn vượt trội so với PowerShell cho những ai yêu thích sự linh hoạt, sức mạnh và môi trường dòng lệnh giống Linux ngay trên Windows. Với khả năng tích hợp sâu, hỗ trợ đa dạng công cụ phát triển và trải nghiệm thân thiện với người dùng Linux, WSL không chỉ nâng cao hiệu suất làm việc mà còn mở ra cánh cửa sáng tạo cho các lập trình viên và quản trị viên hệ thống. Hy vọng bài viết này đã giúp bạn hiểu rõ lý do WSL trở thành ưu tiên hàng đầu và sẵn sàng thử nghiệm để tối ưu hóa quy trình làm việc của mình!

Xem thêm: Hướng dẫn cách bật tốc độ làm mới thay đổi (VRR) cho trò chơi trên Windows 11

Nếu bạn cần thiết bị công nghệ mạnh mẽ để tận dụng tối đa WSL hoặc muốn nâng cấp setup cho các dự án phát triển, hãy ghé qua COHOTECH – địa chỉ uy tín cung cấp laptop, PC, phụ kiện công nghệ cao cấp cùng dịch vụ hỗ trợ kỹ thuật chuyên nghiệp. Đội ngũ COHOTECH luôn sẵn sàng tư vấn, mang đến giải pháp tối ưu và những ưu đãi hấp dẫn. Theo dõi chúng tôi để khám phá thêm nhiều mẹo công nghệ hữu ích!

Bạn đã sử dụng WSL hay vẫn trung thành với PowerShell? Hãy chia sẻ trải nghiệm hoặc đặt câu hỏi trong phần bình luận bên dưới nhé! Nếu bài viết này hữu ích, đừng quên like, share và lan tỏa đến bạn bè để cùng khám phá sức mạnh của WSL trên Windows. Cảm ơn bạn đã đọc và hẹn gặp lại!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *