I never tried anything other than bash tbh. Not sure if i should. I never really looked into what i might be missing out on with a different shell. Bash just works so i never felt like messing around with it.
fish is worth trying. saves alot of typing
If you ever used ubuntu, then you’ve used dash
What about ksh?
Oh yay, more tribalism.
I am a pureblood and do all the computing I need in my head.
Real sysadmins use butterflies.
Yay? Everybody knows you should use paru! /s
lmfao beautifully executed
I switched from bash to zsh a while ago, mostly just for shits and giggles. I really can’t see any reason to form a strong opinion on it one way or the other.
I don’t have an opinion either but you could try using Starship on top of ZSH:
It’s supposedly lighter than OhMyZSH with the same features.
Starship is also available with other shells, and even Powershell which is nice because having the same tool everywhere is always better.
If you wanna try something different, give nushell a try. It’s like magic to me.
Bash is copyleft (GPLv3). Zsh is permissively-licensed.
Apple, for instance, switched from bash to zsh when the GPL version upgraded because they wanted to withhold those rights from their users.
Zsh should be considered harmful as a tool of corporate encroachment and subjugation of Free Software.
Calm down RMS, you’re going to have another episode.
His episodes are just him being right over and over and us refusing to listen
Well and also eating his own feet
He is always right.
Except for that one time.
He should be awarded a prize for services to womens’ horticulture, given the number of women at MIT who filled their offices with houseplants just to keep him away.
I went from bash to fish to zsh. I can see why people would like having fish as a shell. but I hated scripting on it and if I’m going to be triggering a different shell for scripts anyway, I might as well skip the middleman, not re-invent the wheel and just use zsh with plug-ins that way I only have two shells installed instead of three. Adding the auto-complete plugin and a theme plugin for zsh gives most of fishes base functionality and design while making it so I don’t need to worry about compatibility.
Maybe someday when I’m less code oriented, I will re-look at fish, but I don’t see it happening in the foreseeable future.
Heh. I script nearly everything in fish now, because it’s way more expedient and readable. [At first I didn’t, just thought its advantages are interactive. Better scripting snuck up on me.]
Wouldnt ZSH be the wasted middle in your analogy?
Fish wheel already invented, no contrived middle.
Am I out of the loop? what’s wrong with zsh?
Unrelated to the topic: How did you make your username red?
I didn’t, depending on your client it might be how it signifies instance admins
Thx.
It makes people vomit.
Classic linux tribalism. Use what you like and don’t get involved with these confrontational nerds.
There doesn’t have to be tribalism, people just need to accept that systemd is a botnet
I mean, there’s some things that became validly toxic due to their developers, example off the top of my head: Reiserfs
Are you referring to the creator of Reiserfs killing his wife and burying her in a shallow grave near their home?
What else could I possibly be referring to?
Inserts joke about it being weird that it happened twice
True, software can call you a slur.
Or kill your mail order Russian wife.
It can when I write it.
wat?
It’s permissively-licensed (as opposed to bash, which is GPLv3). Pushing zsh over bash is part of a larger effort by corporations to marginalize copyleft so they can more easily exploit Free Software at the users’ expense. Don’t fall for it!
fish, the main modern alternative to zsh + oh-my-zsh, is mostly GPLv2, and you can redistribute it and/or modify it under the terms of the GNU GPL as published by the Free Software Foundation.
Come one, free software aside bash UX is terrible. Not everything is a conspiracy.
It’s such a shame that, if zsh gains enough critical mass, all copies of its source code will be deleted from the universe and no-one will be able to use it without paying any more.
It’s such a shame that you can’t customize the version of zsh running on your Linux-based embedded device because it’s DRM’d to prevent the modified version from being installed.
…oh wait, that’s not sarcasm because it’s actually plausible.
Cool.
And what, exactly, is the path from “pushing back on zsh” to “embedded device manufacturers can no longer lock down their devices?”
A plausible path is precedent and normalization, not zsh specifically.
If a widely used copyleft component (like a shell) starts being accepted as “OK to lock down” in consumer or embedded devices, manufacturers and courts get comfortable with the idea that user-modifiable software is optional rather than a right tied to distribution. Over time, that erodes enforcement of anti-tivoization principles and weakens the practical force of copyleft licenses across the stack.
Once that norm shifts, vendors can apply the same logic to kernels, drivers, bootloaders, and userland as a whole—at which point locked-down embedded devices stop being the exception and become the default, even when the software is nominally open source.
I don’t understand. It’s already ok to “lock down” devices, from the point of view of most consumers and the courts, regardless of the software license. Phones make it hard for you to flash new firmware onto them. That is still true with android and the open source components in its stack.
Using bsd licensed software in every day life cannot accelerate that because it has already happened, and I don’t see how it would be otherwise, because software licensing doesn’t protect against the kind of locking down you’re talking about.
“The single raindrop never feels responsible for the flood.” - Douglas Adams
Shit I didn’t know this was a problem. What devices are these? I’m assuming we’ve got a few in every home?
It’s called tivoization and started with a device called “Tivo” which was the first of its kind to attempt this procedure.
There are probably lots of hardware devices in your house that use GPL software but prevent you from actually modifying it because the hardware will refuse to run modified copies. If a piece of software is licensed GPLv3, it would violate the license terms to do something like this.
Yes but we’re talking about zsh. I know zsh wasn’t on TiVo.
It’s better.
Foss traditionalism im guessing.
It’s stinky and smelly and smells bad.
Same as systemd, PipeWire, Wayland, Flatpak… basically, it’s new therefore it is bad.
RMS doesn’t approve
They asked what’s wrong
This is bait.
And I’m ready to
fishIt’s time for a
nushellFish is great if you can’t remember a specific command, or don’t want to type out long filenames/locations, but I dunno if I’d use it as the default.
I just type “fish” in the terminal if I ever run into a situation where I might get some use from it.
in my ~/.bashrc
# if interactive, launch fish [[ $- != *i* ]] && return || fishand
alias f='fish'So fish is my default, and if I ever need bash, it’s already there underneath, just a Ctrl-d keybind away to fall back on, and if I want to get back into fish, it’s just a
f& RETURN away.Seems better to have all the convenience of fish up front. All the completion magic. I so rarely have to type much at all.
Why not just set it as the default then?
I used to do that, until I realized I never had a usecase for plain bash over fish
I have that occasionally when I want to copy a complex bash command from somewhere. But yeah, I can then just run
bash, run the command in there and thenexitback out of there.that’s what bass is for
I’m guessing, you mean this then: https://github.com/edc/bass
But well, I was rather thinking of when it’s using Bash-scripting-syntax to combine multiple commands.
Like, maybe there’s a for-loop in there. You just can’t paste that directly into Fish and have it work. Granted, you should probably put that into a script file, even if you’re using Bash, but yeah, just temporarily launchingbashis also an option.
Currently using
zshbut I installedfishyesterday to try it out because I’m thinking of switching. All thezshplugins I have are basically just replicating whatfishhas by default anyway and fish might do it better.Just whatever you do, don’t
ln -s /bin/fish /bin/shWell a shell script that can only run with Nash should include !# bin bash in the header.
You assume everyone writes shebangs correctly. Also ideally you’d use
I see.
Proceed to write
It still gives you basically no advantage compared to just making your terminal emulator launch
fishby default. And well, it does give you the major disadvantage that scripts without shebang will fail.
The other way around, fish was implemented with the most popular zsh plugins in mind.
Six and two threes
Plus, look at your name!
what’s fish got? I’m liking zsh here but am always open to a distraction instead of getting work done. :)
Lovely OOTB defaults. I basically change nothing except the theme.
Autocomplete, git context, etc. The QOL stuff you’d expect.
does fish have fuzzy reverse hostory search?
Looks like that is indeed the default option
oh interesting. will give it a shot. basically sounds like zsh plus omz?
This is a good way of putting it. It’s essentially ZSH with Autosuggest/complete and a theming agent. At least visual-wise.
When you get into the scripting and the hot keys aspect of it, they reinvent the wheel and everything is different., Like for example ,!! and other bangs(I think that’s the right word?) like that are not valid on fish, And everything to do with variables is different from adding to your path to setting variables to creating functions. Also checking your error code is going to be different as well as it doesn’t follow the $x style inputs and doesn’t support IFS and globbing works differently.
TLDR; fish is nice, but If you use it unless you want to relearn an entire type of language, keep your scripts on bash or zsh
or if you wanna see the bigger differences fish has a dedicated bash transition page
I never managed to learn bash’s ways in my first decade of using it, learning fish a decade ago was easy by comparison. So much more human readable and sensible and consistent. Even though fish is the friendly interactive shell, I now use it for all my scripting too.
That was the exact opposite with fish. I had already gotten fairly well first with bash by the time I started using it, and the way fish did it was just super counterintuitive to me.
I couldn’t get into the overall design of how it looked and I disliked how command substitution and the built in’s worked, Combined with the fact that it’s a lesser used shell, so there’s less information available on it. I just couldn’t do it.
You brought up a point though. That makes me ask. You must not have to share your scripts with anyone then, right? Fish has a very small user base in comparison to ZSH and Bash and when I make a script that’s more advanced I tend to want to share it with my friends and having them install a whole new shell just to run a script is just not helpful to me. ZSH is close enough to bash in compatibility that, generally speaking, if I want to share it, I can use zsh And then convert the minor discrepancies. Where with fish I have to redo the entire script.
I don’t know why small user base is considered as meaning I must not have to share my scripts. Is it like an argumentum populum thing? [“If you build it they will come.” ;D]
[I suppose It’s true in a strict interpretation of those words… I don’t have to.]
I think I have several on my git repos. [… I have even written a text editor in fish.]
Free to use for anyone who wants to.
Also, if user base size is a concern, Fish’s user base is growing faster than Bash or ZSH.
Installing another shell seems a trivial matter to run something.
I install far bigger languages for far less all the time.
And conversion [if for some edge case reason you really need to ~ I know not why though] is generally trivial these days… just ask an LLM, if conversion scripts are lacking.
As for the less information about it… the online help’s really rather thorough and accessible.
- https://fishshell.com/docs/current/tutorial.html
- https://fishshell.com/docs/current/index.html
- https://fishshell.com/docs/current/faq.html
- https://fishshell.com/blog/index.html
I don’t know that quantity over quality would help. It didn’t for me and bash.
Unless I missed something, it seems to me that all that remains, is
I disliked
And that’s of course utterly fine. Free software’s defining point zero, the freedom to use software, includes the freedom to not use. Good to have multiple options to further facilitate that first freedom, catering to more variety of tastes.
thanks for the detail!!
The main differentiator of fish over everything else is it prioritizes intuitive behavior over backwards compatibility.
Zsh is to bash as c++ is to c. Most bash scripts and habits will work in zsh, but zsh is just more convenient and has more options. Fish is intentionally different.
Do I wish fish had existed instead of bash so we had a nicer terminal experience? On the whole, yes. But I also couldn’t be bothered to learn another shell where most of the instructions online won’t be able to help you, and I ended up sticking with zsh.
Be aware that fish isn’t a POSIX-compatible shell enough, so you have to adjust syntax.
That isn’t incorrect, but it’s not as important as people make it out to be. Linux isn’t certified as POSIX-conformant either.
People are way too stuck on POSIX regarding Fish specifically, but in shell scripting, POSIX compliance boils down to “can it run a pure
shscript”. Bash is compliant. Zsh is partially compliant and needs to set an option to emulatesh. Fish uses a different syntax and is not compliant; if that is a problem, don’t executeshscripts in Fish.POSIX compliance for shell scripts was important in the 80s and 90s when the
#!directive wasn’t as commonly implemented and every script might be executed by the user’s$SHELLinstead. That is no longer the case as virtually every Unix-like system’s program loader supports#!.I use fish, but sometimes it acts weird. And lots of “just copy and past this command” kind of online solutions I have to put into bash.
My main irk is when I want to forward a ‘*’ to a program but have to escape it.
That’s why it’s a shell for the 90s and not the 80s
It’s a cool shell, I use it as a daily driver (though I’m keeping a close eye on elvish which syntactically is even further away from classic shell), but the comments read like fish is basically zsh. And while zsh is pretty close to bash, fish isn’t.
Yup, very similar! And quite customizable as well if you want to. But the focus is on having, by default, a friendly interactive shell.
I like that I can spin up a VM, install fish,
chshand I’m all set.
Zsh? That’s a command shell I have not heard of for a very long time.
Check the date on his computer, is it also set to something in the 1980s?
Nushell is very cozy for me. I work with SQL all day so I ended with PTSD and having my terminal syntax cosplay as it is nice.
What specifically do you dislike about zsh?
tbh it’s fine and i use it a lot more than bash.
It’s the index on 1 that ruins it for me.
Edit: come to think of it what would zsh print out for echo $0?
Fish was kinda cool when I tried it, but I don’t really care about the benefits that much. I love Zsh’s effortless customization with Oh My Zsh and the POSIX compatibility.
I’m not tring that on my machine. What does it does?
Prints out what shell you’re using. Bash is default for most Linux distros. MacOS switched from bash to zsh as their default. Zsh is hella customizable, by default it functions more or less like bash.
Fish is cool, has neat quality of life features out of the box, but can also break scripts sometimes.
For me it does not seem to print anything

I’m using fish, which is great :)Good scripts don’t break in other shells, they use a shebang
Thank you. TIL.
A 4chaner has friends? Fake nerd copium.
I use zsh and it’s fine, I use it with starship, zsh-syntax-highlighting and zsh-autosuggestions
You can do that with
fishtoo and it’s easier to do soYes, I replicated some features of fish in zsh because I liked some parts of fish but I didn’t like the different syntax (not that I’m too familiar with the shell, just familiar enough to get annoyed sometimes when using fish).
I literally do not notice any difference. If the folders and such get the pretty colors and tab works, I could give a damn.
bait used to be believable























