Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
oil
Oils is our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Trino
Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
I'm not a fan of man pages. Or any documentation that focuses on textual explanations rather than examples in code (looking at you aws).
I recently found https://tldr.sh/ and found it more convenient. I ended up writing myself a vscode extension to have a quick lookup at my fingertips, since I am at least 60% of the time looking at a terminal in vscode
I have yet to find a proper replacement for bash. Especially for scripts.
The two most common alternatives are 1) using some of the newer shells people have created, like Oil shell [0], or 2) using programming language like Python, JavaScript, or PHP.
The problem with using a newer shell is that you'll have to install the new shell anywhere you want to use the script. Meanwhile bash is ubiquitous. Unless you're the only one maintaining the script, you're requiring others to learn the other shell to maintain the script.
The problem with using another programming language is that they rarely have good ergonomics for doing what bash does: stringing together commands, command input, command output, and files. If you try to do that in another programming language, things suddenly get a lot more complicate or at least more verbose.
So I still use bash, but I recognize that it's strength is in running other commands and dealing with I/O. If I'm doing complicated logic that doesn't involve that, then I'll offload my work to another language. Sometimes that just means calling a python script from bash, not avoiding bash completely.
If people found that they work better by taking other approaches, the please share them.
[0] https://www.oilshell.org
I recently wrote "is" so that I would have a tool to make shell scripting just a little bit easier: https://github.com/oalders/is
AFAIK there is a find replacement with sane defaults: https://github.com/sharkdp/fd , a lot of people I know love it.
However, I already have this in my muscle memory:
Clojure does pretty well. See https://github.com/nubank/morse, https://docs.datomic.com/cloud/other-tools/REBL.html, and https://vlaaad.github.io/reveal/.
It's one of the areas that homoiconicity helps: code is data, data is code, so visualization tools can work on both sides.
Clojure does pretty well. See https://github.com/nubank/morse, https://docs.datomic.com/cloud/other-tools/REBL.html, and https://vlaaad.github.io/reveal/.
It's one of the areas that homoiconicity helps: code is data, data is code, so visualization tools can work on both sides.
What if my SQL engine is Presto, Trino [1], or a similar query engine? If it's federating multiple source databases we peel the SQL back and get... SQL? Or you peel the SQL back and get... S3 + Mongo + Hadoop? Junior analysts would work at 1/10th the speed if they had to use those raw.
[1] https://trino.io/
Related posts
- Can anyone suggest a solid Linux command reference guide for someone looking to dive deep into the terminal?
- How do you get used to and remember commands?
- Linux commands, and the problem with --help and man pages.
- The only Linux command you need to know - The Linux cheat command is a utility to search for and display a list of example tasks you might do with a command.
- A cheatsheet for creating archives with tar, explained.