I originally titled this post “Don’t be afraid of the command line”, but decided “Black Oblong of Monospace Mystery” was more fun. Is the command line really scary? It doesn’t feel like that to me, but I grew up with an interface which looks like this on first boot.
Not exactly friendly, but I was 9 at the time, and this was normal. Typing things using the keyboard was pretty much a daily activity. I used books like this one, to learn how to program and understand the computer better.
During clearing out, found this. I think it's the first programming book I ever bought, in 1980. Anyone else keep their first coding books? 😀— Alan Pope 🍺🐧🐱🇬🇧🇪🇺 (@popey) April 27, 2020
I wonder if this code still "works" 🤔
"... run successfully on at least six computers". I should maybe live stream typing them in 🤓 pic.twitter.com/QpaIaWTjyg
There really was nothing else I could do with the computer at the time, until I typed something in. Eventually I would buy commercial software on cassette, or save my own creations onto blank tapes. But on day one, typing text was the order of the day.
I didn’t get a graphical user interface by default until my 9th computer, nearly 15 years later! Yes, I am old, and yes, this reads like a grumpy old man post. Get off my lawn.
These days all the mainstream commercial and free operating systems boot to some kind of graphical interface, operated by touch, mouse and/or a keyboard, physical or virtual. For many people opening a box with a flashing cursor, into which commands are typed, letter by letter, is alien, geeky, hard and error prone.
Some argue that it’s a “bug” in the environment if an action can only be completed with the command line. It’s suggested that the lack of a graphical tool to achieve a task is a glaring omission, and should be fixed. Or that users should be steered away from the command line, and they should not be exposed to such internals.
There are those within the community who believe that even exposing users to the command line highlights the inadequacy of the platform. I have had feedback from various support avenues requesting that I rewrite support documentation to omit command line steps, or replace them with their GUI equivalents. Apparently this will entice more users, or make things more appealing.
Others believe the command line should be embraced, encouraged and evangelised! For them, users should be introduced early to the intricacies of command line options, pipes, redirection and more. These fundamentals will help them understand how the computer works, they argue. That a deeper understanding of the internals will help the learner be a better computer user on a daily basis.
Unsurprisingly to many, I’m somewhere in the middle. I’m a pragmatic guy. I try to use the right tool for the job wherever possible. If I need to use a command line to achieve a task because it’s the most efficient, performant or elegant way, so be it.
Sometimes using the command line is just the quickest way to do something. Further, if the black text window is already open, why not use it, rather than launch a graphical application, navigate the UI to find the right related option and use it instead. It just makes sense to use the command line over the GUI sometimes.
Then there’s the support avenue. When I’m searching online for the solution to a technical problem, I often want to know the quick and easy way to do something. I’m not interested in learning the bowels of some graphical UI, if all I want to do is get past an error condition. Just show me how to fix it and I’ll move on.
This, I feel, is what a huge number of users want. They aren’t interested in bettering themselves by learning arcane commands. They don’t care if something is more elegant done one way or another. They have a mission - “Fix this thing” - and whatever is the “best” way to get that done, is good for them.
I empathise with this feeling. I experienced it just today. A friend handed me their laptop, which was failing to apply updates. I tried all manner of things to get the OS updates to download and install. It was frustrating because I got past some updates, but the rest flat wouldn’t install.
I searched online for guides to get me past this problem. I found maybe a dozen guides scattered across vendor websites, enthusiast blogs and Q&A sites. Most of them gave proposed solutions as a sequence of steps executed via the command line.
There’s only so many ways to skin a cat, and so most of the guides I found had some duplication. A few offered graphical ways to solve the problem, but the vast majority suggested I open the black oblong of monospace mystery and paste a succession of arcane incantations.
Is this a problem which makes Linux less appealing? I don’t think so, because the problem I had in this example was with a Windows 10 laptop. Almost every single guide to solving this issue, suggested command line adminstrative tools as the best steps to a solution. I have typed
net stop bits and
net stop wuauserv in a “DOS” window too many times today.
I find it quite bizarre that advocates against the command line use on Linux, seem to feel it’s uniquely a Linux “problem”. It very clearly isn’t. Users cite this as a reason not to switch from Windows to Linux. Linux advocates weirdly agree with them. Yet there’s a ton of other great reasons not to switch, use of the command line shouldn’t be one we should entertain. We should embrace the command line, where it’s needed.
Users, whatever their skill level, and no matter what OS they use, need to be less afraid of the command line. We as Linux users need to stop pretending they should be afraid, because we exacerbate the issue even further.
The command line is just another powerful tool in the arsenal of utilities we use each day. Users should use it when they need it, and use something else when they don’t. It’s not a big deal, and shouldn’t be a problem we need to have endless debates about. In my humble opinion.