• Fisch@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      31
      ·
      4 hours ago

      Currently using zsh but I installed fish yesterday to try it out because I’m thinking of switching. All the zsh plugins I have are basically just replicating what fish has by default anyway and fish might do it better.

    • flandish@lemmy.world
      link
      fedilink
      arrow-up
      10
      ·
      4 hours ago

      what’s fish got? I’m liking zsh here but am always open to a distraction instead of getting work done. :)

      • null@piefed.nullspace.lol
        link
        fedilink
        English
        arrow-up
        15
        ·
        4 hours ago

        Lovely OOTB defaults. I basically change nothing except the theme.

        Autocomplete, git context, etc. The QOL stuff you’d expect.

          • OhNoMoreLemmy@lemmy.ml
            link
            fedilink
            arrow-up
            17
            ·
            3 hours ago

            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.

          • Pika@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            2 hours ago

            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

          • Laser@feddit.org
            link
            fedilink
            arrow-up
            7
            arrow-down
            2
            ·
            4 hours ago

            Be aware that fish isn’t a POSIX-compatible shell enough, so you have to adjust syntax.

            • rtxn@lemmy.worldM
              link
              fedilink
              arrow-up
              11
              ·
              edit-2
              3 hours ago

              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 sh script”. Bash is compliant. Zsh is partially compliant and needs to set an option to emulate sh. Fish uses a different syntax and is not compliant; if that is a problem, don’t execute sh scripts 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 $SHELL instead. That is no longer the case as virtually every Unix-like system’s program loader supports #!.

              • Black616Angel@discuss.tchncs.de
                link
                fedilink
                arrow-up
                1
                ·
                2 hours ago

                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.

              • Laser@feddit.org
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                45 minutes ago

                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.

          • null@piefed.nullspace.lol
            link
            fedilink
            English
            arrow-up
            2
            ·
            4 hours ago

            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, chsh and I’m all set.

    • prole@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      3
      ·
      3 hours ago

      Fish 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.

    • three@lemmy.zip
      link
      fedilink
      arrow-up
      51
      arrow-down
      2
      ·
      3 hours ago

      Classic linux tribalism. Use what you like and don’t get involved with these confrontational nerds.

    • grue@lemmy.world
      link
      fedilink
      arrow-up
      15
      arrow-down
      4
      ·
      3 hours ago

      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!

      • FishFace@piefed.social
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 hours ago

        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.

        • grue@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          1 hour ago

          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.

          • FishFace@piefed.social
            link
            fedilink
            English
            arrow-up
            1
            ·
            38 minutes ago

            Cool.

            And what, exactly, is the path from “pushing back on zsh” to “embedded device manufacturers can no longer lock down their devices?”

            • Shrubbery@piefed.social
              link
              fedilink
              English
              arrow-up
              1
              ·
              12 minutes ago

              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.

  • IrateAnteater@sh.itjust.works
    link
    fedilink
    arrow-up
    17
    ·
    4 hours ago

    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.

    • grue@lemmy.world
      link
      fedilink
      arrow-up
      20
      arrow-down
      5
      ·
      3 hours ago

      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.

          • Nate Cox@programming.dev
            link
            fedilink
            English
            arrow-up
            5
            arrow-down
            1
            ·
            2 hours ago

            It’s difficult to listen through him being a ridiculous asshole about everything.

            Also his deranged defense of one of Epstein’s sex trafficking clients after Virginia Giuffre named him.

            • grue@lemmy.world
              link
              fedilink
              arrow-up
              3
              arrow-down
              1
              ·
              edit-2
              1 hour ago

              Minsky wasn’t a “sex trafficking client” and RMS’s “deranged defense” of him wasn’t much more than pointing that fact out.

              You’ve fallen for the anti-FSF smear campaign.

              • Nate Cox@programming.dev
                link
                fedilink
                English
                arrow-up
                1
                ·
                20 minutes ago

                He was directly accused by one of Epstein’s victims, and RMS was like “well maybe he thought that 17 year old on rich pedo island was really into him”.

                Fuck off with that.

    • Pika@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 hours ago

      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 nerd 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.