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.
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.
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 lo cmd.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 antiguo cmd.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 ingresar ls
en una ventana de PowerShell dir
. 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.