I’ve done something similiar to this over the years for organization purposes and not having to change much between shells except add a path. You can also add cases that check your shell and do something slightly different if needed.

  • 柊 つかさ@lemmy.world
    link
    fedilink
    arrow-up
    25
    arrow-down
    1
    ·
    1 year ago

    I like fish abbreviations. They are like aliases but expand when you press space or enter. That way you can edit it, and also still see the full command so you are less likely to forget it when you don’t have your aliases. Of course I have some scripts as well.

    • Fisch@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      1 year ago

      I use ZSH with plugins but back when I switched away from bash, I also looked at fish. I didn’t use it back then because people say it doesn’t follow the POSIX standard but is that really an issue? It probably only extends it instead of taking things away, right?

      • 柊 つかさ@lemmy.world
        link
        fedilink
        arrow-up
        10
        arrow-down
        1
        ·
        1 year ago

        Unless you have a particular reason for sticking to POSIX, who cares? I’ll take the user experience improvement without worry.

        • Ferk@lemmy.ml
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          The thing is that, if you are not sticking to POSIX, you might as well use more widely available alternative scripting languages like perl or python, which are often included in most workspaces by default, so I’d say it’s more useful to get experienced in those than to get experienced in fish.

    • Asparagus0098@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      I actually use both in fish. I use aliases for some longer commands. For example I have la as an alias for eza -la --icons=auto --group-directories-first because I don’t really want to see it every time I run la. I use abbreviations for some shorter commands. For example systemctl abbreviated to sys and systemctl --user abbreviated to sysu.

    • markstos@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      And: Fish implements aliases as scripts! When you use alias —save, fish creates as script with a function in it.

    • lemmeBe@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      1 year ago

      Thanks for this info! Didn’t know about it! 😃

      I use zsh with aliases, and Atuin which I find very convenient.

      I’ll definitely try out fish abbr in combo with aliases. Logic in aliases is great.

  • QuizzaciousOtter@lemm.ee
    link
    fedilink
    arrow-up
    19
    ·
    1 year ago

    I have never heard of anyone using aliases for anything but trivial one-liners. I don’t think people consider them as an alternative to scripts so I don’t really get the point of half of this post.

    However, the part explaining the benefits of using scripts over aliases even for trivial one-liners is pretty neat.

    • Ricaz@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      I agree. My .zshrc is littered with functions. Most useful ones are my pack and extract I made ~10 years ago, they just recognize file extension and use the correct tool.

      • PseudoSpock@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        I even wrote a function to parse a json for some configuration details, and loop through it to dynamically create more named functions from that json profile. I use it at work for automating my cloud account logins with a single profile name from the command line. :)

    • Ferk@lemmy.ml
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      edit-2
      1 year ago

      It still limits where / how you use them.

      For example, it’s easier / more efficient to call a shell script from sway (or whichever other software that might be running without a bash login session behind) than to try and force it to load a whole shell login session that includes those functions (which might also slow down the startup of the program and make it need a bit more ram without much of a benefit).

      Scripts can reliably be run from everywhere (specially if placed somewhere in $PATH), functions require some preloading for every single new shell process and making sure the program invoking the shell (be it a terminal emulator or something else) is actually loading it. So as someone who likes to automate everything and often assigns hotkeys to particular commandline oneliners, scripts are much better… even a symlink might be more reliable than an alias.

  • GustavoM@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Honestly, I’d rather record command and flags instead of relying on aliases to do that for me.

    Unless if its something very “niche” (like automatically pulling the required third party software everytime the distro boots up on .bash_profile).