foss

    • Lupec@lemm.ee
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      I just learned about nushell a few days ago and it blew me away. I’ve always wanted a shell that made manipulating data easier, and with my programming background the functional style just clicked instantly. Been daily driving it for a couple weeks, definitely recommend folks give it a go.

      • starman@programming.dev
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        1 year ago

        I discovered nushell a week ago and it’s my primary shell now too. I miss some completions tho

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

          Yeah, same. For now I just drop into old reliable zsh when I need to l but I love nu so much I might go ahead and look into coming up with the stuff I miss myself.

      • fartsparkles@sh.itjust.works
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        It’s incredible, isn’t it? I’m already working on plugins for a variety of tasks so I can fire things off for malware analysis, push tables to data stores, and more. It’s such an obvious evolution of POSIX, I’m surprised it’s not already a standard across all shells.

        • Lupec@lemm.ee
          link
          fedilink
          arrow-up
          5
          ·
          1 year ago

          Yup, it legit changed how I think about interacting with a shell. I’ve always been kinda terrible at actually learning stuff like awk, sed and company on the long term without needing half a dozen Google searches before they mostly do what I want so actually being able to perform complex operations on whatever input on the fly feels incredible!
          It helps so much with API development as well, I’ve been using it on a side project and having a built-in http client plus auto JSON parsing feels ergonomic in ways that just make me giddy lol.

    • theshatterstone54@feddit.uk
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      1 year ago

      Sometimes I do some one liners when in a shell, and neither of these are POSIX compliant. That’s why I just stick to my customised zsh that basically does the same as fish.

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

        You’re absolutely right. Fish isn’t really for scripting but is great for purely interactive use.

        Nushell however offers a totally different approach to “scripting” and I can achieve far more in a nushell one-liner than I ever could in a POSIX shell as it’s far more comparable to Python Pandas than a shell.

        For instance I can plot a line chart of file modifications over time directly in the shell with a single line of nushell. It’s mind blowing.

        • nickwitha_k (he/him)@lemmy.sdf.org
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          That’s great. I’m glad you like it and it sounds pretty awesome. It adds more variety to the command line, which is a beautiful thing. However, I do too much with remote systems that I don’t “own”, however, so, POSIX, for me, is a hard requirement - adding another domain specific language that I can only sometimes use is not worth the cognitive load for me.

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

            That’s totally understandable. And I’ll admit, I’m still writing a fair few #!/bin/sh headed scripts as I to work on too POSIX systems. I think we’re a long long way off of the POSIX standard being superseded by something else.

  • jsdz@lemmy.ml
    link
    fedilink
    arrow-up
    26
    ·
    1 year ago

    “bat” seemed interesting, until I remembered that I’d just do a “git diff” if I wanted to see a diff. The rest do not strike me as substantially better than what they’re trying to replace. Enjoy them all as you will, but I would recommend refraining from describing them as “modern unix” in the presence of any old-timers.

    • jellyfish@sh.itjust.works
      link
      fedilink
      arrow-up
      21
      ·
      edit-2
      1 year ago

      Quite a few are just better, and others have the chance to get better because they’re actively accepting new features contributions.

      One I personally use:

      • delta Provides a better diff for code than git’s diff tool (even after trying all of git’s diff algorithms)
      • ripgrep So much faster than grep. Also had great include/exclude file filtering, easier to use than grep’s
      • jq Easy to exact json info. I tend to use rq too for yaml
      • instead of mcfly I use atuin, which is another alternative bash history. I really didn’t think I’d like it, but it’s been a big productivity boon
      • curlie/httpie A really nice alternative to something like postman when debugging HTTP connections. I use httpie rn but might switch because I’m so much more familiar with curl’s flags, but like the formatted output. There’s a few others I use that aren’t on the list too.

      It’s totally fine to not want to change what’s working for you, but if you do that too long you could miss out on something that just works better in your workflow. Give em a go and complain after you switch back.

      • kungen@feddit.nu
        link
        fedilink
        arrow-up
        8
        arrow-down
        1
        ·
        1 year ago

        I love jq, but the rest doesn’t appeal too much to me – I’ve been in the game for so long, so I already memorize most useful flows in the normal corelibs. And because I won’t always have the alternative to install different stuff, I try to not depend on lots of non-standard software. But I’m glad you like it, FOSS is awesome.

        • jellyfish@sh.itjust.works
          link
          fedilink
          arrow-up
          5
          ·
          1 year ago

          This used to be exactly what I said too, I still run bash as my terminal so when I remote it works the same way. I’m the girl everyone asks when they need a one liner, I read through the sed/awk man pages for fun, and I can skim a script and tell if it’s posix compliant. But I finally realized I already know that stuff. When I’m developing locally I should be as productive as possible. When I’m running stuff remotely I can worry about whether the environment is gnu, bsd, or busybox.

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

        Well, I did overlook jq in there. Not the first time I’ve forgotten that it exists.

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

      I use bat as a drop in replacement for cat (overriding cat in my .zshrc) by using --style=plain --paging=never on the bat command. Basically looks and works the same as cat, except with syntax highlighting.

    • Pantherina@feddit.de
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 year ago

      Bat also adds lots of stuff to the output. Is there a clean print functionality without the extra numbers?

      Edit: but with the parameters its great!

      • lemmesay@discuss.tchncs.de
        link
        fedilink
        arrow-up
        15
        ·
        1 year ago

        not actually. I also use many programs that are MIT or BSD licensed.

        it’s just that replacing working GPL’d programs with MIT ones might be more appealing to corporations than someone like me who cares as much about ideology as the programmes themselves.

        I don’t wish to see services being sucked for their value by corporates who give little to nothing in return. history is replete with such instances.

        • Linus_Torvalds@lemmy.world
          link
          fedilink
          arrow-up
          4
          ·
          1 year ago

          I do understand your scepticism towards companies; the reason for my question was that I got the impression from your first comment that you don’t like/install MIT code and was just confused as to why someone might dislike that.

    • Rob Bos@lemmy.ca
      link
      fedilink
      arrow-up
      11
      ·
      1 year ago

      It would be cool if the GNU project sponsored a new updated ‘standard’ set of tools though.

      • dsemy@lemm.ee
        link
        fedilink
        English
        arrow-up
        11
        arrow-down
        1
        ·
        1 year ago

        Why would they? The “old” tools work very well, are well known and are likely used in millions of scripts.

        The new tools will have more bugs, unfamiliar options and unexpected behavior (due to them being new), and the improvements current “modern” alternatives bring to the table are often very minor.

        • Rob Bos@lemmy.ca
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          I’d expect they’d ‘adopt’ the tools and redistribute them under the GPL, if they did.

    • Schmeckinger@feddit.de
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      1 year ago

      Probably because that’s basically the default license rust projects use and a lot of this stuff is made in rust.

  • simonced@lemmy.one
    link
    fedilink
    English
    arrow-up
    14
    ·
    1 year ago

    Great list, but a couple could be added:

    • btop (process/resouces monitor, highly customizable)
    • lnav (log navigator, grouping folder of files in one display, search/filter etc…)
    • xcjs@programming.dev
      link
      fedilink
      arrow-up
      12
      ·
      1 year ago

      Rust specializes in making parallel processing secure and approachable, so it’s going get used in problems where parallel processing and efficiency matter.

      Rust is also now allowed to be used in the Linux kernel for the same reasons, which is exciting!

  • bundes_sheep@lemmy.one
    link
    fedilink
    arrow-up
    11
    ·
    1 year ago

    Are these built to handle pipes? If I bat a file and redirect it to a file, does it work as expected or does it add in the escape sequences for the colors, for example?

    • Phi@feddit.de
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      1 year ago

      bat foo | bar behaves like cat foo | bar same with > and such.

  • george@lemmy.org.il
    link
    fedilink
    arrow-up
    8
    ·
    1 year ago

    Oh broot is really cool. Better than exa --tree, because it has that sweet “xxx hidden” thing. This command makes it pretty close to tree, as it prints it out rather than present you with an interactive screen, which I’m not interested at:

    broot --sort-by-type-dirs-first --cmd :print_tree
    
  • dorumon@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    These programs are actually really cool and I un-ironically want to use them.