In the Beginning...was the Command Line

· by Peter · Read in about 3 min · (553 words)

That’s the title of great essay written by Neal Stephenson, so I’m lending it for my post. I was always the kind of guy who wanted the newest hardware, the latest software, the shinier GUI the better. Then I’ve started to do some proper engineering, and it’s changed my mind.

I like the Chrome’s download manager, but whenever I need to download something heavy from unstable source or to quickly check what’s in the header I resolve to curl.

I love Visual Studio Code text editor. All these plugins, code highlighting and formatting. But when I need to do some heavy lifting I often end up using vim. It’s swiss army knife and to call it a text editor would be understatement.

I generally like Windows Explorer and at work I’m using Total Commander, but when I need to process huge amount of files it’s always via bash (or his brother zsh). It’s just so simple, especially since I’ve discovered xargs. Tried Powershell for a while, but it’s not so flexible, even though it’s built into Windows which is still my main OS. I’ve even stopped using cloud solutions and started syncing my PC with my mobile using scp.

For a while Adobe Premiere was my video editing app of choice. First I’ve got Elements version then switched to Pro. Later on I’ve realized that actually, in 90% of cases, the only option I really need is merging multiple video clips into one. So now I’m using ffmpeg which is simply brilliant. It also helps with converting one format to another.

I’m a big fan of APIs. It’s the greatest way of communication with services. Recently I’ve written very basic client for Allegro (Polish ebay), it takes search phrase plus optional minimum price as parameters and produces something like this.

Allegro API

Auction name, price (days till the end) and the URL. What else does one need.

I’ve also made myself a Twitter reader for terminal. It’s most convenient way for me to track it as I can launch it on my VPS. Plus I can tell it to track accounts I don’t want to follow all the time, like news outlets.

Twitter API

Lastly, I really enjoy nicely made GUI. But there’s nothing more beautiful than well formed terminal output. Period! And don’t take me wrong. My terminal apps are ugly. But have you ever seen progress indication on good old scp? Beautiful!

I remember how one of my engineering friends was converting bilingual files to TMX format using clever scripts instead of some nasty, but with nice GUI, localization tool written in Java. Tool got upgraded in time, they’ve switched to more sophisticated file format. I’ve heard then, from another of my friends, that it won’t be so easy for this engineer to go around the tool anymore. Wrong! It’s even easier as they’ve moved from some crappy legacy format to XML. I’ve myself had written transformation for it. Not a complex task at all.

Recently I’m getting most of my news via command line. An if I want to check out some movie I first resort to my command line client and only then open imdb.com in my browser. There’s power in command line which, if you’re able to use it, will allow you to achieve far more using far less resources. Go, learn!