htop has been on my list of applications I must install immediately on every system for at least 14 years now. I am always a bit shocked when I am reminded about how young of a project it is. I think the only younger tool that I always install is jq.
There's a few I now prefer over their old counterparts: fd, ag, bat.
fd and ag (or rg) just do what I expect them to, I don't need to think about how to use them. Both find and grep's syntax trip me up, even after 20 years of using them.
The interface is nearly 1:1 with `ag` (and the older `ack`).
One notable difference is that ag enables `--smart-case` by default, so it treats an all-lowercase pattern as case-insensitive, while `rg` doesn't, you need an explicit `rg -i`.
(or set it in a config file, but I'd rather not learn defaults that won't work out-of-the-box on other machines).
For me the interface is the draw rather than speed. I use ag rather than rg, but doing `ag search-term path` is how I'd expect it to work. Plus, automatically ignoring .git and other metadata files out of the box is a time saver.
Comments
htop has been on my list of applications I must install immediately on every system for at least 14 years now. I am always a bit shocked when I am reminded about how young of a project it is. I think the only younger tool that I always install is jq.
There's a few I now prefer over their old counterparts: fd, ag, bat.
fd and ag (or rg) just do what I expect them to, I don't need to think about how to use them. Both find and grep's syntax trip me up, even after 20 years of using them.
What's bat do? (I'm on board with you on fd and rg)
bat is essentially a fancier version of cat. It's fully backward compatible but supports syntax highlighting, paging and has git integration.
It's written by the same developer as fd
https://github.com/sharkdp/bat
Bat is a cat replacement with syntax highlighting, formatting options; it works great with fd. What's rg?
ripgrep (the binary name is rg) is a faster grep written in Rust.
https://blog.burntsushi.net/ripgrep/ explains in detail _how_ it's so fast, and is a great reading on practical performance engineering.
The interface is nearly 1:1 with `ag` (and the older `ack`). One notable difference is that ag enables `--smart-case` by default, so it treats an all-lowercase pattern as case-insensitive, while `rg` doesn't, you need an explicit `rg -i`. (or set it in a config file, but I'd rather not learn defaults that won't work out-of-the-box on other machines).
Note that -i will always enable case insensitivity. The -S flag will enable the same kind of smart case behavior that ag has (and with fewer bugs).
For me the interface is the draw rather than speed. I use ag rather than rg, but doing `ag search-term path` is how I'd expect it to work. Plus, automatically ignoring .git and other metadata files out of the box is a time saver.
I love jq. Since I just learned this today, I'll mention that python comes with a JSON pretty-printing utility that can be used on the CLI:
Probably worth mentioning in this context that the pygments[1] module adds syntax coloring, as well,
or, path permitting, [1] https://pygments.orgOh, and
serves files in the current directory over HTTP on port 12345.I'll stop now, but I love how Python module developers add these "hidden" command-line features.
P.S.: You can — and, at this point in history, probably should — s/python/python3/ in all these examples.
Glad to hear this! I always install htop on all Lunux i install! So cool to read about the backstory :) Good job!