What’s your favourite to use? Mine is Fish due to its ease of use and user friendly approach.
Bash is the pepperoni of shell tools being reliable in every field no matter what but I’ve moved to Fish as I wanted to try something different.
So what’s your shell of choice?
I really like nushell, which has more of a feel and ergonomics of a modern programming language without the idiosyncrasies of traditional shells (so it’s obviously not POSIX shell compatible).
One major downside is that it’s not yet stable, so breaking changes between releases are expected.
PowerShell, because of autocomplete and shift+arrows select.
I often end up in ps because I’m more familiar with it. But only if I have to do some scripting or so.
Zsh on workstations. Bash on servers.
I’ve recently migrated to nushell, I don’t straight up recommend it because it’s not POSIX compliant, so unless you’re already familiar with some other she’ll I would not use it.
That being said, it’s an awesome shell if you deal with structured data constantly, and that’s something I do quite often so for me it’s a great tool.
Just looking at it briefly it looks a lot like PowerShell, any reason to use it over PowerShell?
It’s indeed a lot like powershell, but I found it to be much less painful to use for everyday tasks. I can’t really put my finger on it, but powershell always felt very clunky and unpredictable to use. With Nushell, I can write pipelines that usually have the desired behavior on the first try. Also, its more convenient in so many different aspects that I can’t go back anymore.
The biggest downside is, that it hasn’t had a stable release yet. While I haven’t encountered any bugs yet, there are often breaking changes with new releases that may break your scripts.
Yeah, PowerShell does do things that don’t exactly make sense without having some understanding of the underlying dotnet and what the components actually do
Like I said, never used PowerShell, but yeah, nushell pipes are very intuitive, I’ve been only using it for a short time but was already able to do very interesting pipes with minor effort
Never used PowerShell, so I didn’t know that it was available for Linux nor open source, since from a quick search both of them seem to be true I guess there’s no real reason since both are described very similarly.
I’ll probably give it a spin anyway, might be I find some benefit and it looks like an interesting project. Being Rust based instead of C# .NET based could theoretically make it a lot faster (though I’ve not really had an issue of speed in PowerShell)
Former
zsh
user.fish
works for me.
For scripts I usebash
tho.While fish is easy to set up, I can’t even be arsed to do that most times, so bash ends up being the one I use most.
OpenBSD’s default public domain kornshell fork on OpenBSD, oksh (portable OpenBSD ksh clone) on Linux/MacOS/Other Unix. It has far fewer extensions than something like Bash (which I consider a positive) while being much faster (tested with hyperfine), and the extensions it does have are all useful (arrays, coprocesses, select, .* not expanding to . or .., pattern blocks, suspending of the whole shell).
Powershell, but heavily customized.
Why the downvotes? Ps is pretty good and it works well on Linux too.
Fish for interactive shell. “It depends” for scripting, but usually ends up Bash since it is the NixOS default.
Uh. Whatever my distro comes with per default.
Bash
Bash, just because everything else already uses it. That and bashisms have infected nearly all of my scripts as I clumsily bump into the limitations of POSIX string manipulation.
I have found some very fun things with sed branching patterns as a result of these limitations though…
https://www.gnu.org/software/sed/manual/html_node/Branching-and-flow-control.html
ZSH through the excellent ZSH Quickstart Kit.
How have I been using zsh for this long yet never heard of that? I gotta give it a go, thanks!
It’s definitely a hidden gem. Enjoy!
Bash as it is what I’m most familiar with. Having an eye out on the https://amber-lang.com/ that compiles to bash for future scripting purposes.
Zsh, because unlike Bash using arrays in Zsh doesn’t make me want to perform percussive maintenance on the nearest Von-Neumann machine
I always figured that Ksh / POSIX / Bash shell arrays are kept as they are because anyone with a serious need of arrays ought to be using something better than a scripting language.
Not necessarily.
They’re a basic data structure used everywhere, most notably with command arguments ($@
) and can make shell scripts a viable option for many simple tasks if their syntax makes sense and you don’t have to wonder how their expansion works every time you see one being used.An analogy:
My Swiss Army knife has a screwdriver on it. It’s nice to have, and I even used it recently.
It juts out perpendicular to the middle of the knife’s body though, making a literal " |- " shape, so for many applications it’s too awkward for the job.
I also have a more traditional screwdriver. As and when I come to build a new PC, I don’t think I’ll be using the one on the knife.
Following the analogy, what if the screwdriver part was bent by 30° and you had to awkwardly turn the tool while keeping it tilted - but there’s also a spring mechanism that attempts to retract the screwdriver you push too hard against the screw?
(all of that for historical reasons, of course)
((or even to discourage you from using the tool?))