The big deal with PowerShell, of course, is the use of objects and types rather than byte streams.
Linux has had that for decades . You can get that in Linux by opening up just about any scripting language and running the interpreter. Try the Ruby shell, the Python shell, or even the Scheme shell (scsh).
What would really be nice is some kind of standard data interchange format that could be shared between applications. For a while, people were pushing XML for that use, but XML is ugly as sin and overly complex. I think JSON is a better choice.
When I was working on Ceph, we implemented a --json flag for most of the tools that let them output JSON. Then you could manipulate it to your heart's content in the scripting language of your choice.
If we had a few more tools that let non-programmers manipulate JSON with the command line, and a --json option on popular programs, I think we could get most of the benefits of PowerShell on Linux.