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
Hi! I’m interested in trying Nushell at some point, although I keep putting it off…
Would you share your experience on a couple of items?
- How easy was it to get started?
- Do you find, or did you at least find in the beginning, that it is more suited for some particular tasks than using it as your day-to-day shell? If so, what were those?
- Can you integrate it with existing tools that you know how to use from other shells, like
greporawk?
sure!
- it wasn’t tough to get started. it generally reads like a normal Unix shell with some exceptions. i don’t think many Linux power users would have a hard time doing basic file system tasks or launching programs, etc. there are going to be some issues, like you can’t just paste
bashcommands in because&&isn’t supported, multiline strings don’t require the\character, and string escaping is totally different. those are intentional deviations that i personally agree with, but they take some getting used to. and then obviously stuff that is specific tonushelllike working with tables. - definitely the killer feature out of the box is manipulating, parsing, and reading structured data. the “aha” moment for me was when i needed to change a value over a thousand or so JSON objects and did it with a one liner. then i use it with some extra overlays to do stuff like connect to a k8s cluster like
k8s connect (helm stage dev.0)which reads my YAML config and connects to the cluster specified in that file. or making a call to our internal package store to get the latest version by parsing the returned JSON. - it works out of the box with your existing
PATH(orPathif you’re nasty). you can just drop into it and it will have all the path stuff inherited just like if you launched zsh or bash. you’ll have to set that up if you want to use it as a system shell—like i do—, but otherwise it’s pretty seemless.
you can check out my collection of scripts here: https://github.com/covercash2/dotfiles/tree/main/nuenv
ETA: if you do have compatibility problems or need your old muscle memory to do something quick, it’s easy enough to use
bash -c old_script.shor just drop into a different shellThanks a lot! This might just be enough to get me to actually try it!
- it wasn’t tough to get started. it generally reads like a normal Unix shell with some exceptions. i don’t think many Linux power users would have a hard time doing basic file system tasks or launching programs, etc. there are going to be some issues, like you can’t just paste
catandlshave canonical short names to save disk space on the systems they were created for.I thought it was to save on keystrokes due to slow transmission speeds.
yeah overall bandwidth was probably a consideration
- descriptive names for commands.
zsh and oh-my-zsh :)
Same here, just started a few days ago with both and Atuin for history across devices (server can be selfhosted easily)
I use fish

Not that kind of “use!”
I use fish, but only interactively. Scripts are either in bash or Python depending om what I need.
Does zsh count?
I use fish, mostly because it is the default on CachyOS
I use Linux to get away from PowerShell 😂 I did try zsh though, it was nice, maybe give it a shot.
At work we use it sometimes on Linux because we maintain a script that needs to work on multiple platforms, ps1 did that in this usecase better.
Came down to ps1 on Linux was better and more predictable than bash on windows.
Sadly.
Same, only time we used it is when we needed a script that was running in Windows and Linux, easier to maintain one script that 2 in 2 languages
No.
I usually just use Bash; there’s a certain level of complexity where it begins to be more reasonable to just use Python.
I use fish, I had to learn some new syntax and modify some functions since it’s not POSIX-compliant, but it was pretty painless.
At work I use powershell to ssh into Linux boxes fairly regularly.
I use both fish and zsh
somehow
That’s… a big gap. I think I’d just be confused all the time if I had to switch between them.
I mean, missing commands say that it’s zsh but everything else says that it’s fish.
I didn’t know powershell was an option on Linux.
It’s an option. Every other option is better, but it’s a brochure entry; and an option.
Nope, I’ve tried it before but I prefer the muscle memory of bash/zsh.
I’ll use it on Windows though.










