The singular habit I picked up way back in the day was to simply cope with what was available.
There's all sorts of utilities and such. Emacs was a grand example at the time as well. Lots of better mousetraps.
But when you bounce around to a lot of different machines, machines not necessarily in your control, "lowest common denominator" really starts to rear its ugly head.
That vast majority of my command line concoctions are burned into muscle memory.
Today, I think the base line install of modern *nixes are higher than they were back in the day, but the maxim still applies of working with what they have out of the box.
> The singular habit I picked up way back in the day was to simply cope with what was available.
Nothing wrong with that. There are other ends of the spectrum of "make the things I do often as easy as I can", too. Both work.
It reminds me of my father; when he got in a car that wasn't his, he would NOT CHANGE ANYTHING. You couldn't tell he was in it. Safety issues aside, there's an argument to be made to make it as comfortable for you as you can; seat, mirrors, environment, etc. to minimize any distractions.
I see this too in my (software development) communities; some people like to tailor their development experience to the n'th degree to extract as much personal enjoyment/optimization/etc. out of it as they can. Others like to use whatever they're given and be happy with that. Both work.
Myself, I type for a living so I like to use keyboards I like. I bring my own with me in my "go bag" for when I'm out so I don't have to use the (IMO!) crappy Apple Laptop KB's. I /can/ use it, I just choose not to. Other people either like them, or have learned they don't care enough. All good.
Counterpoint, deciding not to put up with old things that are a pain in the ass is part of unseating the existing momentum so we can finally move on to better things.
Knowing how to do things the annoying way doesn't mean that has to be the preferred way. Being open to retooling is part of staying relevant
What I would like to see in that case is a "next gen utils", a bundling that makes it likely to find a number of these tools together in future servers.
Really the "right" way to go about it would be to employ an existing package manager (there's enough already, we don't need another) and some magic glue on top that makes it easy.
For example, you have your configuration of packages, in the ephemeral cloud somewhere, and you do the really dangerous no good thing of piping through bash with some kind of uuid that's assigned to your account, something like (totally made up url)
curl packman.info/users/aed1242faed60a | bash
And it sniffs the architecture, version of binaries to install, which ones are there, and then puts it into an install directory configured by you.
This is like 97% existing things with a little glue and interface polish so you can easily bring in an environment.
There's certainly other ways but the idea remains the same
YES. That isn't a completely new shell. I keep trying the fishes and z-shells of the world and I keep coming back to "my own hacked up bash" because of muscle memory on random edge case things.
That's why I stuck with vi and sh back in the day: I knew they were on every machine I might telnet to (this was before ssh, sigh).
On machines I controlled, I mostly used ksh, but it wasn't available on all machines; I cannot remember if it was the SunOS boxes or the older HP-UX or the Apollos, but there were a few. (csh? Go away. No, just go.)
Nowadays, vim and bash are everywhere I need them to be, even if I have to kludge around some version differences.
My only real gripe about find is the awkwardness of pruning multiple hierarchies. After you've written
This is fine and all, but there are also subtle differences in standard CLI tools depending on the implementation. I'm used to GNU stdutils, and butt heads with the macOS and BusyBox implementations.
Yes, to get by with what is available is a useful trait. No matter how good these tools are, I will often arrive at a prompt where they are unavailable.
If you ever give ripgrep a go, stumble over something and are inclined to: please post a Discussion question[1]. "beginner" or "stupid" questions are welcome. If you can show me what you know works with grep, for example, and are curious about an equivalent rg command, that could be a good question. I might be able to give you some "fundamental" answers to it that let you reason about the tools more from first principles, but on your terms.
I aliased grep and find to their newer alternatives. Sure, the syntax will be off from time to time but due to muscle memory I couldn’t relearn the new tools otherwise.
I think about a month after I learned enough Vim to be dangerous RHEL (8, I think) started shipping nano as the default editor. Ah well, now I can scroll with the home row on my local box.
There's all sorts of utilities and such. Emacs was a grand example at the time as well. Lots of better mousetraps.
But when you bounce around to a lot of different machines, machines not necessarily in your control, "lowest common denominator" really starts to rear its ugly head.
That vast majority of my command line concoctions are burned into muscle memory.
Today, I think the base line install of modern *nixes are higher than they were back in the day, but the maxim still applies of working with what they have out of the box.