PowerShell is a scripting language and a shell, and a rather good one of each of these things.
Of course neither of these things mean much without context.
Scripting languages are programming languages that are interpreted when they run.
Shells are the surface layer of a language or operating system.
PowerShell, the scripting language, is one of the most interesting creatures into the vast ecosystem of programming.
PowerShell has many unique features, allowing it to do many things no other language can.
Features like:
PowerShell is written in C#, and anything in .NET can be used in PowerShell.
PowerShell scripts are written in .ps1
files, and can be run inside or outside of the shell.
PowerShell comes with it’s own shell.
For Windows PowerShell, that shell is PowerShell.exe, and for PowerShell Core, the shell is pwsh.
PowerShell.exe will only run on Windows, and has been built into Windows since Windows 7.
PowerShell Core is cross platform.
PowerShell (the shell part) can do some nifty things, like: