(OLDER) <- More Stuff -> (NEWER) (NEWEST)
Printer Friendly Version



That disgusting, difficult, awful command line!


2009/03/13



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:

apropos
cat
cd
cp
chmod
date
find
grep
head
ls
man
mv
mkdir
pwd
rm
tail

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?


;


Click here to add your comments





Fri Mar 13 15:56:25 2009: Subject:   BigDumbDinosaur
http://bcstechnology.net
gravatar
See the comment I posted at the article site. <Grin>





Fri Mar 13 16:28:26 2009: Subject: CLI phobia   anonymous

gravatar
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: Subject:   bob4linux

gravatar
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.

Bob



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

gravatar
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: Subject:   TonyLawrence

gravatar
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: Subject: Have you looked at CLIX for Mac OS X?   anonymous

gravatar
CLIX from Rixstep ( http://rixstep.com/1/20090308,00.shtml ) 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: Subject:   jtimberman

gravatar
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, http://www.opscode.com/
[2] Git, of course. With github.






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

gravatar
"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: Subject:   TonyLawrence

gravatar
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!

Don't miss responses! Subscribe to Comments by RSS or by Email

Click here to add your comments


If you want a picture to show with your comment, go get a Gravatar



numly esn 93443-090313-851570-64
numly barcode

Have you tried Searching this site?

Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates

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. We appreciate comments and article submissions.

Publishing your articles here

Jump to Comments



Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.

Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.

We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.


book graphic unix and linux troubleshooting guide

My Troubleshooting E-Book will show you how to solve tough problems on Linux and Unix systems!



 I sell and support
 Kerio Mail server




pavatar.jpg
More:
       - Linux
       - MacOSX


Unix/Linux Consultants

Skills Tests

Guest Post Here








card_image






My Favorites

Change Congress