• grue@lemmy.world
      link
      fedilink
      arrow-up
      26
      ·
      11 days 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
        6
        ·
        11 days 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
          11
          ·
          11 days 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
            5
            ·
            11 days 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
              5
              ·
              11 days 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.

              • FishFace@piefed.social
                link
                fedilink
                English
                arrow-up
                2
                ·
                10 days ago

                I don’t understand. It’s already ok to “lock down” devices, from the point of view of most consumers and the courts, regardless of the software license. Phones make it hard for you to flash new firmware onto them. That is still true with android and the open source components in its stack.

                Using bsd licensed software in every day life cannot accelerate that because it has already happened, and I don’t see how it would be otherwise, because software licensing doesn’t protect against the kind of locking down you’re talking about.

            • namingthingsiseasy@programming.dev
              link
              fedilink
              arrow-up
              4
              ·
              10 days ago

              It’s called tivoization and started with a device called “Tivo” which was the first of its kind to attempt this procedure.

              There are probably lots of hardware devices in your house that use GPL software but prevent you from actually modifying it because the hardware will refuse to run modified copies. If a piece of software is licensed GPLv3, it would violate the license terms to do something like this.

  • IrateAnteater@sh.itjust.works
    link
    fedilink
    arrow-up
    23
    ·
    11 days 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
      29
      ·
      11 days 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.

    • Pika@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      10 days 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 need 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.

    • jollyrogue@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      10 days ago

      Zsh is but more for interactivity. The extended file globbing, extended auto completion, and loadable modules are the main reasons I like it. The features really shine when used with a configuration framework like ohmyzsh.

      Supposedly, Zsh has a more comprehensive shell scripting syntax, but that’s not a plus since I don’t want to write shell scripts.

  • yardratianSoma@lemmy.ca
    link
    fedilink
    arrow-up
    22
    ·
    10 days ago

    I have never really ever used bash and thought, "Man, I wish my shell was better . . . ". Using ctrl+r to recall past commands, using sudo !! to fix missing permissions and writing small bash scripts all work very well.

    That being said, if you use anything else, and you like it, I’m happy for you, but I do wonder, what leads people to other shells? What problems do they have with bash?

    • Ephera@lemmy.ml
      link
      fedilink
      English
      arrow-up
      11
      ·
      edit-2
      10 days ago

      To me, it genuinely makes a huge difference that I don’t have to manually press Ctrl+R for history search. Because 9 times out of 10, I accept a history suggestion from Fish where I did not think about whether it would be in my history.

      This includes really mundane commands, like cd some/deeply/nested/path/. You would not believe, how often I want to cd into the same directory.
      But I’ve also had it where I started typing a complicated docker run command and Fish suggests the exact command I want to write, because apparently I already ran that exact command months ago and simply forgot.

    • phaedrus@piefed.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      10 days ago

      I script everything in bash, but for everyday use fish just has some modern QoL things that make it easier to get around. For me, specifically, it’s the way you can recall commands by seeing a ghost version of your history, as you type. You can even scroll through a filtered history if you’re part-way through typing some long command that matches what you have typed.

      Another neat thing, it does it’s best to predict what I want to type and remembers common locations, showing them as ghost text as well.

    • crater2150@feddit.org
      link
      fedilink
      arrow-up
      2
      ·
      9 days ago

      I switched to zsh at a time where completion for commands parameters except file paths in bash wasn’t really a thing, you could add some with a script, but they didn’t work well. I’m sure the situation has improved by now, but someone told me recently, there are still no descriptions for the completions. I find it very helpful and it saves me opening a man page a lot of times. For example, typing grep -<Tab> gives me this: 8167

      And now I’m so used to many little features (mostly around the syntax) that wouldn’t be a reason to switch on their own, that I find bash cumbersome to use.

  • mlg@lemmy.world
    link
    fedilink
    English
    arrow-up
    19
    ·
    10 days ago

    Default zsh is just bash, you need to add all the fancy plugins to get it to do cool stuff

    fish is for people who don’t want to spend the time setting it all up and to just get a shell that has most of the QoL fetaures builtin.

      • daggermoon@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        10 days ago

        I tried switching to Nushell but certain things just wouldn’t work so I switched back to zsh. sha512sum wouldn’t work and there’s no native replacement.

        • crater2150@feddit.org
          link
          fedilink
          arrow-up
          3
          ·
          9 days ago

          Isn’t sha512sum a regular binary, that should not depend on the shell at all? What does nushell do that something like that can break o.O

          • daggermoon@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            9 days ago

            Probably. I think it had something to do with how it’s invoked in Nushell. I think it requires typing something different than what I’m used to. I searched it up and couldn’t find an answer and got pissed off and went back to Zsh. I’m not blaming Nushell, it’s just not for me. Nushell does have it’s own binaries for sha256 and md5, but I prefer sha512 even though it literally doesn’t matter for my use case.

        • floquant@lemmy.dbzer0.com
          link
          fedilink
          arrow-up
          9
          ·
          10 days ago

          No, they are executed according to the shebang on the first line, which is usually bash. If it is missing, it will default to the current shell.

          • Azzu@lemmy.dbzer0.com
            link
            fedilink
            arrow-up
            4
            ·
            edit-2
            9 days ago

            That’s true, but I definitely use fish as my default shell and when it runs a script without shebang it automatically runs it with bash. Thus I assume that’s the fish default to make your scripts work.

            • floquant@lemmy.dbzer0.com
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              9 days ago

              Trying to be more POSIX-compatible by further breaking POSIX spec is an ok choice to make in this case imo, but I think that’s a somewhat important detail to know :)

  • juipeltje@lemmy.world
    link
    fedilink
    arrow-up
    12
    ·
    11 days ago

    I never tried anything other than bash tbh. Not sure if i should. I never really looked into what i might be missing out on with a different shell. Bash just works so i never felt like messing around with it.

      • crater2150@feddit.org
        link
        fedilink
        arrow-up
        1
        ·
        9 days ago

        I thought the default interactive shell is still bash on Ubuntu, dash is only used for /bin/sh, isn’t it? At least bash is also installed by default, as there are so many scripts that wouldn’t run otherwise

      • juipeltje@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        10 days ago

        Hmm, i didn’t know ubuntu was using a different shell. I’ve used it a few times in a vm. Other than that i installed it on my laptop once like 15 years ago lol.

  • muusemuuse@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    9
    ·
    10 days ago

    I literally do not notice any difference. If the folders and such get the pretty colors and tab works, I could give a damn.

    • Lorem Ipsum dolor sit amet@lemmy.world
      link
      fedilink
      arrow-up
      17
      ·
      10 days ago

      I would really recommend you try fish.

      It has a lot of nice autocomplete features and handles functions much better than bash. It has a very sensible autoconfig so you can just install and try it.

      Zsh can be configured in quite a lot of ways. It’s default config is quite similar to bash.

      • ErenOnizuka@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        6
        ·
        10 days ago

        What does it autocomplete? Filenames? Bash can do that too, right? I just hit the tab key and it’s written there.

        And with functions you mean in scripts? How does it handle functions better?

        • Lorem Ipsum dolor sit amet@lemmy.world
          link
          fedilink
          arrow-up
          6
          ·
          10 days ago

          Autocompletions in fish also take history into account, which saves you a lot of typing in the long run.

          Fish shell script is much more sensibly constructed than bash so it’s just much easier to write a script in fish.

          • voodooattack@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            10 days ago

            Fish was amazing when I first discovered it, but I found it had too many problems for me to effectively use it. Having to adapt existing bash/zsh scripts was a major problem for me.

            So I went the other way around and managed to get all of the Fish features I wanted working under zsh using atuin, starship, and other misc. oh-my-zsh plugins to fill the gaps.

            Best part: I used a git-controlled home-manager setup to do it so I can activate my entire environment on a fresh machine/server in minutes after I clone it.

    • TheTimeKnife@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      10 days ago

      Features and default settings, but its really just about preference. They are all good at what they do.

      Also im only saying this because it confused me for so long, but shell and terminal are different parts of the same thing. Bash is your shell, its the backend that runs everything you type into your terminal. My computer for example uses my kitty terminal which communicates in bash. You can change both the shell and terminal. Zsh is another shell, so it would change the “shell language” you use to communicate with your terminal.

    • kartoffelsaft@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      10 days ago

      There can be a ton of reasons, albeit I personally also just stick with default (for me zsh). In typical linux user fashion I also must tell you that bash and zsh are shells, not terminals.

      The two main reasons you’d choose a particular shell is because you prefer it’s configurability or syntax. Zsh has a bunch of features that you can enable and you can configure it to behave basically however you want, like adding spelling correction or multiline editing, but it’s defaults absolutely suck unless your distro comes with a sensible config. Fish, which another guy here’s raved about, goes in basically the opposite direction and is really nice to use out of the box (I haven’t used it though). I hear it’s technically not a valid /bin/sh substitute like zsh or bash because of syntactic differences, but that’d be a whole other rabbit hole if true.

      One other reason can be performance concerns because bash is pretty slow when treated as a programming language, but I’d argue you shouldn’t organize your workflow so that bash is a performance bottleneck.

  • Treczoks@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    9 days ago

    Zsh? That’s a command shell I have not heard of for a very long time.

    Check the date on his computer, is it also set to something in the 1980s?

  • RoyaltyInTraining@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    10 days ago

    Fish was kinda cool when I tried it, but I don’t really care about the benefits that much. I love Zsh’s effortless customization with Oh My Zsh and the POSIX compatibility.