APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed

That disgusting, difficult, awful command line!

© March 2009 Anthony Lawrence

What is behind all the fear and loathing of the command line? Look at some of the phrases used in this recent "The command-line phrasebook" post at Tuxradar:

"the rest of us often avoid it like the plague"
"fussy syntax "
"need to type accurately"
"too darned hard"

What drives this? Is it really that hard to type words? Don't most of us type words every day in email? Why should this be so repugnant?

Is it that the words are unfamiliar? "mv", "grep", "cd" - OK, those aren't words we use in conversation (well, we Unix geeks do). But, sheesh, is it so hard to learn a few new words? For basic shell use, there really aren't that many. Out of the last 500 commands I typed, I only used 31 Unix commands and I'm an atypical user. Your average Joe command line user probably would need to know less than twenty commands:


Is it really beyond ordinary human capacity to learn this many new words? Oh, but then there's that "fussy syntax". From years of telling people at the other end of a phone line what they need to type, I'd guess 60% of that "fussy" complaint comes from the space bar. While everyone understands the need to put spaces in between words in a sentence, that understanding disappears instantly once they are in that awful command line. Someone who has already learned that "cd" means "Change Directory" will type cd/home and be astounded that it didn't work! Yet that same person would never type Iwantyoutocallme in an email.

Is it "fussy" to insist on spaces? Heck, no. And note: the shell doesn't care if you type extra spaces: cd    /home is just as good as cd /home, so it's less fussy than people who definitely wouldn't like I     want       you to call   me.

Another 5% of "fussy" probably comes from mismatching quotes and not understanding when quotes are necessary. The latter is simple to fix: use quotes liberally. Most of the time it doesn't matter a bit if you type cd /home or cd "/home". The inability of some people to close quotes is again astonishing to me: those people know how to use quotes in ordinary writing. If they mean to say:

We called him "Sonny" because he looked like his dad
they'll never screw that up as

We called him "Sonny because he looked like his dad

But give them a command line and they don't close quotes!

Most of the rest of "fussy" is surely switches. How difficult is it to add "-l" to "ls"? Apparently that is beyond ordinary human tolerance.

The solution

I'm sure someone has done this. I *know* someone has. We need a terminal window that has the twenty or so common commands in clickable boxes. Hover over a command and you get a tool-tip ballon that reminds you what the command does. Click on the "ls" box and you get "ls " in your terminal window and you get more boxes that show you what you could choose next: "-l", "-a", "-d" etc. and of course ">" and "|". You'd always be free to type your own text if you are so daring and adventurous. Press "enter" when done and look: Joe actually CAN use the command line

I'm sure I've seen this. It may not have been done well, but that doesn't say it couldn't be. I googled for "graphical command line" and came of with a few things that looked promising but weren't. Alex Faaborg's "The Graphical Keyboard User Interface" talks about similar ideas but seems to drift away into something else. I can't seem to find anything that's exactly like this.

Surely this exists?

Got something to add? Send me email.

(OLDER)    <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

-> That disgusting, difficult, awful command line!


Inexpensive and informative Apple related e-books:

Digital Sharing Crash Course

Take Control of Automating Your Mac

Sierra: A Take Control Crash Course

iOS 8: A Take Control Crash Course

Take Control of Preview

More Articles by © Anthony Lawrence

Fri Mar 13 15:56:25 2009: 5683   BigDumbDinosaur

See the comment I posted at the article site. <Grin>

Fri Mar 13 16:28:26 2009: 5684   anonymous

Its not the standard switches, although even some of those aren't "standard". Sometimes --help or even -h don't work properly. Its the oddball switches that you need once every year or so where the man pages or info usage descriptions are encrypted in word substitution ciphers with a onetime pad ;^) Its not a lot of fun going to a sandbox to try and figure out exactly what is happening with the parm, and what the gotchas are. But that is neither linux nor CLI unique. And of course, some people are just too lazy to RTFM.

Fri Mar 13 16:40:55 2009: 5685   bob4linux

There are two statements I hear or read and they are equally stupid:
"I never use the command line".
"I never use anything but the command line".
(Blind folk exempted).
Each has its strength but I find CLI very well suited to repetitive tasks.


Fri Mar 13 22:05:59 2009: 5689   anonymous

haha, great article. i've come to love the konsole, terminal, command line. it's not so hard. it's different but not hard. i'm starting my 4th year of learning linux and have just recently learned the distinction of built-in utilities vs external utilities. i probably saw the phrase "built-in" earlier but didn't realize the distinction. the more one learns the better the cli is. i've learned some cool external utilities such as; play, mogrify, and ffmpeg. i've even done some regular expressions and for loops. lots of people like to mention grep as the cats meow.
the only thing i don't quite understand yet is where the word argument comes from. why is this word used to describe options? what exactly is being argued? i'm sure it will become clear the more i study.
thank you stephen bourne.

Fri Mar 13 22:10:36 2009: 5690   TonyLawrence

I think it probably came from the mathematical use of argument.

However, that just begs for an explanation of where THAT usage came from :-)

Also - linguistics "a phrase that appears in a relationship with the verb in a clause" - which is very close to computer usage.

Sat Mar 14 00:24:47 2009: 5691   anonymous

CLIX from Rixstep ( (link) ) is a command line interface for OS X with a database of over 1000 system commands and access to the man page from the command sheet - is this the sort of thing you had in mind?

Sat Mar 14 05:41:31 2009: 5695   jtimberman

As a sysadmin turned sysengineer, I do more programming. Most accurately, I program infrastructures using a configuration management tool, Chef[1]. As a result, most of my "command line" usage is managing the version control software[2] repository we keep configuration recipes in, and of course the configuration management software itself. Chef does all the commandline stuff I used to do - ./configure, make, tar, apt-get, yum, rpm, useradd, usermod, groupdel, ldapsearch.

Of course learning a programming language is not something most people are going to sit down. I mean, people unwilling to learn command line interfaces aren't going to be interested in learning how to program.

Yet some people that complain about how hard Unix is to use can write an excel spreadsheet or powerpoint presentation with more complexity than a simple init script.

[1] Full disclosure, I work for the company that wrote Chef, (link)
[2] Git, of course. With github.

Sat Mar 14 11:51:42 2009: 5696   TonyLawrence

"I mean, people unwilling to learn command line interfaces aren't going to be interested in learning how to program."

I had to spend several days once with a Cobol programmer. My job was to help him whenever he had to do anything that involved Unix itself, including the silliest stuff imaginable. He just refused to have anything to do with the command line..

Sat Mar 14 12:20:05 2009: 5698   TonyLawrence

I downloaded Clix - no, that's not at all what I mean.

What Clix does is provide hundreds of pre-written command lines you can edit or just run. I suppose that could be useful/helpful for learning things you might not know, but it isn't what I was thinking of.

Certainly interesting - thanks for mentioning it!


Printer Friendly Version

Have you tried Searching this site?

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us

Printer Friendly Version

Any sufficiently advanced technology is indistinguishable from magic. (Arthur C Clarke)

Linux posts

Troubleshooting posts

This post tagged:


Unix/Linux Consultants

Skills Tests

Unix/Linux Book Reviews

My Unix/Linux Troubleshooting Book

This site runs on Linode