Or any other alternate shells that aren’t bash?
The idea of someone using powershell when you are on Linux is a form of self harm and you need to reach out as its clearly a cry for help.
i’m a big
nushellfan.i was once sitting where you are. when PowerShell was released on Linux i thought about switching and read the manual. i really liked some of the philosophy:
- descriptive names for commands.
catandlshave canonical short names to save disk space on the systems they were created for. this is no longer a constraint and aliasing a longer command name is better than “git gud n00b” when it comes to discoverability. - structured data. “everything is a string” is great when programs play nice. it breaks apart when programs prefer human readable output or worse don’t provide structured output, like
—format=jsonor whatever. - modern control flow semantics. yes, pipes are great, let’s keep those, but why do i have to rtfm every time i want to bang out a simple script with an if-else control flow?
i looked around at a few solutions.
xonshuses Python.eshellis integrated into emacs and uses Elisp. i briefly tried to hack something together using Kotlin Script. and yeah, i tried PowerShell.i settled on
nushellnot just because it fulfilled the above requirements, but also:- simple data types. string, number, list, record, and table are about the only types you deal with.
- wide support for structured data. JSON, YAML, TOML, CSV, etc have parsers built in.
jqand other such tools are made irrelevant because you just load it intonushellquery with a unified DSL using common syntax likeselectandwhere.
honestly, these are the killer features. there are so many more. context aware autocomplete, modules and overlays, super easy custom completions, extension functions (one of my favorites is
git remote open), cross platform (if you’re forced to use Windows), plugins, and i can contribute since i do Rust development for work.give PowerShell a shot, but i think
nushellis the happy mediumFinally! Nushell is awesome. The infrequent deprecations are a bit annoying, but I prefer them to having a bad program go 1.0
- descriptive names for commands.


