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.

  • @no_priority@sh.itjust.works
    link
    fedilink
    222 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.

    • @techwizrd@programming.dev
      cake
      link
      fedilink
      62 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.

    • @ogeist@lemmy.dbzer0.com
      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.

  • @GnuLinuxDude@lemmy.ml
    link
    fedilink
    162 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.

  • @marv99@feddit.de
    link
    fedilink
    12
    edit-2
    2 years ago

    Let the religious shell wars begin … again

    Only right answer is of course TCSH. Not much documentation and support, ancient but still receives new bugs in 2021 (on Debian), but attackers hate it! (I love it)

    My real suggestion is to learn zsh and fish (and bash). Try using them for all your purposes and in the end you will automatically find the one (or more of them) that suits you best and that you like most for your daily tasks.

  • nickwitha_k (he/him)
    link
    fedilink
    11
    edit-2
    2 years ago

    I like zsh with oh-my-zsh and Powerlevel10k. This gives me a clear indication of which system I am on and remains POSIX-compliant.

    The biggest deal breaker for me for shells like fish are the they are not POSIX-compliant and I need to use remote systems regularly. Doesn’t make sense to use something with a different syntax to me.

  • @sf1tzp@programming.dev
    link
    fedilink
    6
    edit-2
    2 years ago

    If you want you can install starship, which provides a lot of the nifty prompt customization I see in other people’s zsh configs. I’ve been using it with bash for a few months now and like it a lot.

  • @dieelt@lemmy.ml
    link
    fedilink
    62 years ago

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

  • @iusearchbtw@lemmy.sdf.org
    link
    fedilink
    English
    52 years ago

    bash with ble.sh! I’m a former fish user, and ble.sh replicates all of fish’s quality of life improvements (that I used, at least) and then some, all with a single source command in my .bashrc. And it’s still bash at the end of the day, so online resources to tweak and modify it all still work.

  • @darklamer@lemmy.dbzer0.com
    link
    fedilink
    52 years ago

    An old sysadm introduced me to zsh 28 years ago now and I’ve used it as my primary shell ever since. It’s tried, tested and most certainly works well.

  • @featherfurl@lemmy.ml
    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.

  • @zero@lemm.ee
    link
    fedilink
    52 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?

    • @ogeist@lemmy.dbzer0.com
      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.

  • @yum13241@lemm.ee
    link
    fedilink
    42 years ago

    ZSH, ZSH, ZSH! Fish is not POSIX compliant, meaning most shell scripts won’t work and it has its own special snowflake syntax.

    Also, don’t use Oh-My-ZSH! Just use the package manager in your system.

    • @pitbuster@lemmy.ml
      link
      fedilink
      22 years ago

      you can always run scripts with the shell they were written for (and you can even argue that people writing scripts should always set the shebang)

      • @yum13241@lemm.ee
        link
        fedilink
        02 years ago

        If I have to switch shells all the time when another shell, zsh has the same functionality as fish, without the switching around, I’ll use that. Not to mention fish causes flatpak to not add Flatpaks to the app menu until restart. Environment variable messes. If I have to install a bunch of other stuff to make fish work, vs make zsh work more nicely, I’ll pick the 2nd one.

    • @boyi@lemmy.sdf.org
      link
      fedilink
      1
      edit-2
      2 years ago

      meaning most shell scripts won’t work

      What do you even mean? I run my bash script on Fish shell. No problem. Just need indicate the shebang at the top of the shell script.

      unless you want to run zsh/bash commands in cli mode - that’s a different story.

    • raver
      link
      fedilink
      02 years ago

      I like oh-my-zsh what are the downsides of using it?

  • Gamma
    link
    fedilink
    English
    42 years ago

    I learned Fish by helping someone else in a chat. There’s a lot of cool things, and I think it’s an excellent shell. Fish is an excellent choice for a shell.

    Zsh is a much more featureful language (with globbing/subscript/PE flags, native floating point arithmetic, the whole man zshmodules), which doesn’t necessarily make it a better shell. But I like those features, and I find it to be a natural choice to write more complex programs which normally would be a code smell for Bash.

    The plugin ecosystem for is much larger than Fish’s as well.