So I’ve been using Linux now for a while, and am looking to migrate my dev environment to vim and spend more time in the command line. I’m fairly comfortable with bash but by no means an expert. I’ve used zsh with some minor customization but just recently learned about fish. I’d love to hear people’s opinions.

  • @[email protected]
    link
    fedilink
    42 years ago

    Fish, it just works. Customization is super simple and has a really nice webui if you’re into that sort of stuff. Plugins are easy to install with fisher. Out of the box it’s very ergonomic and you don’t have to deal with tons of scripts that may need debugging. Custom shell functions take 2 seconds to set up. Scripts use a shebang to specify the shell they run in, so you shouldn’t have any issues with that. Whenever I absolutely need to run a command with bash, I just switch to it, do what I need to do, and hop back to fish. Highly recommend, haven’t looked back since I started using it a few years ago :)

  • RiikkaTheIcePrincess
    link
    fedilink
    22 years ago

    Whoops, I forgot about this tab and now I’m late to the fish party 😅 I used to use customized zsh but have since switched to fish and it’s basically everything I had to work to get zsh to do, only without any of the work. It just is what I want from a shell, I just grab it from the nearest package manager and off I go.

    …Unfortunately for fish, that’s made me curious that there may be “another fish” out there somewhere that’s what I’d be struggling to turn fish into if I knew any better than I do now 🤣

  • @[email protected]
    link
    fedilink
    English
    122 years ago

    I moved to the fish shell a while ago and I love it, everything I need works OOB. I don’t understand people complaining about the different sintax for scripts, this is a non issue, just use #!/bin/bash at the start of your script and it will use bash, or just execute directly with “bash script.sh”.

    • nickwitha_k (he/him)
      link
      fedilink
      42 years ago

      I don’t understand people complaining about the different sintax for scripts, this is a non issue…

      I have a two major reasons:

      • Adding another shell syntax adds unnecessary cognitive load and context switching. If I were to use a non-POSIX shell, I’d have to remember another, highly domain-specific language, in addition to BASH/ZSH/SH and need to context switch when writing and debugging shell scripts. Instead, I can spend the mental energy on writing code, and learning new languages and tools.
      • Most remote *nix systems run BASH or another POSIX-compliant shell. This introduces additional context switching when administering or debugging remotely.
  • @[email protected]
    link
    fedilink
    English
    12 years ago

    Been using fish for awhile. I don’t need much more than smart autocomplete (which is built in) and some small QOL plugins. Sometimes it sucks because the syntax is slightly different than bash or zsh so you will have to get used to that.

  • @[email protected]
    link
    fedilink
    7
    edit-2
    2 years ago

    I tried fish and liked it.

    But compatibility to bash is not great.

    So I changed to zsh with zsh quick start kit (zgen and later zgenom). Zsh has more more community, frameworks and plugins.

    Now I roll my own zsh config using zinit with turbo.

    • Vivi
      link
      fedilink
      English
      22 years ago

      I use fish with the bass plugin for any time I need to work with bash scripts.

  • @[email protected]
    link
    fedilink
    72 years ago

    I use zsh with a few customisations. I’ve used fish but it’s sometimes slow so I just stick to zsh.

  • @[email protected]
    link
    fedilink
    82 years ago

    I use Linux for work and I’m pretty much fully in bash. What’s the benefit of changing to a different shell? Will all my scripts still work?

    • @[email protected]OP
      link
      fedilink
      42 years ago

      Zsh is just bash with plugins and stuff, so regular bash scripts work. fish, as I understand, uses its own language.

      • @[email protected]
        link
        fedilink
        32 years ago

        That’s right. zsh is POSIX compliant while fish is not. That’s the reason I switched to zsh from fish.

      • @[email protected]
        link
        fedilink
        52 years ago

        Bash code is not safe to run as if it were Zsh, and Zsh has language features Bash doesn’t. They are different languages.

    • @[email protected]
      link
      fedilink
      2
      edit-2
      2 years ago

      I made myself this question and jumped to fish and never came back to bash. I now use mostly the terminal for most things together with ranger.

      If you decide to jump to fish install fish + fisherman + fzf

      Fisherman for installing themes and plugins and with it you install the fzf plugin. I also have the tide theme which is pretty nice.

      PS. Bash scripts still run as bash so there is no conflict.

    • @[email protected]
      link
      fedilink
      22 years ago

      On Mac, zsh is default.

      I use zsh with zinit (with turbo mode) or zgenom.

      Zsh quick start kit and z4human (created by powerlevel10k author) are great starts if you do not want to invest on configuring zsh.

  • @[email protected]
    link
    fedilink
    192 years ago

    I use Fish shell and while it is pretty nice on its own, the fact that it is non-standard does cause problems. Many times you will search for something online and you’ll find nice bash results, which either you will have to execute directly in bash or modify to work correctly in Fish.

    I don’t think all of Fish’s design choices are the best, either. But for an OOTB experience, it is nicer than either Bash or Zsh.

    • @[email protected]OP
      link
      fedilink
      52 years ago

      That’s actually a pretty good reason. Currently I own my work environments but that won’t always be the case, I’m sure.

    • @[email protected]
      link
      fedilink
      172 years ago

      You’re probably not gonna have zsh either, though, but I wouldn’t recommend using sh as your shell on your personal dev machine 🤷‍♂️

  • @[email protected]
    link
    fedilink
    52 years ago

    I used zsh for ages but switched to fish a few months ago because its navigation features are amazingly smooth and seamless. I generally write scripts in sh or python so navigation is the most important part of the terminal for me. Fish has bash compatibility plugins if you need them, but the main reason I use it is that it’s the nicest feeling shell to use for getting around in a terminal that I’ve found so far.

    That counts for a lot.

  • @[email protected]
    cake
    link
    fedilink
    42 years ago

    All of those are good choices with different trade-offs. I am a long time zsh user but I’d say stick with bash until you feel strongly enough about your preferences to evaluate the other options for yourself.

  • @[email protected]
    link
    fedilink
    32 years ago

    Depending on your use case. I personally use zsh and oh-my-zsh but you can always customize bash to be more like zsh, have auto completion, etc.

  • RoBoT_095
    link
    fedilink
    English
    52 years ago

    I daily drive Linux mint and love using fish, I do have a custom built NAS but I rarely ssh into it, so I’m not limited by it, but as some mention that if you’re a dev and do a lot of SSH/remote controlling then it might work against you if you form too many habits.

  • @[email protected]
    link
    fedilink
    282 years ago

    I use fish because I have better things to do than tweak my shell configuration and debug shell plugins.

    When I tried oh-my-zsh and prezto (I think?) they came with tons of plugins that performed badly and made it hard to get things done (specifically, they ran git status synchronously on every new prompt, which does not work well in a moderately large repo). Fish had similar features but wasn’t horribly slow, so I use it.

    • @[email protected]
      link
      fedilink
      42 years ago

      I’m also using fish shell, it find it very user friendly and extremely practical. It gathers all the programs options which you can see when pressing Tab and together with the fzf plugin for history and file search it becomes a very smart shell to use.

    • @[email protected]
      link
      fedilink
      82 years ago

      Same. I’ve written a fish plugin, but other than that I just fish pretty much stock. It works and just gets out of my way.