Chà, vấn đề đầu tiên của bạn là bạn đang so sánh một trình bao (PowerShell) với một thiết bị đầu cuối. Trong Linux, thiết bị đầu cuối là thứ gửi và nhận I / O dựa trên ký tự và được giả sử là có người dùng tương tác đằng sau nó (nói cách khác, đó là ứng dụng GUI được sử dụng để chứa vỏ). Một trong những shell phổ biến nhất chạy trong Terminal của Ubuntu là Bash , nhưng có những cái khác.
Mọi người ngoại tuyến nói với tôi, mà không giải thích nhiều, rằng Windows PowerShell là một nỗ lực để làm cho các quản trị viên Unix cảm thấy thoải mái hơn khi sử dụng Windows.
Thực sự, điều chính xác để nói là PowerShell là Windows phơi bày phần lớn mô hình đối tượng WMI , COM và .NET trong môi trường dòng lệnh tương tác và có thể viết kịch bản - và môi trường dòng lệnh này tiếp tục mượn nhiều khái niệm - chẳng hạn như đường ống và chuyển hướng I / O - từ hệ vỏ Unix, giống như DOS cũ (2.0 trở lên) command.com
và cmd.exe
đã làm. Đường ống làm việc với các đối tượng trong PowerShell. Bạn có thể thực hiện những việc như tạo HTML và có thể là bảng tính Excel một cách nhanh chóng nếu bạn biết đủ. Đây chắc chắn là một bản nâng cấp / thay thế từ cmd.exe
vỏ cũ không thay đổi nhiều so với Windows NT 4.0 .
Về cú pháp, nó giống như các shell Unix (mặc dù cuối cùng không có lệnh ghép ngắn nào sử dụng /
làm chỉ báo chuyển đổi hoặc tham số), nhưng có nhiều bí danh cho các lệnh Unix cổ điển - chẳng hạn như nhập vào ls
cửa sổ PowerShell sẽ hoạt động như thế nào dir
. Nhưng đây chỉ là bí danh ("Get-Alias" liệt kê những thứ này?).
Về khả năng của PowerShell, bạn thực sự có khả năng tương tự, theo kiểu chỉ có kịch bản, từ VBScript và CScript - mặc dù cả hai đều có trước .NET.
Một điều mà mọi người Unix không phải làm khi sử dụng Bash hầu hết thời gian là phải làm quen với mô hình đối tượng rất phức tạp của một lập trình viên hoặc đối tượng, vốn được yêu cầu cho nhiều tác vụ PowerShell đơn giản và tiên tiến. Nhưng điều này chỉ có thể bởi vì có một quy ước rõ ràng về đầu ra văn bản thẳng cho nhiều lệnh POSIX tiêu chuẩn . Windows không có truyền thống này - dường như bạn thích sử dụng mmc
bảng điều khiển cho các tác vụ quản trị, với các lệnh được thêm vào đây và ở đó trong nhiều năm. Hơn nữa, nhiều tiện ích Unix nổi tiếng là phức tạp và đòi hỏi một số nghiên cứu trước khi sử dụng - rsync
, wget
, và nhiều người khác. Hiệu quả có lẽ là một chức năng làm thế nào người ta biết rõ công cụ họ đang sử dụng hơn bất kỳ thứ gì khác.