96

I just found out about fish shell a few moments ago. I switched Konsole on KDE to use it instead of bash and am impressed so far. Might install it on the Pihole eventually. Good stuff, just wanted to share. :)

top 41 comments
sorted by: hot top controversial new old
[-] qaz@lemmy.world 28 points 4 days ago* (last edited 4 days ago)

Fish is great. I love how it works by default. I always felt like zsh required too much setup.

Have you also tried nushell? It's great for manipulating data from e.g. .csv or .json files. It works with structured data like so:

[-] LucidNightmare@lemmy.dbzer0.com 2 points 3 days ago

I'm honestly just now finding out about all of these different shells, and prompts! It's amazing, and daunting at the same time!

Right now, I'm just using fish since it does the little that I need from the terminal. I am a Linux noob/casual, so working with scripts or CSV or JSON files aren't all that important to me. I will take a look at nushell though! :)

[-] Oinks 5 points 4 days ago* (last edited 4 days ago)

One thing that bothers me about Nushell (even if it doesn't really matter) is honestly just how bloated the table style is, with three columns in each column margin and six columns of enforced line numbers. Why can't it display tables in the same style as regular UNIX commands?

Another thing that bothered me is that the "blessed" way to parse tables from external commands seems very fragile to me. Iirc the builtin parsing commands work solely off table headers, which are locale dependent for many commands, so a script might appear to work fine but suddenly break if an LC_* environment variable sneaks in somewhere. The size filter trick works nicely for ls, but doing the same thing becomes painful again when using df.

I also found the script syntax (implicit line continuations, command seperation, etc.) difficult to understand but presumably that's just a matter of familiarity.

I'll have to give it another try in the future but for now Fish is good enough for me.

[-] victorz@lemmy.world 5 points 4 days ago* (last edited 4 days ago)

Not OP but I fell instantly in love with fish shell and its design principles.

I've also tried nushell and its design and ideas are really cool. I'm sure it can be very useful for often handling data in the shell. But as a daily thing it was a bit much for me at the time to transition to. ๐Ÿ˜… I'd love to explore more sometime though.

[-] qaz@lemmy.world 4 points 4 days ago

Yes, it takes some getting used to. I still use fish as my default shell and use nu for working with data.

[-] CubitOom@infosec.pub 22 points 4 days ago

There is also zsh which has a lot of the great features of fish, especially if parird with something like zimfw.

Another interesting shell is dash

Here's a list of other shells.

[-] tyler@programming.dev 25 points 4 days ago* (last edited 4 days ago)

To get most of the good features of fish in zsh you have to install a bunch of plugins. And itโ€™s way slower than fish as well. I used zsh for like 6 years and when I switched to fish (probably in 2018 or 19) Iโ€™ve never gone back. Fish is just so much better.

[-] qaz@lemmy.world 7 points 4 days ago

And itโ€™s way slower than zsh as well.

Did you intend to write this part like this?

[-] tyler@programming.dev 8 points 4 days ago* (last edited 4 days ago)

No Iโ€™m really tired and I think I backspaced and fished it up. OK Iโ€™m leaving that autocorrect cause itโ€™s funny

Edit: updated and fixed to say โ€œitโ€™s way slower than fishโ€

[-] rozodru@piefed.social 1 points 3 days ago

since I switched to NixOS I'm finding this out now. Prior to this every Distro I was on I used zsh/oh my zsh because I'm a dummy and need the autosuggestions, autocomplete, syntax highlighting etc and it was quick, no issues.

Now that i'm on Nix zsh is slow to get to a prompt. logging in via tty takes 2-5 seconds to hit a prompt, in a terminal about the same. maybe I set up my nix config wrong, I don't know. I'm only loading those three pluggins and I've boiled it down to the autosuggestions and or autocomplete.

It might just be a conflict with NixOS' auto suggestsions/complete thing (likely is) but if Fish or Nushell has the same 3 features I need because, again, i'm a dummy then I'd happily switch.

[-] krimson@lemmy.world 2 points 4 days ago

Had the opposite experience, fish was way slower than zsh for me.

[-] Ephera@lemmy.ml 5 points 4 days ago

I have no idea where you guys are seeing any slowness for any shell, but perhaps worth pointing out that fish was recently rewritten (published as version 4.0), so if you are interested in it, might be worth another look.

[-] Ghoelian@piefed.social 2 points 4 days ago

My zsh is pretty slow sometimes, but that's because I've enabled all kinds of git stuff in my prompt. I wish it could do those git commands asynchronously.

[-] Ephera@lemmy.ml 3 points 4 days ago

Ah right, the prompt would probably make a difference.

I use Starship which probably does the Git commands asynchronously. The code at least mentions multiple threads and the Git stuff is split into multiple modules, which I would assume to be fetched in parallel.
Either way, I have all the Git modules enabled and the prompt still display as quickly as my finger releases the Enter key, so definitely good enough for me. ๐Ÿ™‚

[-] Ghoelian@piefed.social 2 points 3 days ago

Good point, I never even considered looking for a different prompt. Starship looks interesting, trying that today!

[-] krimson@lemmy.world 3 points 4 days ago

Yeah could well be, it was some time ago I tried it. I am happy with zsh though, and as always, use what you like.

[-] victorz@lemmy.world 3 points 4 days ago

I had the opposite from you, zsh slow even with a couple plugins (or no plugins). Like, I could see a delay with my naked eye between opening the terminal emulator and the prompt appearing. Not with bash or fish though. ๐Ÿ‘Œ

[-] tyler@programming.dev 2 points 4 days ago

How many plugins do you have? To get the same features that fish has I was seeing multi second loading times with zsh with every plugin system I tried.

[-] victorz@lemmy.world 5 points 4 days ago

"zimfw"

Look at what they need to mimic even a fraction of [fish's] power โ˜๏ธ

[-] CubitOom@infosec.pub 1 points 4 days ago

Idk, it could be argued that the ability to add exactly what features you want via plugins might make the shell more minimal and faster. Although most people don't know what they want and just install everything.

[-] victorz@lemmy.world 3 points 4 days ago

I'd rather have the official shell code add the features I want rather than have to maintain a list of the plugins written by god knows who, that add the functionality I want. Just my own gut feeling, you could call it.

[-] zeezee@slrpnk.net 11 points 4 days ago
[-] The_Decryptor@aussie.zone 9 points 4 days ago

Yep, leave the default shell as-is and either set the terminal app to spawn the one you want, or exec fish from the existing shell profile in interactive cases.

[-] victorz@lemmy.world 4 points 4 days ago

All we need, baby, no reason really to make it the default shell for the user.

[-] WhatsHerBucket@lemmy.world 11 points 4 days ago

I gave it a try recently and ended up going back to zsh and plugins that do fish things.

[-] victorz@lemmy.world 3 points 4 days ago

So you want the features of fish? Why'd you go back to zsh then?

[-] Tangent5280@lemmy.world 4 points 4 days ago

I considered Fish but decided against it because of POSIX compliance

[-] victorz@lemmy.world 3 points 4 days ago

I'm not trying to change your opinion, just curious: what is the reason for wanting POSIX compliance? You often share scripts? Dotfiles perhaps?

[-] Tangent5280@lemmy.world 2 points 3 days ago

I am shitty at shell scripting, so I often use other people's scripts from the internet with some minor tweaks. I've also put a lot of time into learning the nuances of zsh so there is also a lot of the sunk cost effect going on.

Also, and this is an assumption, I think other shells just have a lot more online resources you know? I have not yet found any problems or ideas I've had that someone else haven't also had and solved.

[-] victorz@lemmy.world 3 points 3 days ago

Cool, thanks, that explained everything for me. ๐Ÿ˜

[-] WhatsHerBucket@lemmy.world 3 points 4 days ago

Fish isnโ€™t posix compliant, so some scripts I use had issues. I'll play devil's advocate, why do you like fish? :)

[-] 0xD@infosec.pub 3 points 3 days ago

I like fish because it requires no setup to be nice to use and the scripting is more intuitive when not doing it constantly.

[-] victorz@lemmy.world 6 points 4 days ago

so some scripts I use had issues

I just rewrote all of my scripts in idiomatic fish. ๐Ÿ˜„

why do you like fish? :)

It made my scripts 50% shorter on average, and 100% more legible. Short and simple. The code is easier to read and maintain, IMO. Less magic syntax that you need to look up in the bash manual* every dang time. You come back to your scripts after a few years and you just instantly can see what they do, without comments.

(*) Speaking of the manual. The bash manual is quite long. And the zsh manual is a fโ€”ing mess, split up into so many sections, and the thing I want to find is never where I first look, so I just go into the zsh "all" manual, which is humongous and difficult to navigate, basically just a cat of all the different zsh manuals.

Fish has a short and sweet manual because the language is very small, and every command has its own manual page as well, which just makes sense on some level. Also it's available as a web page by typing help. Very convenient.

Very well thought out. ๐Ÿ‘Œ

[-] pressanykeynow@lemmy.world 2 points 4 days ago

I use fish on a couple of devices, but damn it's frustrating when you want to do a fast and simple bash scripting and it doesn't work. Frankly now I think it would have been better to spend some time to setup zsh.

[-] victorz@lemmy.world 4 points 4 days ago

but damn it's frustrating when you want to do a fast and simple bash scripting

Of course it's going to be frustrating to try to write bash scripts and then try to run them as fish scripts.

What you should be doing is writing fish scripts and running them as fish scripts. That is a much more pleasant experience. ๐Ÿ™ƒ

[-] pressanykeynow@lemmy.world 2 points 4 days ago

I know. I just don't want to. There's no point in learning fish scripting, you won't use them anywhere unless you want your colleagues to hate you because now they also have to learn it for no reason.

[-] victorz@lemmy.world 2 points 3 days ago

I only use my scripts privately and my scripts are now shorter and easier to read and maintain. Also I use it as my everyday shell, and I couldn't be happier with a shell right now, that I know of. The documentation is also extremely good. Simple to understand, and a small language.

There's a big point to learning it if you like its design principles. But if you don't, then there isn't. ๐Ÿ‘

Enjoy whatever shell you like!

[-] foobaz@lemmy.world 3 points 4 days ago

I still write all my scripts for bash (or busybox sh) with a shebang, then call it from fish.

[-] pressanykeynow@lemmy.world 2 points 4 days ago

I do too but then you want to just run basic for i;do x;done and you need to translate it to fish syntax.

It wasn't much of a problem but this thread actually convinced me that there's less profit from fish than using something like an old oh-my-zsh(probably much easier to setup now).

Is it good if you setup your new pc, don't have your configs at hand and want a nice terminal with convenient features? Definitely. But I think it's better to spend 5 minutes afterwards to move away from it.

[-] the_crotch@sh.itjust.works 1 points 3 days ago

Shellfish aren't kosher

[-] Lettuceeatlettuce@lemmy.ml 3 points 4 days ago

I like Fish a lot, it's a good shell.

this post was submitted on 25 Aug 2025
96 points (100.0% liked)

Linux

12824 readers
60 users here now

Welcome to c/linux!

Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!

Rules:

  1. Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.

  2. Be respectful: Treat fellow community members with respect and courtesy.

  3. Quality over quantity: Share informative and thought-provoking content.

  4. No spam or self-promotion: Avoid excessive self-promotion or spamming.

  5. No NSFW adult content

  6. Follow general lemmy guidelines.

founded 2 years ago
MODERATORS