¿Windows PowerShell es tan poderoso y eficiente como Linux terminal
?
La gente sin conexión me dice, sin explicar mucho, que Windows PowerShell es un intento de hacer que los administradores de Unix se sientan más cómodos usando Windows. Pero supongo que se sentirán cómodos solo si tiene (o casi) la misma eficiencia.
linux
terminal
powershell
kern
fuente
fuente
People offline tell me ... that Windows Powershell is an attempt to make UNIX administrators feel more comfortable using Windows.
Esas personas no han usado Unix ni Powershell.Respuestas:
Bueno, su primer problema es que está comparando un shell (PowerShell) con un terminal. En Linux, un terminal es algo que envía y recibe E / S basadas en caracteres y se supone que tiene un usuario interactivo detrás (en otras palabras, es la aplicación GUI utilizada para contener un shell). Uno de los shells más comunes que se ejecutan en la Terminal de Ubuntu es Bash , pero hay otros.
Realmente, lo correcto es decir que PowerShell es Windows exponiendo gran parte del modelo de objetos WMI , COM y .NET en un entorno de línea de comandos interactivo y programable, y que este entorno de línea de comandos continúa tomando prestados muchos de los conceptos, como las tuberías y redirección de E / S: desde shells de Unix, al igual que el antiguo DOS (2.0 y superior)
command.com
y locmd.exe
hizo. Las tuberías funcionan con objetos en PowerShell. Puede hacer cosas como crear HTML y posiblemente hojas de cálculo de Excel sobre la marcha si supiera lo suficiente. Sin duda, es una actualización / reemplazo del antiguocmd.exe
shell que no ha cambiado mucho desde Windows NT 4.0 .Con respecto a la sintaxis, es menos como los shells de Unix (aunque finalmente ninguno de los cmdlets se usa
/
como un interruptor o indicador de parámetro), pero hay muchos alias para los comandos clásicos de Unix, como ingresarls
en una ventana de PowerShelldir
. Pero estos son solo alias ("Get-Alias" enumera estos?).Con respecto a la capacidad de PowerShell, realmente tenía una capacidad similar, de manera solo con script , de VBScript y CScript , aunque ambos son anteriores a .NET.
Una cosa que las personas de Unix no tienen que hacer cuando usan Bash la mayor parte del tiempo es estar íntimamente familiarizados con el modelo de objeto posiblemente muy elaborado de un programador u objeto, que se requiere para muchas tareas avanzadas y simples de PowerShell. Pero esto solo es posible porque existe una convención clara de salida de texto directo para muchos comandos POSIX estándar . Windows no ha tenido esta tradición: parece preferir que use una
mmc
consola para tareas de administración, con comandos agregados aquí y allá a lo largo de los años. Por otra parte, muchas utilidades Unix conocidos son complejos y requieren algún estudio antes de usar -rsync
,wget
y muchos otros. La eficiencia es probablemente una función de cuán bien se conoce la herramienta que están utilizando más que cualquier otra cosa.fuente
Windows PowerShell y Unix shell son dos cosas diferentes con ventajas en ambos.
Unix (shell) tiene la filosofía de que todo es un archivo. Se puede acceder a la entrada y salida de un comando Unix como un archivo. Esto hace que el comando de encadenamiento sea realmente simple y reutilizar la salida de un comando por otro es el poder del shell de Unix.
Con Windows PowerShell, hasta donde yo sé, todo es un objeto. Puede pasar el resultado de un comando a otro como un objeto. Esto puede ser realmente poderoso, pero no tiene el simple concepto de Unix.
No creo que PowerShell sea tan eficiente como un shell de Unix, pero otros creen que lo es.
Pero la comparación es discutible, porque Windows no es un sistema * nix, por lo tanto, los conceptos * nix no se aplican. En comparación con MS-DOS , PowerShell es una gran mejora.
fuente
|
,<
o>
.