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