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?
zsh because I’ve been using it since college and I don’t like change
Zsh works for me
Plus oh-my-zsh and the powerline 10k theme - this is my go-to shell.
Pure theme ftw
I don’t really rate zsh personally. I find the additional features/syntactic sugar it adds are a poor tradeoff for lower portability. I also end up changing the settings in my zshrc to make it behave more like bash.
Bash or ZSH. Whatever is default.
I went through sh->csh->tcsh->bash
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.
Fish for an interactive shell, and I’ll often drop back to bash for writing a script. I can never remember how to do basic program flow in fish. Bash scripting is not great, but you can always find an example to remind you of how it goes.
Honestly? Bash. I tried a bunch a few years back and eventually settled back on bash.
Fish was really nice in a lot of ways, but the incompatibilities with normal POSIX workflows threw me off regularly. The tradeoff ended up with me moving off of it.
I liked the extensibility of zsh, except that I found it would get slow with only a few bits from ohmyzsh installed. My terminal did cool things but too slowly for me to find it acceptable.
Dash was the opposite, too feature light for me to be able to use efficiently. It didn’t even have tab completion. I suffered that week.
Bash sits in a middle ground of usability, performance, and extensibility that just works for me. It has enough features to work well out of the box, I can add enough in my bashrc to ease some workflows for myself, and it’s basically instantaneous when I open a terminal or run simple commands.
Fish has continued to add bash compat over time.
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).
Former
zsh
user.fish
works for me.
For scripts I usebash
tho.Fish shell. I switched to fish ages ago, back when I didn’t know much bash scripting. Now I am just so used to it that I don’t wanna switch back. Plus it just works.
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?
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.
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.
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
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
Microsoft copilot
PowerShell, with zsh being a close second
Feeling risky today, eh? Mind sharing the reasoning behind your extravagant choice?
Not sure what’s extravagant about it… Fully object oriented pipeline in a scripting language built on and with access to the .NET type class system is insanely powerful. Having to manipulate and parse string output to extract data from command results in other shells just feels very cumbersome and antiquated, and relies on the text output to remain consistent to not break
PowerShell, it doesn’t matter if more or less data is returned, as long as the properties you’re using stay the same your script will not break
Filtering is super easy
The Verb-Noun cmdlet naming convention gets a lot of (undeserved) hate, but it makes command discovery way easier. Especially when you learn that there’s a list of approved verbs with defined meanings, and cmdlets with matching nouns tend to work together.
It actually follows the Unix philosophy of each cmdlet doing one thing (though sometimes a cmdlet winds up getting overloaded, but more often than not that’s a community or privately written cmdlet)
It’s easily powerful enough to write programs with (and I have)
And it works well with C#, and if you know some C#, PowerShell’s eccentricities start to make way more sense
Also, I mainly manage Windows servers for work running in an AD domain, so it’s absolutely the language of choice for that, but I’ve been using it for probably close to 14 years now and I can basically write it as easily as English at this point
Bash