![¿Es Windows PowerShell tan potente como el terminal de Unix/Linux?](https://rvso.com/image/1395271/%C2%BFEs%20Windows%20PowerShell%20tan%20potente%20como%20el%20terminal%20de%20Unix%2FLinux%3F%20.png)
es windowsPotencia Shell¿Tan potente y eficiente como Linux terminal
?
La gente fuera de línea 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 sólo si tiene (o casi) la misma eficiencia.
Respuesta1
Bueno, tu primer problema es que estás comparando un shell (PowerShell) con una terminal. En Linux, una terminal es algo que envía y recibe E/S basada en caracteres y se supone que tiene un usuario interactivo detrás (en otras palabras, es la aplicación GUI utilizada paracontenercomo el infierno). Uno de los shells más comunes.dentroLa terminal de Ubuntu esIntento, pero hay otros.
La gente fuera de línea 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.
Realmente, lo correcto es decir que PowerShell es Windows que expone gran parte delWMI,COMy.NETOmodelo de objetos 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 canalizaciones y redirección de E/S, de los shells de Unix, al igual que el antiguo DOS (2.0 y posteriores) command.com
y cmd.exe
lo hizo. . Las canalizaciones funcionan con objetos en PowerShell. Puedes hacer cosas como crear HTML y posiblementeSobresalirhojas de cálculo sobre la marcha si supiera lo suficiente. Sin duda es una actualización/reemplazo del antiguo cmd.exe
shell que no ha cambiado mucho desdewindows nt 4.0.
En cuanto a la sintaxis, se parece menos a los shells de Unix (aunque finalmente ninguno de los cmdlets se utiliza /
como interruptor o indicador de parámetro), pero hay muchos alias para los comandos clásicos de Unix, por ejemplo, ingresar ls
en una ventana de PowerShell funcionará como dir
. Pero estos son solo alias ("¿Get-Alias" los enumera?).
Con respecto a la capacidad de PowerShell, realmente tenías una capacidad similar, solo en forma de script, desdeVBScriptyCScript- aunque ambos son anteriores a .NET.
Una cosa que la gente de Unix no tiene que hacer cuando usan Bash la mayor parte del tiempo es estar íntimamente familiarizados con el modelo de objetos posiblemente muy elaborado de un programador o de un objeto, que es necesario para muchas tareas avanzadas y simples de PowerShell. Pero esto sólo es posible porque existe una convención clara de salida de texto directo para muchos formatos estándar.POSIXcomandos. Windows no ha tenido esta tradición: parece preferir el uso de una mmc
consola para las tareas de administración, con comandos agregados aquí y allá a lo largo de los años. Además, muchas utilidades Unix conocidas son complejas y requieren algún estudio antes de su uso.rsync
,wget
, y muchos otros. La eficiencia es probablemente una función de qué tan bien uno conoce la herramienta que está utilizando más que cualquier otra cosa.
Respuesta2
Windows PowerShell y Unix Shell son dos cosas diferentes con ventajas en ambas.
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 a un archivo. Esto hace que encadenar comandos sea realmente simple y reutilizar la salida de un comando por otro es el poder del shell Unix.
Con Windows PowerShell, hasta donde yo sé, todo es un objeto. Puedes pasar el resultado de un comando a otro como un objeto. Esto puede ser realmente poderoso, pero no tiene el concepto simple de Unix.
No creo que PowerShell sea tan eficiente como un shell Unix, pero otros creen que sí lo es.
Pero la comparación es discutible, porque Windows no es un sistema *nix, por lo que los conceptos *nix no se aplican. En comparación conMS-DOS, PowerShell es una gran mejora.