PowerShell is open sourced and is available on Linux
I think PS is miles above CMD but there are still things that bug me.  For one, loading scripts into the current session is super confusing to me.  Sometimes they are automatically available, other times I have to load them, still others aren't available at all.  I'm guessing there is some way to "install" scripts so that they become cmdlets but I don't know what it is.Another big problem I've had is backgrounding commands.  There are multiple ways to do it and I always seem to pick the wrong one.  For example, I want to install a bunch of things with Chocolate so I do a lot of Start-Process commands, but they seem to run serially and not in parallel.  It's just very difficult to manage jobs in PS, or at least I haven't found any good information on how to do it properly.