Bene, il tuo primo problema è che stai confrontando una shell (PowerShell) con un terminale. In Linux, un terminale è qualcosa che invia e riceve I / O basato sui caratteri e si presume che ci sia un utente interattivo dietro (in altre parole, è l'applicazione GUI utilizzata per contenere una shell). Una delle shell più comuni eseguite all'interno del Terminale di Ubuntu è Bash , ma ce ne sono altre.
Le persone offline mi dicono, senza spiegare molto, che Windows PowerShell è un tentativo di far sentire gli amministratori di Unix più a loro agio usando Windows.
In realtà, la cosa corretta da dire è che PowerShell è Windows che espone gran parte del modello a oggetti WMI , COM e .NET in un ambiente a riga di comando interattivo e con script - e che questo ambiente a riga di comando continua a prendere in prestito molti dei concetti - come pipeline e redirezione I / O - da shell di Unix, proprio come il vecchio DOS (2.0 e successive) command.com
e cmd.exe
ha fatto. Le pipeline funzionano con oggetti in PowerShell. Puoi fare cose come creare HTML e possibilmente fogli di calcolo Excel al volo se ne sapevi abbastanza. È certamente un aggiornamento / sostituzione dalla vecchia cmd.exe
shell che non è cambiata molto da Windows NT 4.0 .
Per quanto riguarda la sintassi, è meno simile alle shell Unix (anche se alla fine nessuno dei cmdlet usa /
come switch o indicatore di parametro), ma ci sono molti alias ai classici comandi Unix - come entrare ls
in una finestra di PowerShell funzionerà come dir
. Ma questi sono solo alias ("Get-Alias" li elenca?).
Per quanto riguarda la capacità di PowerShell, hai davvero avuto una capacità simile, in modo esclusivamente scriptato, da VBScript e CScript , sebbene entrambi precedano .NET.
Una cosa che le persone di Unix non devono fare quando usano Bash per la maggior parte del tempo è quella di avere un'intima familiarità con il modello a oggetti forse molto elaborato di un programmatore o oggetto, necessario per molte attività di PowerShell avanzate e semplici. Ma questo è possibile solo perché esiste una chiara convenzione di output di testo semplice per molti comandi POSIX standard . Windows non ha questa tradizione: sembra che preferisca usare una mmc
console per le attività di amministrazione, con i comandi aggiunti qua e là nel corso degli anni. Inoltre, molte utility Unix ben noti sono complesse e richiedono un po 'di studio prima di utilizzo - rsync
, wget
e molti altri. L'efficienza è probabilmente una funzione di quanto si conosce lo strumento che stanno usando più di ogni altra cosa.