Является ли Windows PowerShell такой же мощной и эффективной, как Linux terminal
?
Люди в автономном режиме говорят мне, не объясняя особо, что Windows PowerShell - это попытка заставить администраторов Unix чувствовать себя более комфортно при использовании Windows. Но, думаю, они будут удобны, только если будут иметь (или почти) одинаковую эффективность.
linux
terminal
powershell
деревенщина
источник
источник
People offline tell me ... that Windows Powershell is an attempt to make UNIX administrators feel more comfortable using Windows.
Эти люди не использовали ни Unix, ни Powershell.Ответы:
Итак, ваша первая проблема заключается в том, что вы сравниваете оболочку (PowerShell) с терминалом. В Linux терминал - это то, что отправляет и получает символьный ввод / вывод, и предполагается, что за ним стоит интерактивный пользователь (иными словами, это приложение с графическим интерфейсом, используемое для хранения оболочки). Одним из наиболее распространенных оболочек, запускаемых в Терминале Ubuntu, является Bash , но есть и другие.
Действительно, правильно сказать, что 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
и многих других. Эффективность, вероятно, зависит от того, насколько хорошо известно, какой инструмент они используют, больше всего на свете.источник
Windows PowerShell и Unix shell - это две разные вещи с преимуществами в обоих.
Unix (оболочка) имеет философию, что все является файлом. Вход и выход команды Unix могут быть доступны как файл. Это делает команду сцепления действительно простой, а повторное использование вывода одной команды другой - мощь оболочки Unix.
С Windows PowerShell, насколько я знаю, все является объектом. Вы можете передать результат команды другому как объект. Это может быть действительно мощным, но у него нет простой концепции Unix.
Я не верю, что PowerShell столь же эффективен, как оболочка Unix, но другие считают, что это так.
Но сравнение является спорным, потому что Windows не является системой * nix, поэтому понятия * nix не применяются. По сравнению с MS-DOS PowerShell - это большое улучшение.
источник
|
,<
или>
.