Command-line interfaces are a form of art, a life style. It's so much fun, so little weight (this part is somewhat questionable). To begin this with a dose of nostalgia, I could say that when I was a kid, I used to think the real "advanced computing" was done all via command-lines — like in The Matrix —, which is not true at all, but still, at least aesthetically talking, I'm now closer to that ideal I had in mind.
Of course there are actual practical advantages of doing so, like general lower memory and processing consumption, easier management of the running apps and the existence of common design choices made by the developers — there are many command-line tools that follow Vim key bindings for moving around, for example. From a professional perspective, doing things through bash in a daily-basis has made it easier to deal with remote access of servers, and also, I've become less dependent on GUIs, saving me a lot of time — and clicks.
You'd not be wrong by thinking most of what said above is subjetive, or relative. Maybe you think I'm now wasting time. The thing is: the mouse seems to be so distant, and IDEs so unecessarily full of unknown features. Maybe it's in fact made me lazier.
It's not that I dislike Unix commands, but we're in 2019, and you know, people have built all kinds of tools on the top of them, therefore, civils like me can enjoy colorful and featureful interfaces right from within their terminals. I listed the ones I use on every day and what they have (entirely or not) replaced.
- vim (text editor/IDE): what can I say? Would you like to never leave the central portion of your keyboard again? By the way, I do not use any plugins, just change some of the default configs — useful habit when using Vim from third-parties' machines.
- newsboat (RSS reader): before newsboat I'd just use Firefox or ThunderBird for this purpose. I can get my news from using three keys on my keyboard, in a noiseless environment.
- transmission-cli (Transmission GTK): well, yeah, it's just the cli version of the popular free BitTorrent client.
- youtube-dl (YouTube web UI): this way there's no need for opening YouTube on a graphical web browser. It's also worth it checking youtube-viewer.
- mpd/mpc (VLC): as for the music players, mpc (mpd as the server) is the cleanest I've ever seen. Inside it, a tag editor, an amazing visualizer, a search engine. My second favorite one after Vim.
- calcurse: it's a calendar and task manager. I mostly use the agenda on my phone, as I'm still getting used to desktop calendars.
- tootstream (Mastodon web UI): the best client for Mastodon.
- pandoc (LibreOffice): very useful for converting between a wide range of formats (e.g.: from Markdown to PDF, Word and HTML). I'm pushing myself to learn LATEX too. Not that easy at first, I won't lie.
- ranger (GNOME Files): it's mpc for files management. Navigate your folders and files without leaving your terminal, with trees and quick commands included.
As I suggested, for some, this all may seem like a matter of taste, priorities and resources. My goal today was to present one of my semi-productive hobbies, bringging more people to the fanclub. Let me know if you believe my list is missing something or you wish to get some support on starting a cli-geek career.
I'm now actually planning to write another post, this time on useful Unix commands — it will be a great chance for me to dive deeper into the whole world of built-in tools of GNU/Linux, the ones many of us don't usually learn about and blindly substitute with third-parties' graphical solutions (which I'm not against, I must point out).
- For multi-tasking inside a single terminal window (multiple panes and tabs), I've been using Byobu.
- In case you decide to try w3m out, please take a look at this article, regarding browser footprints and privacy — beware how old it's: critical reading is a must.