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
    arrow-up
    14
    ·
    3 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
      link
      fedilink
      arrow-up
      5
      ·
      3 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.

  • cybervoid@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    ·
    3 years ago

    I moved to the fish shell a while ago and I love it, everything I need works OOB. I don’t understand people complaining about the different sintax for scripts, this is a non issue, just use #!/bin/bash at the start of your script and it will use bash, or just execute directly with “bash script.sh”.

  • GnuLinuxDude@lemmy.ml
    link
    fedilink
    arrow-up
    9
    ·
    3 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.

  • dieelt@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    3 years ago

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

  • ozymandias117@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    3 years ago

    If you’re looking for a nicer shell for personal use, fish is pretty nice

    If you want to run arbitrary scripts and deal with setup scripts from coworkers etc, you’ll want to fall back to zsh/bash regularly, though

    If you’re fine with understanding when your shell is the problem, fish is nice for interactive use

  • sf1tzp@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    3 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.

  • featherfurl@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    3 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.

  • donio@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    3 years ago

    All of those are good choices with different trade-offs. I am a long time zsh user but I’d say stick with bash until you feel strongly enough about your preferences to evaluate the other options for yourself.

  • Gamma@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 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.

  • filister@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    3 years ago

    Depending on your use case. I personally use zsh and oh-my-zsh but you can always customize bash to be more like zsh, have auto completion, etc.

  • throwawayish@lemmy.ml
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    3 years ago

    So, initially I stuck to bash and tried to get improved functionality through ble.sh etc. However, for reasons unknown to me, it always seemed to be a buggy mess that was prone to break. Eventually I switched after breaking one last time, where I only had installed ble.sh on a fresh/stock bash; which was the primary contributor that made bash bearable. So if I couldn’t use ble.sh, I had no reason to stick to it.

    When faced with the choice of where to go next, I quickly dismissed fish for not being POSIX-compliant. Furthermore, as bash is standard on Linux, so too is zsh standard on macOS. And that enables it to have legs beyond fish. However I also kept fish in mind as somewhat of a last resort if all else failed.

    So I began venturing into zsh and was obviously overwhelmed by the myriad of plugins and plugin-managers. People generally go out and somehow stick to ohmyzsh, however it was clearly poorly managed and couldn’t quite deal with the feature-creep in an elegant way.

    Many plugin-managers have come out over the years as alternatives that promised to resolve those issues. However, while some of them succeeded initially, they weren’t able to keep that up throughout their lifespan.

    When I almost lost hope and had started to gravitate towards learning how I should manage my plugins on my own without any plugin-managers I stumbled upon ZSH Quickstart Kit. Which is a project that’s clearly well-maintained and offered must-have functionality like automatically updating the the plugin-manager, plugins and more while still trying to maintain a high standard of reliability, performance, customization and minimalism. So obviously I had been sold on it and the rest has been history.

    Ultimately it’s for you to decide whichever one of the two suits you best. But if you gave zsh a try and wasn’t quite sold on ohmyzsh or any of the other plugin-managers out there, then perhaps consider ZSH Quickstart Kit.

  • tun@lemmy.world
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    3 years ago

    I tried fish and liked it.

    But compatibility to bash is not great.

    So I changed to zsh with zsh quick start kit (zgen and later zgenom). Zsh has more more community, frameworks and plugins.

    Now I roll my own zsh config using zinit with turbo.

  • shotgun_crab@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 years ago

    Both are good (and Bash too). Try them all and choose the best one depending on the context. For example, on my main PC I use fish with a few plugins (and fisher as the manager), but I’d never use it on a server due to it not being POSIX compliant.