Chắc hẳn hầu hết các bạn đã từng sử dụng dấu nhắc lệnh vào một thời điểm nào đó - cho dù chỉ vì mục đích thử nghiệm hoặc khắc phục sự cố như khôi phục dữ liệu sau khi bị ảnh hưởng bởi vi rút phím tắt. Nhưng, còn PowerShell ra đời sau này thì sao? Sự khác biệt giữa PowerShell và cmd là gì?
Chà, tôi chắc chắn - trừ khi bạn là một người dùng thành thạo với kiến thức lập trình, bạn thậm chí sẽ không bận tâm đến việc mở PowerShell. Tuy nhiên, nó có thể được sử dụng để thay thế cho dấu nhắc lệnh không? Nó chỉ dành cho dân lập trình hay là người dễ làm quen?
Chúng tôi có mọi thứ bạn cần biết về cả hai. Để mọi thứ trở nên dễ dàng, chúng tôi sẽ không đi sâu vào gốc rễ của việc chúng khác nhau như thế nào mà chỉ có sự khác biệt đáng kể giữa PowerShell và cmd sẽ được nêu rõ trong bài viết này để giúp bạn chọn cái nào để sử dụng.
Lịch Sử
1. Dấu nhắc lệnh
Dấu nhắc lệnh là một trình thông dịch dòng lệnh. Nó tồn tại trên Windows kể từ khi giới thiệu Windows 95. Vào thời điểm đó, nó không được gọi là - “Command Prompt” mà chỉ là “cmd.exe” cho phép người dùng tương tác với hệ điều hành thông qua các lệnh nhất định. Và, sau đó với Windows NT, nó được đặt tên là - “Command Prompt”.
Về lý thuyết, nó gần giống như COMMAND.COM (hay thường được gọi là MS-DOS) với rất nhiều cải tiến trên bo mạch.

Mặc dù về mặt kỹ thuật, Command Prompt là một shell nhưng nó có rất nhiều nhược điểm. Đầu tiên, shell không thể giúp tự động hóa tất cả các khía cạnh của chức năng GUI. Thứ hai, nó không hỗ trợ việc tạo ra các tập lệnh phức tạp.
2. PowerShell
Để khắc phục nhược điểm của dấu nhắc lệnh, microsoft bắt đầu phát triển một shell gọi là Monad, mạnh hơn rất nhiều so với command prompt (có thể thực hiện nhiều tác vụ quản trị cốt lõi mà CMD không thể).

Sau đó, vào năm 2006 - nó được đổi tên thành Microsoft PowerShell. Và, gần đây (năm 2016), PowerShell đã được tạo thành mã nguồn mở với sự hỗ trợ đa nền tảng.
Chức năng kỹ thuật
Sự khác biệt về kỹ thuật sẽ chỉ quan trọng đối với những người muốn quản lý và tự động hóa các tác vụ nhất định bằng cách tương tác với Hệ điều hành thông qua giao diện dòng lệnh. Nếu bạn không biết ngôn ngữ lập trình là gì - biết những khác biệt về kỹ thuật sẽ không giúp được gì cho bạn.
PowerShell sử dụng một bộ lệnh khác được gọi là lệnh ghép ngắn. Bạn có thể thử kiểm soát rất nhiều tác vụ quản trị hệ thống với nó. Tuy nhiên, bạn không thể truy cập tương tự thông qua dấu nhắc lệnh. PowerShell cũng cho phép bạn sử dụng - “Pipes” - chỉ là một cách để dễ dàng chuyển thông tin từ chương trình này sang chương trình khác - điều này làm cho PowerShell thậm chí còn mạnh mẽ hơn.
Ngoài ra, như đã nêu ở trên, với PowerShell, bạn có thể tạo các tập lệnh phức tạp nhưng điều đó sẽ không xảy ra với dấu nhắc lệnh.
Tóm lại, PowerShell là một môi trường dòng lệnh được cải thiện khi so sánh với dấu nhắc lệnh.
CMD vs Powershell: Lệnh
Nếu bạn định sử dụng một trong số chúng hầu hết thời gian, bạn nên xem kỹ tài liệu của chúng tại đây:
Nếu bạn chỉ muốn biết sự khác biệt cơ bản trong các lệnh của chúng, thì đây là:
Khi bạn quan sát một lệnh như cd / dir / đổi tên (lệnh một từ), đó là dấu nhắc lệnh dành cho bạn. Đó là lý do tại sao nó vẫn là công cụ dòng lệnh dễ dàng nhất.
Tuy nhiên, với Powershell, bạn sẽ nhận được các lệnh biểu cảm hơn (mô tả về hoạt động của chúng), như:
Đặt-Vị trí / Nhận-trẻ em / Đổi tên-mục
Windows PowerShell và Command Prompt: Bạn nên sử dụng cái nào?
Xét rằng PowerShell là một môi trường dòng lệnh nâng cao hơn rất nhiều, nó chỉ phù hợp với các quản trị viên hệ thống Windows.
Nếu bạn biết về cách tạo tập lệnh, quản lý các tác vụ quản trị tự động trong Windows và muốn có nhiều khả năng mở rộng hơn - thì PowerShell là dành cho bạn. Ngoài ra, nếu bạn biết về ngôn ngữ lập trình C #, điều đó sẽ hoàn thành tốt công việc.
Tuy nhiên, nếu bạn không phải là một lập trình viên và không biết quản trị viên hệ thống làm gì - bạn nên sử dụng Command Prompt. Nó sẽ không bị lỗi thời. Dấu nhắc lệnh sẽ vẫn được nhiều người dùng (bao gồm cả lập trình viên) sử dụng để thực hiện những việc ít nâng cao hơn nhưng quan trọng - như dọn dẹp ổ cứng, chuyển đổi ổ đĩa của bạn từ GPT sang MBR, phục hồi sau vi rút tắt, v.v.
Bạn sẽ không muốn sử dụng PowerShell nếu bạn đang tìm cách khắc phục các sự cố nhỏ hoặc chỉ để kiểm tra chi tiết ping của mình.
Tổng kết
Bây giờ bạn đã biết về sự khác biệt giữa PowerShell và CMD, bạn có thể chọn bất kỳ ai bạn muốn tùy theo nhiệm vụ bạn muốn đạt được. Không có gì vượt trội hay kém hơn trong số cả hai, tất cả đều phụ thuộc vào những gì người dùng muốn.
Tuy nhiên, bạn vẫn còn bối rối về cách PowerShell khác với Command Prompt? Hãy cho chúng tôi biết suy nghĩ của bạn trong phần bình luận bên dưới.
Xin chào Ankush,
Tôi phải thừa nhận rằng PowerShell đã khiến tôi mất một thời gian để học, nhưng một khi bạn đã học được nó, nó có thể làm nên điều kỳ diệu.