1. 86

  2. 56

    Most of these tools do not feel very unixy (as in “meant to be part of a pipeline”) to me, although they are all cool CLI apps with good ergonomics and in line with modern “terminal aesthetics” (is that a term?).

    To me the real modern unix tools are Joey’s moreutils tools:

    • chronic: runs a command quietly unless it fails
    • combine: combine the lines in two files using boolean operations
    • errno: look up errno names and descriptions
    • ifdata: get network interface info without parsing ifconfig output
    • ifne: run a program if the standard input is not empty
    • isutf8: check if a file or standard input is utf-8
    • lckdo: execute a program with a lock held
    • mispipe: pipe two commands, returning the exit status of the first
    • parallel: run multiple jobs at once
    • pee: tee standard input to pipes
    • sponge: soak up standard input and write to a file
    • ts: timestamp standard input
    • vidir: edit a directory in your text editor
    • vipe: insert a text editor into a pipe
    • zrun: automatically uncompress arguments to command
    1. 21

      Most of them are made to piped, they just use fancy formatting when they’re output to a terminal.

      1. 6

        You are right: moreutils’s tools are the real modern UNIX tools, in my opinion as well.

        In the same category, I also think it is worth to mention @johnaj’s xutil, which I was in awe with the code (as weel as functionality) of ep.

        1. 5

          moreutils is a must-have for sponge alone. I need to remember ts, vipe, and pee more often.

          1. 3

            sponge is such a beautiful util.

          2. 15

            Big shout out to gron for making JSON grep-able, e.g.

            % gron https://api.ols.wtf/whois | grep Latest.Toot
            json.Latest.Toot = "Just got shat on by a seagull; they _do_ say life begins at 30";

            Can be used to read a file, curl an endpoint, or in a pipeline

            1. 0

              oooh, I have never seen gron before, it looks really nice!

            2. 8

              Of these, exa and especially fzf have done a lot for the ergonomics of my setup.

              A handful more:

              • ncdu - a nice interactive disk usage viewer
              • VisiData - does something useful with a ton of different tabular / data formats. Really nice for quickly exploring a CSV or an sqlite database.
              • https://github.com/timbray/topfew - an effort at replacing the classic sort | uniq -c | sort -rn | head pattern that I’ve been meaning to try
              1. 5

                Visidata is amazing. The author told me it was approaching the flexibility of emacs, I was skeptical at first, but it really is. You gotta try it.

                1. 5

                  I’ve described Visidata as “vim for tabular data”.

                2. 3

                  What do you get out of exa that you don’t get out of ls? I tried using it once but it was just so colorful it was overwhelming.

                  1. 1

                    Mostly I suppose I’m a sucker for the colors, but the builtin git status is quite nice.

                3. 3

                  I really want a button to fast-foward to the time when a) authors mostly slowed down writing those b) users figured out which ones are the most useful and c) they come by default with modern unixes. I’m fomoing real hard for not having energy to invest in acquainting myself with the new tools knowing that three quarters of them are going to be extinct in 5 years.

                  1. 5

                    I can relate to this, but if nobody’s writing new stuff, the platform is defunct. The best trick I’ve found for dealing with the FOMO here is to take the long view, and mostly ignore stuff until it filters into the set of long-term tools, as defined by something like “can I get a decent version of this in a stable Debian”, or passes whatever else your personal threshold is for ease of access. “It’s already installed on my OS by default” is just an extreme version of this filter with a 15 to 50 year delay on it.

                    1. 2

                      oh I totally meant “available in the repos” when I said “come by default”!

                      1. 1

                        Ah, yeah - mostly the same thing, at least if one is lucky. :)

                  2. 1

                    I can never remember, does rsync use -P and scp use -p, or is it the other around? Looking forward to asking tldr, when they make this available with apt. I hope these tools play nice in an emacs shell buffer.