Итак, ваша первая проблема заключается в том, что вы сравниваете оболочку (PowerShell) с терминалом. В Linux терминал - это то, что отправляет и получает символьный ввод / вывод, и предполагается, что за ним стоит интерактивный пользователь (иными словами, это приложение с графическим интерфейсом, используемое для хранения оболочки). Одним из наиболее распространенных оболочек, запускаемых в Терминале Ubuntu, является Bash , но есть и другие.
Люди в автономном режиме говорят мне, не объясняя особо, что Windows PowerShell - это попытка заставить администраторов Unix чувствовать себя более комфортно при использовании Windows.
Действительно, правильно сказать, что PowerShell - это Windows, представляющая большую часть объектной модели WMI , COM и .NET в интерактивной среде сценариев с поддержкой сценариев, и что эта среда командной строки по-прежнему заимствует многие концепции, такие как конвейеры. и перенаправление ввода / вывода - из оболочек 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
и многих других. Эффективность, вероятно, зависит от того, насколько хорошо известно, какой инструмент они используют, больше всего на свете.