• YTG123@sopuli.xyz
    link
    fedilink
    arrow-up
    6
    ·
    2 days ago

    I’ve never understood the need for fish. The shell experience is basically the same as zsh, and although it’s much more pleasant to script for, you miss out on compatibility with POSIX-compliant snippets, and besides, if you’re writing long and complicated scripts that need anything more than a handful of scalar variables you should probably be using Python (or Perl if you’re an old-school masochist).

          • Hawke@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            2 days ago

            I am the Linux folks.

            FreeIPA is fine, and I don’t care much about the GPO aspect of Active Directory. But the standardization-by-ubiquity that made it easy for everyone to just follow along and make it so it Just Works has been a godsend.

            Yes Microsoft built on the shoulders of giants but trying to make things work with OpenLDAP or the other also-ran directory services was a nightmare.

      • captain_oni@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        7
        ·
        4 days ago

        I remember powershell being extremely slow to start on my laptop and sometimes slow to catch up to my typing (and I’m a slooow typist).

        tbf it was the win 8.1 days, dunno if it’s better now.

        Really liked using it tho. At least it used my actual keyboard layout, unlike cmd.

        • ITGuyLevi@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          2 days ago

          It’s much better now, I put off moving from cmd until somewhere around 2015 when I was using ‘invoke-command’ constantly, over the last decade or so I’ve moved to powershell proper cmdlets… Its actually not that bad.

    • Overspark@piefed.social
      link
      fedilink
      English
      arrow-up
      23
      arrow-down
      1
      ·
      4 days ago

      Then give nushell a go. It’s basically a modern implementation of some of the better ideas Powershell had.

        • flying_sheep@lemmy.ml
          link
          fedilink
          arrow-up
          10
          ·
          edit-2
          4 days ago
          1. Types.

            You explode lists manually into items when calling commands on a variable list of arguments instead of “quoting variables” to prevent them from exploding.

            Who came up with the bullshit idea that exploding strings into words is such a common use case that this footgun is preferable to have an “explode lists” syntax?

          2. Errors. No more set -euo pipefail; shopt -s lastpipe to beat some semblance of sanity into bash

          • kn33@lemmy.world
            link
            fedilink
            English
            arrow-up
            4
            ·
            3 days ago

            One of the things I really like about PowerShell is the “verb-noun” convention. It makes things a lot easier when learning by examples. Wtf is a sed or an awk? But New-Item -Type Directory oh yeah that makes sense.

            • JackbyDev@programming.dev
              link
              fedilink
              English
              arrow-up
              2
              ·
              2 days ago

              To be fair, the comparison there is mkdir which means make directory, but I don’t doubt there are better examples.

      • Hawke@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        3 days ago

        Honestly it’s pretty good, but it’s very verbose in its commands and output.

        The default settings are irritating but it takes only minor tweaks to make it tolerable (mainly fixing the tab completion)

        It’s nicely consistent with its object handling.

        As a windows shell it is head and shoulders above cmd.exe. I’ve thought about using it on Linux but there I like fish better.

    • whoisearth@lemmy.ca
      link
      fedilink
      arrow-up
      2
      ·
      3 days ago

      Unironically though. It takes time because it’s structurally different than python but it’s fun when you figure it out

  • heliotrope@retrofed.com
    link
    fedilink
    English
    arrow-up
    101
    ·
    edit-2
    3 days ago

    Thompson shell (predates Bourne)


    scsh (Scheme shell) and closh (Clojure shell)


    sash (stand-alone shell)


    gash (Guile shell)


    ash (Almquist shell)


    dash (Debian Almquist shell)


    eshell (Emacs shell)


    Shells I couldn’t think of images for:

    • bosh (from SchilyTools)
    • tclsh (Tcl shell)
    • ion (from Redox OS)
  • Dagnet@lemmy.world
    link
    fedilink
    English
    arrow-up
    71
    ·
    4 days ago

    imo fish is the best out of the box for me, but I just use bash cause its everywhere

    • merc@sh.itjust.works
      link
      fedilink
      arrow-up
      21
      ·
      4 days ago

      Yeah, that’s where this meme fails. BASH is the default and has been for decades. Most people are not Gigachad.

      I’ll accept FISH as being for babies, Zsh as being for Emo types or extra nerdy people. SH being for white beards makes sense.

      BASH is:

      IT Guy

      • elephantium@lemmy.world
        link
        fedilink
        English
        arrow-up
        5
        ·
        4 days ago

        I used a macbook for work for a while with zsh in the terminal. IDK whether I qualify as emo, but I am nerdy. I only think of myself as regular nerdy, though, not extra nerdy.

        • merc@sh.itjust.works
          link
          fedilink
          arrow-up
          1
          ·
          4 days ago

          Was zsh the default at the time? Or did you switch to zsh? AFAIK the new default is BASH, but it was zsh for a while.

          IMO, your level of nerdiness is much higher if you change the default shell.

          • elephantium@lemmy.world
            link
            fedilink
            English
            arrow-up
            4
            ·
            3 days ago

            I had to go back and check. Apple says that the default changed from bash to zsh in Catalina (10.15). I seem to recall a message coming up on the machine about zsh. I definitely remember poking around at config files and looking at iTerm2 vs. the default terminal app at the time.

            Does that make me extra nerdy? IDK. I can tell you that I was more focused on “What’s going to be comfortable to work with” vs. nerding out on shell differences.

            I do miss homebrew now that I’m working on a Windows laptop.

              • elephantium@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                ·
                2 days ago

                Ooh, worth a try. I’m not sure whether I have the necessary permissions, though. My work laptop is pretty locked down.

                • w33n1s@lemmy.world
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  2 days ago

                  Good luck! No huge loss if it doesn’t work though, at least in my opinion. I like it for finding and installing software, and bulk upgrading everything at once, and the ability to do it all remotely with relative ease. But it’s not as powerful in terms of dependency management and whatnot, coming from POSIX package managers

            • merc@sh.itjust.works
              link
              fedilink
              arrow-up
              1
              ·
              3 days ago

              Maybe I remember wrong, but my memory is that at one point MacOS had zsh as the default and then switched to BASH, and then maybe back to zsh again. But, since Internet search is broken these days, I can’t find anything about that.

              • elephantium@lemmy.world
                link
                fedilink
                English
                arrow-up
                2
                ·
                3 days ago

                All I can really tell you is that I remember seeing a message about the new default being zsh, and that was back in 2020 or maybe 2021. So it def switched from something else to zsh, but whether it was bash -> zsh or zsh -> bash -> zsh…shrug

    • FedX@quokk.au
      link
      fedilink
      English
      arrow-up
      15
      ·
      4 days ago

      Yeah, I agree. It’s quirky, its syntax is annoying, and a good ZSH setup is probably better… but I don’t have the time to do an actual ZSH setup.

      • tyler@programming.dev
        link
        fedilink
        arrow-up
        17
        ·
        4 days ago

        A good zsh setup is not better. That’s why I switched off of zsh after years, because it was slower, more bloated, and less intuitive than fish. And bash is ten times worse than zsh.

        • FedX@quokk.au
          link
          fedilink
          English
          arrow-up
          7
          arrow-down
          1
          ·
          4 days ago

          Huh, the more you know. My only experience with ZSH is when I briefly used Manjaro, and it seemed fine at the time… but now that I say that I think about it, “Manjaro defaulting to it,” might have been a bit of a red flag…

          • tyler@programming.dev
            link
            fedilink
            arrow-up
            14
            ·
            4 days ago

            Yeah to get the same setup in zsh you have to install a plugin manager and then quite a number of plugins. Most people default to omz (oh my zsh) but that’s the slowest way. If you pick through all the managers you can get a decent one, but even without a manager the overhead of loading plugins is just slower than building it in like fish does. Fish just is better. And I don’t think I’ve ever once needed posix syntax. If I need to run a script and it doesn’t have a shebang at the start then I just run > bash and start the script there.

              • tyler@programming.dev
                link
                fedilink
                arrow-up
                2
                ·
                4 days ago

                lol yeah. Like I thought I needed all this crazy stuff tacked on when in reality I just wanted sane defaults. The only thing I add to fish now is the spaceship prompt.

    • Skullgrid@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      4 days ago

      I’m not learning shit that can’t run on everything.

      Source : I got a fistfull of salesforce certs in order to toe the line in my previous job, and I am currently looking for work.

    • mmmm@sopuli.xyz
      link
      fedilink
      arrow-up
      2
      ·
      4 days ago

      I use bash because gentoo’s portage has a hard dependency on it so in my mind it doesn’t make much sense to install and keep yet another shell just because colors and autocompletion. If they ever get rid of the bashisms in portage I’d surely consider moving to fish, but getting rid of the bashisms in portage means that portage could be ported to the BSDs one more time and we could have Gentoo/BSD again

  • inzen@lemmy.world
    link
    fedilink
    arrow-up
    19
    ·
    4 days ago

    I use fish because it was the default in cachyos and decided to give it a fair shake. I like the built in syntax highlighting and fancy autocomplete but I miss bash scripting and built in commands that replace standard commands can be weird sometimes. I have not tried scripting fish, to lazy to learn yet another scripting language, especially if bash is the (almost) de-facto standard.

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

      I’ve been using it for awhile now for the same reason, and think I’m going to switch back to sh as it has too many suggestions which I read and it interrupts my thoughts and slows me down.

    • ferret@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      16
      arrow-down
      1
      ·
      4 days ago

      You can always just continue using bash scripting, with a bash shebang in your scripts, if you miss it

      • Gumus@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        6
        ·
        4 days ago

        That’s what I do. Fish is great as interactive shell, scripts don’t benefit that much from it and I can use what’s familiar.

    • prole@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      I like having fish as an option, but don’t think I’d ever use it as my default.

      If I have a long command that uses long filenames, or I don’t remember the syntax of something, I can just type “fish” and it’ll open up a fish shell.

  • __Lost__@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    30
    arrow-down
    1
    ·
    4 days ago

    Sometimes I think I’m the only linux user who doesn’t care about their terminal emulator. I use whatever came installed. I assume it’s bash? I don’t know, but anything i want to do is supported by all of them.

    • four@lemmy.zip
      link
      fedilink
      English
      arrow-up
      62
      ·
      4 days ago

      Akchually, those are shells, not terminal emulators.

      Which I guess confirms that you really don’t care. Whatever works for you, works for you :)

      • sem@piefed.blahaj.zone
        link
        fedilink
        English
        arrow-up
        7
        ·
        4 days ago

        What’s the difference.

        How does the virtual terminal factor in.

        Why are some shells not login shells

        What is a terminal these days and why does it mess up keypresses

        • hamFoilHat@lemmy.world
          link
          fedilink
          arrow-up
          22
          ·
          4 days ago

          The terminal emulator is the window displaying the text. That used to be a physical screen called a terminal. The program that decides what text to show is the shell.

        • poolcritter@pawb.social
          link
          fedilink
          arrow-up
          11
          ·
          4 days ago

          A terminal emulator (such as xterm, tmux, or emacs) is responsible for displaying a pseudoterminal in a different context (such as an x server, another terminal, or an emacs buffer respectively). Terminals are divided into three types: virtual terminals (on boot or as presented by [C-]A-F<N>), ‘true’ terminals (exposed on serial ports), and pseudoterminals (controlled by other programs). Essentially, you have a virtual terminal running X running Xterm which controls a pseudoterminal with tmux attached controlling another pseudoterminal.

          Login shells are a special flag set when launching shells, sometimes. They typically read different settings (e.g. Bash reads ~/.bash_profile instead of ~/.bashrc). Most shells will launch as a login shell if their command name (argv[0]) begins with a hyphen; Bash also allows explicit bash -l to run a login shell.

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

      Yesh, I’m a not spending time configuring (and fixing) the shell.

      If I want something hairy I’ll use Python (or even C/C++).

  • Omni rizzler@anarchist.nexus
    link
    fedilink
    English
    arrow-up
    29
    ·
    4 days ago

    Fish is the best . Do not listen what other says just because it’s easy to use does not make it a bad tool Also helix better then neovim and emacs
    And zellij better then tmux
    Micro better then nano Jj better then git A LOT

      • pemptago@lemmy.ml
        link
        fedilink
        English
        arrow-up
        2
        ·
        4 days ago

        That’s the only one I could confirm, but probably because my config game is weak.

    • NewOldGuard@lemmy.ml
      link
      fedilink
      English
      arrow-up
      8
      arrow-down
      2
      ·
      4 days ago

      JJ lacks too many features compared to git, it’s easier to use but just less powerful. I think Helix and Zellij are good for that “batteries included” approach, but neovim and tmux are more powerful and allow much more customization IMO so those tools don’t displace them for me. I think shell choices are less impactful, if you’re writing scripts 90% of the time it’ll have to be bash anyway, use what you like for the interactive shell though.