Ну, ваша перша проблема полягає в тому, що ви порівнюєте оболонку (PowerShell) з терміналом. У Linux, термінал є те , що посилає і приймає символ на основі введення / виведення і передбачається інтерактивний користувальницький позаду нього (іншими словами, це додаток з графічним інтерфейсом використовується для містити оболонку). Один з найпоширеніших снарядів, що працює в терміналі Ubuntu, - це Bash , але є й інші.
Люди в режимі офлайн кажуть мені, не пояснюючи багато, що Windows PowerShell - це спроба зробити адміністраторів Unix більш комфортними за допомогою Windows.
Дійсно, правильно сказати, що PowerShell - це Windows, що відкриває велику частину об'єктної моделі WMI , COM та .NET в інтерактивному та сценарійному середовищі командного рядка - і що це середовище командного рядка продовжує запозичувати багато понять - наприклад, трубопроводи і I / O перенаправлення - від Unix снарядів, так само , як старий DOS (2.0 і вище) command.com
і cmd.exe
зробив. Трубопроводи працюють з об'єктами в PowerShell. Ви можете робити такі речі, як створення HTML та, можливо, електронних таблиць Excel на льоту, якщо ви достатньо знаєте. Це, безумовно, оновлення / заміна зі старої cmd.exe
оболонки, яка не сильно змінилася від Windows NT 4.0 .
Що стосується синтаксису, він менш схожий на оболонки Unix (хоча, нарешті, жоден з командлетів не використовується /
як індикатор комутатора або параметра), але існує багато псевдонімів до класичних команд Unix - наприклад, введення ls
у вікно PowerShell працюватиме так dir
. Але це лише псевдоніми ("Get-Alias" перелічує ці?).
Що стосується можливостей PowerShell, то ви дійсно мали подібні можливості у VBScript та CScript лише для сценаріїв, хоча обидва з них раніше .NET.
Одне, що людям Unix не потрібно робити, коли більшу частину часу користуються Bash, - це тісно ознайомитись з можливою дуже досконалою об'єктною моделлю програміста чи об'єкта, яка потрібна для багатьох сучасних і простих завдань PowerShell. Але це можливо лише тому, що існує чітка конвенція прямого виведення тексту для багатьох стандартних команд POSIX . У Windows не було такої традиції - здавалося б, віддають перевагу використовувати mmc
консоль для виконання завдань адміністрування з командами, що додаються тут і там протягом багатьох років. Крім того, багато хто добре відомі утиліти Unix складні і вимагають деяких досліджень перед використанням - rsync
, wget
і багатьох інших. Ефективність - це, мабуть, функція того, наскільки добре ви знаєте той інструмент, який використовують більше, ніж усе інше.