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.

  • darklamer@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    1
    ·
    11 months 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.

  • nickwitha_k (he/him)@lemmy.sdf.org
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    11 months 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.

  • no_priority@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    11 months 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
      arrow-up
      1
      ·
      11 months 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.

  • zero@lemm.ee
    link
    fedilink
    arrow-up
    0
    ·
    11 months 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?

      • Andy@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        11 months 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.

      • curioushom@lemmy.one
        link
        fedilink
        arrow-up
        1
        ·
        11 months ago

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

  • Max-P@lemmy.max-p.me
    link
    fedilink
    arrow-up
    0
    arrow-down
    1
    ·
    11 months ago

    I use a mix of fish and nu depending on what I’m doing. NuShell is great but still pretty buggy, so I use fish as my default and switch to it when I want to use its features.

    I still write most of my stuff in bash however since servers I work with typically only have bash, and so are potential coworkers.

    But locally I see no point restricting myself to a POSIX compatible shell, especially for interactive shells. The easier and faster it is to use and customize the better. Being able to parse and use JSON and CSV and other things easily and natively right in the shell is a major quality of life improvement!

    • zitronen@feddit.de
      link
      fedilink
      English
      arrow-up
      0
      ·
      11 months ago

      Why not use Perl or python for scripting tasks? Bash script is terrible imo.

      • Max-P@lemmy.max-p.me
        link
        fedilink
        arrow-up
        1
        ·
        11 months ago

        I mean, I guess technically Perl could do but it wont earn you any favors from your coworkers.

        I do use Python for higher level stuff but I don’t see a point to go Python when you’re just gonna call 20 subprocess anyway to do like apt update apt dist-upgrade apt install wget this untar this rsync this. Especially when you can’t even assume you’re going to have Python to provision the box.

        • zitronen@feddit.de
          link
          fedilink
          English
          arrow-up
          0
          arrow-down
          1
          ·
          11 months ago

          That’s why I included Perl, it is always there. Just don’t code as if you were in the nineties and Perl is a perfectly legitimate language, even more so for shell tasks. Bad and good doesn’t depend so much on the language but the coder.

  • Revanee@lemmy.one
    link
    fedilink
    arrow-up
    0
    arrow-down
    1
    ·
    11 months 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 :)