Slashdot Mirror


The Command Line - Best Newbie Interface?

An anonymous reader writes "This essay describes the surprising results of a brief trial with a group of new computer users about the relative ease of the command line interface versus the GUIs now omnipresent in computer interfaces. It comes from practical experience I have of teaching computing to complete beginners or newbies as computer power-users often term them."

190 of 885 comments (clear)

  1. The 'help' command by nokilli · · Score: 5, Insightful

    I'd wager that computer literacy amongst people who've tried Linux would be twice what it is today if when you typed help foobar bash would perform a man foobar if 'foobar' wasn't a builtin command. And it'd probably be double that if you incorporated some kind of search facility too. Type in help disk space and get a hit on the df command, for instance.

    1. Re:The 'help' command by pandrijeczko · · Score: 5, Informative
      Just do an alias of "help" to "man -k".

      As long as "makewhatis" is setup first, that will do about the same thing.

      --
      Gentoo Linux - another day, another USE flag.
    2. Re:The 'help' command by TehHustler · · Score: 5, Insightful

      And thats going to make sense to newbies how?

      --

      TheHustler
      http://www.elmarko.org/ - Useless bilge
      http://www.asylum-games.co.uk/ - Co-Founder
    3. Re:The 'help' command by PRES_00 · · Score: 2, Funny

      Why not come up with a command line wizard that displays a command, gives you information about its function and prompts you for the most personally intuitive replacement designation for that command.This is even more important for non-english speakers.

    4. Re:The 'help' command by SpaceLifeForm · · Score: 2, Insightful

      Doing the man command is probably too much for a true newbie. See 'man ls' or 'man nmap'.

      --
      You are being MICROattacked, from various angles, in a SOFT manner.
    5. Re:The 'help' command by PowerBert · · Score: 5, Informative

      bash has a help builtin which will direct the user to man and info commands.

      $ help foobar
      -bash: help: no help topics match `foobar'. Try `help help' or `man -k foobar' or `info foobar'.

    6. Re:The 'help' command by oingoboingo · · Score: 5, Funny
      And it'd probably be double that if you incorporated some kind of search facility too. Type in help disk space and get a hit on the df command, for instance.

      How about a little animated 'bash$' command prompt which jumps up when you hit F1, or which politely asks "It looks like you're composing a shell script. Would you like some help!" when you're in a bit of a pickle. You could type in a plain-English question about what you wanted to do, rather than having to remember the cryptic names of Unix commands. When you selected your specific query from a list of options that the animated character presented to you, it would then go on to show you exactly how to enter the command you were interested in. It would be great! You could even theme this 'assistant' according to your shell...it could appear as an animated 'ksh' or even just a '%' sign for those wanting to get on with the job.

      As for a name, what about 'Bob'?

    7. Re:The 'help' command by HidingMyName · · Score: 4, Insightful
      I suspect that new users find Unix/Linux challenging due to historical reasons. Two problems that stick out are command naming conventions and command output.

      It is an unfortunate artifact of Unix history that some of the commands are poorly named. The Help command did exist in Unix, but it was the help system for sccs (too bad there wasn't sccs --help or some such convention instead). There are a few other pet peeves of mine, grep might be better named search, etc.

      Command output is problematic since users often expect feedback. For example when we grep on a file and don't find the pattern, grep does not generate any output. From a programmer point of view that is definitely the right thing (especially since these commands are used as filters in a pipelined fashion), however, from a user centric point of view there may be an expectation of a report that the pattern was not found. I'm pretty used to the Unix/Linux way of doing things, but new users are not.

    8. Re:The 'help' command by Talez · · Score: 4, Insightful

      Nope. Sorry. man is crap for a newbie.

      What Linux needs is a MS-DOS 6 style help command. When you type help it pops up a nice ncurses screen of all the different commands available on linux systems, briefly what they do and a link that can take them to a simplified, easy to read page of advanced things to do with the command.

    9. Re:The 'help' command by zymurgy_cat · · Score: 5, Insightful

      I'd wager that computer literacy amongst people who've tried Linux would be twice what it is today if when you typed help foobar bash would perform a man foobar if 'foobar' wasn't a builtin command. And it'd probably be double that if you incorporated some kind of search facility too. Type in help disk space and get a hit on the df command, for instance.

      What I'd really like to see is a more helpful man page with examples. It's frustrating when using a new command to read "usage: foobar [VNFHDMudndghfud8734yfhfnbgdh] filename | device | dir | options filename[]" and then read through 5 pages of options and switches I'll never use. If every man page had at least a few examples of how to do stuff most people want to do, it'd be easier to both do those things and learn the more complex commands.

      Another nice thing would be a howdoi command which allows the input of natural language and spits out a small man page (with examples!) or help file, ie, "$>howdoi see how much hard drive space i have" spits out how to use df.

      --
      -- Fugacity: Confusing chemists since 1908
    10. Re:The 'help' command by Moderation+abuser · · Score: 4, Funny

      Apropos? Yes that's the word that springs instantly to mind when looking for help on something... Apropos. Not "help", no never. Who would ever think of typing "help"?

      --
      Government of the people, by corporate executives, for corporate profits.
    11. Re:The 'help' command by gmack · · Score: 5, Interesting

      When I was in highschool I switched my PC from windows 95 to Linux after my sister had damaged my windows install. After the initial horror at what I had done wore off, my younger brother and sister got used to the new system. Four months later I discovered they were both making extensive use of the command line. I hadn't tought them a thing so they learned on their own. By the time I moved out I had my mother using pine over ssh to read her email.

      Most of the trouble of Linux is the inertia related to not wanting to learn new things and not being technically difficult.

    12. Re:The 'help' command by selderrr · · Score: 5, Funny
      [ldab:~] selderrr% help alias
      help: Command not found.
      [ldab:~] selderrr% help help
      help: Command not found.
      [ldab:~] selderrr% help me
      help: Command not found.
      [ldab:~] selderrr% help me asshole !
      help: Command not found.
      [ldab:~] jeroen% can you help me ?
      can: No match.
      [ldab:~] jeroen% where can i get help ?
      [ldab:~] jeroen%
      [ldab:~] jeroen% find help
      help: help: No such file or directory
      [ldab:~] jeroen% locate help
      ... (machine goes off into dumping half my 150GB)
    13. Re:The 'help' command by Gildor · · Score: 5, Funny

      I wonder how many Windows users, would, if they read your post, say "Hey, what a great idea!". Reminds me of a Dilbert cartoon. Dilbert jokingly tells the PHB that in order to get more customers they should start a massive spamming campaign. When Dilbert goes home, Dogbert says "You look like someone who was just put in charge of his own sarcastic suggestion."

    14. Re:The 'help' command by jennifer_l · · Score: 3, Insightful

      Y'know what got me into the man command in a big way? Playing MUDs and learning to parse through steadily more complex help documentation as my character advanced and wanted to do more things. The docs in the MUDs I played were chatty, informative, helpful and most of all you could generally find out how to do what you wanted to do within the first page of help.

      I've been thinking for a while (after teaching students some HCI at least) about a game-driven OS UI. Takes me back to usability testing at $BigSoftwareCompany and the way that subjects would treat the Director mockups as a game, see who could click on the right thing first, click anywhere and it won't break... but I think something commandline based that has the degree of thought put into it that a MUD has could be a great hit.

      j

      --
      long sentences mean i haven't had enough coffee.

    15. Re:The 'help' command by mwing · · Score: 3, Insightful

      I thought the apropos command was just for that purpose. Granted that newbies probably don't know to type that, but it is quite easy to have the console print a few helpful commands when the user logs in. Maybe the distro's should add a default motd to newbies?

    16. Re:The 'help' command by Skinny+Rav · · Score: 4, Funny
      What Linux needs is a MS-DOS 6 style help command. When you type help it pops up a nice ncurses screen of all the different commands available on linux systems, briefly what they do and a link that can take them to a simplified, easy to read page of advanced things to do with the command.


      How about info? man interface is crap, but info is pretty user friendly. OK, I admit, I mostly browse info in emacs where it is all flashy and colourful, but AFAIR it is quite easy to navigate also in console. Although a small bar with basic navigation keys on the bottom would help a lot. Of course still quite often if you type 'info foobar' all you get is a man page but that's a different story.

      Raf
    17. Re:The 'help' command by seanmeister · · Score: 4, Funny

      even just a '%' sign for those wanting to get on with the job.

      As for a name, what about 'Bob'?


      How about you make it an @ sign and call it CLIppy?

    18. Re:The 'help' command by adamruck · · Score: 4, Insightful

      wow did you just say info interface is easy? That explains the emacs usage. Also I happen to like man.

      one single page shows up, gives all relavent info, up and down arrows for scrolling, q to quit.

      Now wether people write good content for man pages is another story.

      --
      Selling software wont make you money, selling a service will.
    19. Re:The 'help' command by Anonymous Coward · · Score: 5, Interesting

      > Command output is problematic since users often expect feedback. For
      > example when we grep on a file and don't find the pattern, grep does not
      > generate any output.

      Try this:

      PS1="\w:\`if [ \$? = 0 ]; then echo :\\\); else echo :\\\(; fi\`\\\$ "

      This puts a little :) on the prompt if the previous command succeeded,
      and a :( if it failed.

      It doesn't help if the command was part of a pipeline or some such,
      but it's debatable what sort of feedback you want if something
      in the middle of one of them is unhappy.

    20. Re:The 'help' command by Angstroem · · Score: 2, Interesting
      What Linux needs is a MS-DOS 6 style help command. When you type help it pops up a nice ncurses screen of all the different commands available on linux systems, briefly what they do and a link that can take them to a simplified, easy to read page of advanced things to do with the command.
      Erm... So what exactly is a "command" by your definition? With DOS it was easy: everything which was embedded in command.com (thus the necessity to always carry an extra format.exe)

      On a Unix system, however, there's just directories, executables, and arbitrary data files (yes, yes, and special files to be found in /dev and /proc). You would expect a certain set of commands available to find your way through the file system, but already the shell comes in a gazillion of flavors.

      So I don't think Joe User would benefit from such an ncurses thingy which blasts tons of commands into his face...

      But maybe there's an ncurses version of xman?

    21. Re:The 'help' command by Anonymous Coward · · Score: 2, Funny

      Is a man who can't intuitively program his VCR somehow less of a man?

      Yes.

    22. Re:The 'help' command by DrXym · · Score: 2, Interesting
      Another neat feature would be inline expansion of arguments.

      At the moment if you hit TAB on the command line it will autocomplete a file name. For example if I type "more /etc/pr" and hit TAB it expands out to "more /etc/profile". But TAB doesn't help if I'm typing in other arguments.

      Now imagine the TAB behaviour was smart and used the command context to that. For example, it might know that if I type "ls -" and hit TAB, that it should list the most common flags with a brief description for each. If I type "cd a" and hit TAB I want the first directory beginning with 'a' not, the first file. If I type "gpg --list" and TAB it presents me with "--list-keys", "--list-secret-keys" as possible choices, so I type "gpg --list-s" and hit TAB again and it correctly fills out it out to "--list-secret-keys". And so on.

      How would it do this? Well a command could ship with command template file that says how to expand the argument the cursor is on when TAB is hit. Bash would use that template to determine what to do and if there were no template it would fall back to its default file expansion behaviour.

      It would make using the shell a hell of a lot easier and more interactive than it is now.

    23. Re:The 'help' command by Anonymous Coward · · Score: 5, Funny

      Yeah, there needs to be another default output stream. stdin, stderr, stdout and stdidiot. Stdidiot is where you tell the user verbose output of what you are doing including positive affirmation! Jack Handy beware. Of course one should be able to setenv STDIDIOT=/dev/null to turn that off. Moreover, maybe you re-direct it into a pipe that a consolish app could tail? Then a little ticker window on the desktop closes the loop for those needing positive responses?

      Ok the name was tongue-in-cheek. But maybe there is something the idea. I've been living in Unix for more than a dozen years and most of the time I like the "tell me about it iff there are problems" philosophy, but a centralized ticker might occasionally be handy. As a first cut one could basically write a layer that takes the stuff spewed forth by most utilities when -verbose is kicked in and peel it out to stdidiot. If -verbose is thrown on the cmd line, then stdidiot is echoed to stdout too.

    24. Re:The 'help' command by frodo+from+middle+ea · · Score: 2, Funny

      subtle , extremely subtle.

      --
      for the last time people, I am "frodo from middle eaRTH", not "middle eaST".
    25. Re:The 'help' command by A+nonymous+Coward · · Score: 4, Interesting

      I loaded Linux on a Windows 3.1 machine for my kids to get mail (had a domain name) so they could all have their own mail accounts and login; didn't want the arguments from a 16 year old girl and 12 year old boy fighting over a common email account. The 16 year old liked Pine for email, she would rather exit X to read email under Pine, before she learned about xterm.

    26. Re:The 'help' command by Greyfox · · Score: 2, Interesting
      A lot of the old-school UNIX man pages for the C standard library did in fact have examples. The linux man pages for the same functions do not. I found such examples very helpful when I was a newbie C programmer, especially when the function did something esoteric.

      I patched the find man page with some examples and submitted my diffs to the find maintainer a few years back, but they don't appear to have found their way into the man page. That's too bad because the syntax for -exec is not intuitive to a newbie and one of the questions I'm most frequently asked is how to use find to operate on files.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    27. Re:The 'help' command by Talez · · Score: 2, Interesting

      Like you said, theres a certain set of commands available and most distros just default to bash anyway.

      Can't be too hard for a bunch of geeks to sit down and work out a short list of 15-20 commands that you really *HAVE* to know for the CLI.

    28. Re:The 'help' command by fshalor · · Score: 4, Interesting

      Sorry to dissagree.. Dos help was nice, but the dos TUI sucked for one reason: NO TAB COMPLETION! I am a Linux/Unix admin, and I can't function in environments without tab completetion without a fair amount of consternation, misstyped commands, web lookups and other crap.

      Every user I've ever seen strugging with tab decompletion shells almost instantly became functional when tab competion was introduced.

      Most people find that typing two letters and then tab can get them to anything they want to do faster than finding the mouse, finding the app, doubleclicking, etc.

      No, I will not make the mistake of stating "I love man".. But I can't work well without it most of the time.

      Maybe someone should write one for Linux, just for the heck of it. They can call it "woman". :) Then again, someone probably already has.

      --
      -=fshalor ::this post not spellchecked. move along::
    29. Re:The 'help' command by OoberMick · · Score: 2, Informative

      Sounds like bash completion to me.

    30. Re:The 'help' command by Talez · · Score: 2, Insightful

      I'm not suggesting replacing bash with a command.com replicant. MS-DOS 6 had a very user friendly list of commands that it came with. Each one had a small page that described what it did and how it could be used. The main page looked like an ncurses app.

      For a DOS app it was very polished and very useful for a beginner to DOS.

    31. Re:The 'help' command by Talez · · Score: 2, Informative

      For anyone wondering what the hell I'm talking about you can find a web based facsimile of the DOS help application here.

    32. Re:The 'help' command by jez9999 · · Score: 3, Interesting

      one single page shows up, gives all relavent info

      And unfortunately, all the irrelevant info as well. Reading through a lot of manpage is truly soul-destroying, and it's hardly a surprise that they're not too popular with newbies. Try man cvs or man gcc if you don't believe me.

    33. Re:The 'help' command by NMerriam · · Score: 4, Insightful

      I will agree with this wholeheartedly. This is a place where DOS did it right and no linux distro yet has matched.

      If you type foo /? in DOS, you'd get a one or two page SUMMARY of how to use the command, half of which was EXAMPLES of how to format command lines for different tasks. 95% of the time this was all that was needed -- for more details, you'd get a book.

      Most Linux man pages are the exact opposite -- they tell you how to do everything under the sun over 20 pages of text, but never show how those options actually fit together on a command line. That is useful information, but it takes for granted that there are NO ambiguities whatsoever, which is very, very rare.

      Show 5 or 6 examples and the "unwritten" rules of how to format the command can be quickly grasped in a way that 200 pages of specs could never make clear.

      --
      Recursive: Adj. See Recursive.
    34. Re:The 'help' command by halosfan · · Score: 2, Insightful

      I certainly agree. However, as someone who started with Unix and only really encountered Windows on my third job after college, I would like to note that it's not necessarily better on Windows.

      When you want to find a phrase in Notepad (or MS Word), how is Edit->Find, or Ctrl-F more obvious than 'apropos search' on Unix is? I found myself repeatedly trying the 'View' menu when looking for a search/find command in Windows editors until I finally memorized that the Find command is under 'Edit'. When you memorize this as a fact with no underlying logic, it becomes as obvious as 'grep' is to a Unix user, but until then it's a struggle.

      I don't think it is bad, though. You'll hear people complain about complex interfaces all the time, not necessarily in computing. A friend of mine was recently whining about skiing being hard because one pressures the left ski when turning right (and vice versa). I am sure that if one-year olds could really speak, they would tell us long stories about how much harder walking is than it really should be.

      In short, to do non-trivial things properly, one has to invest some time in learning them. Until then, things you know seem to be easier than things you don't, even though in reality neither is necessarily more complex than the other.

      --
      My only problem with Microsoft is the severity of bugs in their software.
    35. Re:The 'help' command by Skweetis · · Score: 3, Informative

      I think you just redesigned bash completion. This does the "cd a" thing exactly how you want it to. I don't think it handles the argument expansion thing yet though. That would be doable though. Most programs use getopt() to parse arguments, it is probably possible to put hooks into that function that bash could use to do the expansion. It wouldn't be trivial, since you would have to run the program in the background to see what arguments it accepts (probably something similar to how ldd runs a program to determine what libraries it uses), but it could be done.

    36. Re:The 'help' command by IntlHarvester · · Score: 4, Insightful
      It wasn't just that the index was friendly, the information in the DOS Help file was presented in a very accessible manner -- something that is not done in the GNU/Linux man system.

      For a very simple contrast, compare the information between HELP DEL and GNU man rm

      The man rm example basically sums up everything that's wrong with GNU man pages in a microcosm:
      • First it tells you that 'rm' is good for removing directories, then it tells you that it isn't (unless you are a superuser)
      • There's no examples, except for the side case of a file starting with a hyphen, and even that's unclear (why 'rm.td'?)
      • There's no reference or link to the rmdir command
      • There's no warning about destructive behavior ('rm -r *' etc)
      • Of course, it tells you to lookup an info page

      Now, that's just for a simple example. Imagine a newbie scratching his head while looking at the man page for complex command like grep or find. Basically the man system is only useful if you already know 95% of what the man page is trying to tell you -- and even there it falls down as a reference work because all the real information is in the info system.

      I'm pointing this out because a lot of times Unix Oldtimers point new users to the man system (even on this thread), probably without realizing exactly how horrid it is on a GNU/Linux system. It is not at all accessible to newbies, and probably should just be chucked in it's current form.
      --
      Business. Numbers. Money. People. Computer World.
    37. Re:The 'help' command by haystor · · Score: 2, Interesting

      At the youngest ages though a GUI interface is surprisingly intuitive. I found this out when my 18month old began clicking on things. He'd click on an animal, say it's name or make the sound.

      At 19 months he's playing Concentration (memory) on a game called Childsplay (available through sourceforge).

      Childsplay is a pretty cool progam made to add different modules. Some of the modules though have default words like: sister, baby, fish, linux. It receives my vote for having the best penguin in a diaper.

      --
      t
    38. Re:The 'help' command by mwood · · Score: 4, Insightful

      I will now reveal just how uncool I am by suggesting that you go take a look at the OpenVMS 'HELP' command. The wealth of information in a decent man page is like a revelation from heaven to one who has had to make sense of DOS HELP, but a single massive spew of everything known about some complex program is a little overwhelming even with an outstanding pager to help. VMS HELP documents are hierarchial and are usually chunked fairly nicely.

      Where VMS HELP falls down is in full-text searching, though that may have been improved since they took my VMS boxes away. It also needs a much better pager.

      'info' is pretty good, but there are a number of very poorly structured texinfo documents to deal with, the style suffers from doing double duty as the revisable form of a book, and somehow I've never reallly become comfortable with the keystroke assignments. OTOH texinfo's structural possibilities are a bit more flexible than the VMS Librarian's HELP mode, and a good document designer can do wondrous things with it -- the problem is the dearth of good document designers and a certain attitude in the community which says that documentation is for those who can't read source.

    39. Re:The 'help' command by Nimey · · Score: 2, Informative
      With DOS it was easy; everything which was embedded in command.com (thus the necessity to always carry an extra format.exe)
      No. Only a subset of the DOS commands were built into command.com. Basic ones like dir, vol, and del. More complex ones (like format.com) were seperate files.

      Five years of being a Linux weenie and I still remember almost everything about DOS. Oy.

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    40. Re:The 'help' command by Bitmanhome · · Score: 3, Informative

      That was great! However, he actually appears with four eyes and a squiggly hair. This looks much better:

      PS1="\w \`if [ \$? = 0 ]; then echo :\\\); else echo :\\\(; fi\` "

      --
      Not that this wasn't entirely predictable.
    41. Re:The 'help' command by the_duke_of_hazzard · · Score: 2, Insightful
      "This was the most pleasing part of the trial. Here the users were instructed that they could get help on a particular command with the 'man' command and were given a brief description of how to read them. They particularly liked the clear, consistent layout and references to other useful commands."

      I'm sorry but this has got to be bullshit. I'm only now coming to terms with man pages and I still use a script that takes the contents of everyone's .bashrc file and gets me examples of a command's use rather than wade through them.

      If the above is true, I wonder if those dudes are available for hire?

    42. Re:The 'help' command by kisielk · · Score: 2, Insightful

      Not to mention that apropos returns about a billion items totally unrelated to your search in any way. For example, if I was a newbie trying to figure out how to copy files or directories or something, "apropos copy" on my machine returns 158 results. 133 of these are C functions. I highly doubt most users are looking for gl_copyboxfromcontext when they search for something like that :p

    43. Re:The 'help' command by Wormholio · · Score: 2, Insightful
      Since I've been turning newbies into Unix users for a while, I've found it useful to have `help` give a short tutorial on the man command and a list of the most commonly used commands for new users. New users invariably type "help" as a command and so the result should be something that in fact is helpful to them.

      I should probably update this a bit, but here is what I have found useful: clicky

      --
      "Education is not the filling of a pail, but the lighting of a fire." -- William Butler Yeats
    44. Re:The 'help' command by bheer · · Score: 5, Insightful

      > I think the person doing the alias to man -k is the system administrator

      Ah, the "local customization" myth. This may have worked back in the day when all of MIT had three computers, but today there are too many darn computers to administer. Even clueful admins don't bother changing most defaults because they know their changes won't be obvious to end-users. The right place to make these changes is inside the distro, because that way the local mailing list/LUG/linux book will give one consistent, reinforcing message to the end-user.

    45. Re:The 'help' command by JavaLord · · Score: 5, Funny

      By the time I moved out I had my mother using pine over ssh to read her email.

      Most of the trouble of Linux is the inertia related to not wanting to learn new things and not being technically difficult.


      Yeah I know what you mean. When I was in high school I used to visit my grandmother in a nursing home all the time. She didn't know how to use Windows or E-Mail so I just gave her an old linux box. Like 2 months later she had root at NASA.

    46. Re:The 'help' command by Espectr0 · · Score: 2, Funny

      [ldab:~] selderrr% help alias
      help: Command not found.


      Something is wrong with your system.

      mac:~/msn espectro$ help alias
      alias: alias [-p] [name[=value] ... ]
      `alias' with no arguments or with the -p option prints the list
      of aliases in the form alias NAME=VALUE on standard output.
      Otherwise, an alias is defined for each NAME whose VALUE is given.
      A trailing space in VALUE causes the next word to be checked for
      alias substitution when the alias is expanded. Alias returns
      true unless a NAME is given for which no alias has been defined.

    47. Re:The 'help' command by moonbender · · Score: 2, Insightful

      I'm a Linux newbie (or was, until recently), and the man page system was an incredible help for me. And if you read the articles, the newbies he talks about are very happy with it, too. I'm not saying it's all good, and can't be improved, but it is not as bad as you make it look. Apropos as part of the man system is also great, although I guess not many newbiews know about it (my boss certainly didn't).

      --
      Switch back to Slashdot's D1 system.
    48. Re:The 'help' command by pLnCrZy · · Score: 2, Insightful

      It seems like people are expecting some major hand-holding while they get used to a new CLI / OS. Yet, ironically, similar things when introduced by MS or otherwise are globally scorned.

      What's so taboo about just buying a book? The Table of Contents for "Linux for Dummies" shows a section dedicated to "Working Without The GUI". If a new user wishes to learn about the Linux CLI, instead of insisting that developers waste valuable time on a pretty menu to tell you how to do a directory listing or find out how much disk space is free (sounds almost like a GUI, eh?), why not just pick up a book, or read one of the many free primers that are available on the web?



      find / -name *base* -exec chown us:us {} \; su -c someone 'export UP_US=thebomb'
      for f in great justice ; do sed -e 's/zig//g' < $f ; done
    49. Re:The 'help' command by zaphod110676 · · Score: 4, Informative

      I've never found info intuitive at all. The pinfo command however works great. It is a lynx style viewer for info pages. It required little work to figure out and is great when you hit those man pages that say:
      "The full documentation for ls is maintained as a Texinfo manual."

      --
      To Do: 1. Take over world 2. Pick up Milk and Bread on the way home
    50. Re:The 'help' command by fitten · · Score: 2, Insightful

      Yeah... and apropos is a word that is the vast majority of folks' everyday vocabulary. Just another example of how Linux and Un*x turn folks off. First, almost no commands have vowels in them... mv = move, cp = copy, rm = remove. The ones that do have vowels in them are words that nobody would think of... apropos.

    51. Re:The 'help' command by gnu-generation-one · · Score: 5, Interesting

      "I think the person doing the alias to man -k is the system administrator... | ... Ah, the "local customization" myth. This may have worked back in the day"

      I think the person doing the alias to man -k is the distro maintainer

      "look, I typed la and it did an ls for me! And it works when I type dir too!" [mandrake newbie]

    52. Re:The 'help' command by Nurseman · · Score: 2, Informative
      "Can't be too hard for a bunch of geeks to sit down and work out a short list of 15-20 commands that you really *HAVE* to know for the CLI."

      Do you mean like this ? Linux One Page Manual Warning, it's a PDF, but it's pretty handy to me. Please dont kill his poor server.

      --
      Save a Life. Donate Blood. Please.
    53. Re:The 'help' command by skintigh2 · · Score: 2, Interesting

      That was my exact thought the first time I used a *nix at school. To me it looked and acted just like DOS and like a lot of BBS software I had used but if you wanted to do something rock-bottom-basic like read email or edit a file you were fucked unless you had someone to show you.

      I remember thinking even the absolute worst software I had ever used had a "help" command, and most commands made sence, but on this less-than-intuitive system I had to type in assorted tree species instead of "mail" to read my email or type in a nonsence word like emacs or vi if instead of "edit" if I wanted to edit a file, etc. etc..

      Even the most absolute, brain dead, rock bottom basic command was obfuscated. For instance, if you want to change your password, do you type password? No. Maybe it's abreviated to pw? No.Pswd? No. The second half of the word is half abreviated, but not the first half. What fucking idiot came up with that? Oh, and for shits and giggle some genius made the command line case sensitive.

      I think back to that day every time someone tells me Linux is just about to take over the consumer market.

    54. Re:The 'help' command by Murphy(c) · · Score: 2, Insightful

      I totaly agree with you about the incompletness of man pages for newbies (me).
      The most frustrating part of the man pages for me is the lack of practical examples in them. I've always felt that the easiest way to understand a command or concept is by imitation, it's very intuitive. And I'm not talking about an abstract example like :

      Foobar [argument] [option] ([sub argument] [output file])

      That doesn't speak to me the same way as a realy concrete example of the command, even if it's not exactly the command I need, at least I know the general syntax and can try from there.

      I've always found 4DOS / 4NT (for the Windows world) to have the best possible help. Because you have a clear desciption of every optional argument, and lots of examples.

      Murphy.

    55. Re:The 'help' command by AB3A · · Score: 2, Interesting

      Oh wow, does that bring back memories...

      If there is one thing that DEC did better than just about any other company before or since, it is this: They knew how to write good documentation. The HELP command in VMS is a sample of what they did.

      However, if you really wanted an even nicer CLI, try another OS from DEC: Twenex --I mean TOPS-20 (Send me a message if you know the history behind this).

      Instead of Tab completion, they used the Escape key. I think the first place I ever saw auto completion was on a TOPS-20 system (Version 3, IIRC, and it was a long time ago). I have always liked auto-completion and I've always thought that it would make a comeback some day.

      Meanwhile, grizzled old command line users like me have always found command lines to be places where we could get "real work" done. (What? You had command lines? In my day we had front panel switches, incandecent address and data lights, and paper tape readers!)

      Given the overly rich and confusing numbers of icons, sounds, popups and flashy widgets on screens, maybe a minimalist approach to computing might help people understand what's going on. This industry often tries to make too many concepts in to abstractions. Perhaps it's time we went back and rediscovered our true hardware ;-)

      --
      Nearly fifty percent of all graduates come from the bottom half of the class!
    56. Re:The 'help' command by jc42 · · Score: 2, Insightful

      There's no warning about destructive behavior ('rm -r *' etc)

      Huh? That's the silliest objection I've heard in years. There is absolutely nothing about rm that isn't destructive. That's why rm exists: to destroy things. It has no other purpose whatsoever. If you can't get that from the man page, you shouldn't be allowed near a keyboard.

      Next you're going to demand that guns come with warning labels saying that they can injure or kill people, and that matches come with warnings that they can start fires that burn things.

      Jeez; who lets people like this into this assylum?

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    57. Re:The 'help' command by ghakko · · Score: 2, Funny

      It could be worse.

      Welcome to Unix! You are a lawful male human user.
      $ rm * .c~
      You feel as though you're missing something.
      $ file *
      j1.au: An ornamental clip.
      rep12.doc: A pair of snow docs.
      hayw.pl: A fizzy file.

      $ pkill -INT -f mozilla
      The magic missile hits the lizard! The lizard resists! The lizard hits!
      $ pkill -TERM -f mozilla
      The bolt of fire hits the lizard! The lizard resists! The lizard hits! User is about to die.
      $ pkill -KILL -f mozilla
      The death ray hits the lizard! The lizard is killed! Welcome to experience level 5. You gain some swap.

      $ cat /dev/zero >/dev/mt0 &
      The cat catches a tape ration.
      $ sleep 60; jobs
      The cat is still eating.
      $ stty dec
      ^[0;1mOh wow! Everything looks so cosmic!^[0m^M$ sttu^Hty^H ^H^W sane^Mfg^M^C^C^C^K^[0;1mThe jumbo shrimp ululates! You hear the studio audience applaud!^0m^M^H^M$ stty sane^M
      Everything looks SO boring now. You see here a cat corpse.

      $ mount /dos
      You mount your saddled dos.
      $ ls -d ~/wkfolder
      You see here a large boulder.
      $ cp ~/wkfolder /dos
      You try to pick up the boulder, but your dos cannot lift any more.
      $ umount /dos
      You can't. The saddle seems to be cursed.
      $ fuser -mk /dos
      You feel as though someone's helping you.
      $ umount /dos
      You dismount. You've been through the dungeon on a dos with no name.

      $ halt
      Suddenly, the dungeon collapses! You die...
  2. Mac OS X by jammer+4 · · Score: 4, Insightful

    And isn't it nice that Mac OS X now gives you the best of both worlds :)

    1. Re:Mac OS X by scsirob · · Score: 2, Interesting

      I write diagnostics tools for a living. All command line based. Same source tree compiles on Solaris, Win32, Linux, NetBSD, FreeBSD, AIX and MacOS-X.

      Too bad, users of MacOS-X are the *only* ones who need handholding to operate the tools.

      --
      To Terminate, or not to Terminate, that's the question - SCSIROB
    2. Re:Mac OS X by baryon351 · · Score: 3, Insightful

      I think so

      I don't believe the importance of a really refined gui is as high as it used to be. Back when the original mac was introduced, along with other later GUI based systems such as the Amiga, it was brand new. Newbies back then were far newbier, and it wouldn't be unusual to find 98% of the population who had never used a computer, EVER.

      Now in the same society you'd be hard pressed to find a third grader who hasn't used a computer for nearly a year. The skills are being embedded at a younger and younger age. The big difference between a machine thats intuitive now, and one thats not, is the one that doesn't crash is more usable. Not much more than that

    3. Re:Mac OS X by Zone-MR · · Score: 2, Insightful

      And isn't it nice that Mac OS X now gives you the best of both worlds :)

      Linux has done the same ever since X came into existance.

      Windows has always supported a command prompt too, just the majority of users don't have a clue on what it is, or how to use it.

      IMHO only a subset of the intrinsic OS utillities can be properly used via the GUI. As an example I often want to transfer files from my digitial camera. The camera saves the files as "DSCF0001, DSCF0002, ...". Sometimes I want to move the contents of several memory cards into each folder. I have no quick way of renaming "DSCF0001-DSCF0056 --> Holiday0001-Holiday0002" via the GUI. In the CL, I just type "ren DSCF* Holiday*".

    4. Re:Mac OS X by bfg9000 · · Score: 2, Funny

      You know, I haven't seen a single article, on any topic, in the last 6 months where at least one person didn't try to sell me a Mac.

      --

      I'm not normally an irrational zealous dickhead, but I figure "When in Rome..."

    5. Re:Mac OS X by Durandal64 · · Score: 2, Interesting
      inux has done the same ever since X came into existance. Windows has always supported a command prompt too, just the majority of users don't have a clue on what it is, or how to use it.
      He said the best of both worlds, not "command line plus fucking ugly GUI." I like a lot of things about both Linux and Windows, but neither holds a candle to OS X.
    6. Re:Mac OS X by bdowne01 · · Score: 2, Insightful

      And assuming they're not on Apple's payroll, you just might have to step back and wonder if there's a damn good reason! :)

      --
      -brain
  3. 4Dos by swordboy · · Score: 3, Interesting

    Does anyone remember 4Dos? Between that and Qmodem, I learned a whole lot about computers.

    --

    Life is the leading cause of death in America.
    1. Re:4Dos by muffen · · Score: 4, Informative

      Remember??

      I still today spend way more time in a 4DOS (or well, 4NT) prompt than I do in the windows GUI.
      Virtually everything I do at work is done via 4NT BTM files (batchfiles that only work in 4DOS/4NT).

      The CMD line interface is really good, and it makes me a little sad that new computerusers don't realize this.
      Some things are just done so much quicker using the CMD interface...

      For example, I use multiple computers at work, and I have to transfer files between them all the time.. I do this using 4NT BTM's, and it takes a few seconds to transfer a file... doing the same thing in a FTP app takes much longer...

  4. Brilliant by jennifer_l · · Score: 2, Informative

    Wow, what a well-researched and interesting article. Will we be seeing 'newbie conversation' mode with the limited commandset (as used in the article) splashing across the desktop soon? Unlikely, I think, but this article puts the whole thing in a new dimension for me.

    I notice the author is multitalented -- he's also the genius behind Desktop Manager, a virtual desktops manager for Mac. Wow. If only I was single...

    1. Re:Brilliant by rjw57 · · Score: 4, Funny

      If only there was a -1: Author's Girlfriend moderation option...

      --
      Rich
  5. Command line is your friend by scsirob · · Score: 5, Insightful

    I find it amazing how many computer "experts" are dead in the water when the mouse doesn't work or the GUI doesn't come up as expected.

    Too bad only the "old-timers" seem to appreciate the power of the keyboard.

    --
    To Terminate, or not to Terminate, that's the question - SCSIROB
    1. Re:Command line is your friend by Anonymous Coward · · Score: 2, Interesting

      The thing is, I found windows to be far superior in using the keyboard in GUI applications. You can navigate completely without a mouse in Win XP something you really can't in KDE or GNOME.

      I also frequently use the start->run command, I never manually browse to a folder.

    2. Re:Command line is your friend by chunkwhite86 · · Score: 5, Funny

      I find it amazing how many computer "experts" are dead in the water when the mouse doesn't work or the GUI doesn't come up as expected.

      These same so-called "experts" tend to have MCSE certificates proudly displayed on their cubical wall.

      --
      I'd rather be a conservative nutjob than a liberal with no nuts and no job.
    3. Re:Command line is your friend by Tribbin · · Score: 2, Funny

      Nature has it's natural selection...

      Mouse-users will be less succesful in life because of RSI.
      The female would find the male less attractive because it has less to offer.

      In the end there will only be keyboard-users.

      --
      If you mod this up, your slashdot background will turn into a beautiful sunset!
    4. Re:Command line is your friend by BiggerIsBetter · · Score: 4, Funny

      She will also enjoy his strong and nimble fingers, whereas the lonely mouse user will have to find his own use for his strengthed wrist.

      --
      Forget thrust, drag, lift and weight. Airplanes fly because of money.
    5. Re:Command line is your friend by w1r3sp33d · · Score: 5, Funny

      And many of us still use the most powerful keyboard ever created, the IBM (super-clicky) Model M. The sound of these keys has been known to kill users at twenty feet and drive MCSE's mad.

    6. Re:Command line is your friend by adept256 · · Score: 3, Informative

      I couldn't agree more. I went without a mouse for two weeks using winXP. Why? Long story! Anyhow, I became so familiar with the keyboard shortcuts, I was soon using the GUI faster than when I was using a mouse.

      The keyboard shortcuts are faster (in general) than the mouse-work it would take to do the same thing. There are stumbling blocks, somethings are *impossible* with a keyboard, but on the whole I found a way to do most things. Getting the context-menu from an icon in the system tray isn't as fast as with a mouse, but it's not impossible. Selecting text in IE is impossible, but you can always 'view source' and copy from there.

      I still use a mouse of course! They're indispensible, but I'm not as reliant on it. I do shudder when I see someone take as many as 10 mouse-clicks in what can be done in 3 keystrokes. Yes, the keyboard is powerful, and under-rated.

      On-topic: I thought the whole idea of GUIs was to make the whole experience more 'user-friendly' for beginners. Maybe in the beginning, but looking around my GUI and it's myriad dispirit elements it's easy to see how a simple 'C:\>' would be a far easier to comprehend starting point for newbies.

      --

      I ran a benchmark on my quantum computer, now I can't find it anywhere!
    7. Re:Command line IS your friend by toiletmonster · · Score: 4, Interesting

      I do _not_ find it fun to spend hours clicking through obsolete, incomplete help dialogue boxes just to find out that I need to click a checkbox in some obscure dialogue box and have to guess if its the customize menu option or the options option and then click through all 15 tabs searching for the checkbox. Bonus points if the option is disabled or expects some obscure registry key to set. More bonus points if clippy or some other annoying dialogue box pops up asking if i'm really sure i want to do that. Double bonus if my program crashes and without an error message, or i get a bsod which outputs some cryptic error messages like "1962 Short School Bus", that don't even tell me what the **** went wrong there. Not to mention customizing a shell script is a lot easier than customizing a gui. Not to mention you can't script guis.

      Gimme a break. My time is too valuable to spend it on that kind of crap.

      Give me a CLI which has prompts me for the stuff I need to enter. If it's a file name, don't give me a file selector dialog where i have to manually click through 20 directores to find it. If I'm supposed to enter options, don't give me checkboxes, radio buttons, or drop down combos. And, ffs, give me an up to date help for it. And clear, humanly understandable error codes.

      And you know what? I'm surprised how much energy goes into defending the sacred right to produce crap code and piss-poor interfaces.

      Here's an idea: if half the time that went into whining about how the 80's graphical user interfaces are better for the user, went instead into throwing together a simple user-friendly shell script or learning how to use existing cli interface we'd all be far better off than we are today.

      Yearly millions of hours go into just learning to use some crap software. It isn't learning some l33t skillz, it isn't "getting a clue", it's just _wasted_. It's time when you're _not_ doing what you needed to do in the first place. Time where, like in the example above, instead of already having your file printed on that networked printer, you're still searching through obsolete help dialogues and trying stuff that fails for no obvious reason.

      look. point taken that for some people in some situations, point and drool might be better. i'm a cli advocate, but not for every situation. but a lot of the things you mention are just poor program design. i like having man pages and open source because if something doesn't work i've got real in depth documentation and if i have to, i can figure out what the heck is wrong. with a gui in a closed source world, you are just sol. even with a gui in an open source world, the code is more complex and less accessible. granted this is not for newbs, but it does help non newbs. and it gives newbs an option to become non newbs -- they can learn if they want. if they don't want, then hey nothing lost.

  6. purely anecdotally by Transient0 · · Score: 4, Insightful

    It seems to me that if you start someone on a command line versus starting them on a GUI they learn a little slower but acquire a deeper understanding of the computer.

    point-and-click and drag-and-drop don't encourage any actual understanding of ways in which a computer interprets commands.

    1. Re:purely anecdotally by Ubi_NL · · Score: 4, Insightful

      Don't you nerds get it??

      I don't WANT to understand how my computer operates internally, just as much as I don't give a toss for how my car or my phone works.

      I just want to type a friggin letter.

      (This is not a troll, but to show that slashdotters are not really a typical representation of the worlds population)

      --

      If an experiment works, something has gone wrong.
    2. Re:purely anecdotally by nickos · · Score: 4, Insightful

      "point-and-click and drag-and-drop don't encourage any actual understanding of ways in which a computer interprets commands."

      How does moving a file using the command line rather then dragging and dropping it in a GUI encourage "understanding of ways in which a computer interprets commands"? They're just different interfaces.

      If I install some speech recognition software on my Mums Windows box, will the new command based interface encourage "understanding of ways in which a computer interprets commands"?

      While most users who know how to use the command line also have a good understanding of how computers work, this knowledge is not the result of them having to use the command line.

    3. Re:purely anecdotally by JCMay · · Score: 2, Funny

      If that's all you want to do, would you not be better served by a correcting typewriter? There's less to figure out, fewer boxes to clutter your desk, and "ink refills" aren't $50 a pop!

    4. Re:purely anecdotally by Anonymous Coward · · Score: 5, Insightful

      The issue here is that while you have no desire to find out how your computer works, YOU STILL NEED TO. The common analogy is that people rarely would think it makes sense for someone to buy a car with no clue how it works, even if you only understand fail conditions.
      Before you say you have no idea, if you live in the US, you did have to a test before you were allowed on the road, if you recall, and in that bank of questions there are fail conditions, such as driving on ice, perhaps even dealing with bug related Emergencies ( The long test to pass driver's ed around here included some very amusing questions about what to do when you discover a bee in your car )
      However, people rely heavily on their computers and never try to learn basic fail conditions, like file location, full disk problems, uninstalling undesired programs, checking for updates. I'm not saying everyone needs to have a nitty gritty look at their kernel source, but you should know the difference between an ISP and AOL. You PAY for this stuff, you should have a vague idea of how it works and first steps on how to fix it when it breaks.
      If you happen to be a supreme fool that knows so little about your car that you can't tell how fast it's goings, whether the engine is running hot, how to tell if your brakes need servicing ( waiting for the grind counts ), or the meaning of any of those "little flashy lights" on your "long window thing the steering wheel is hooked under", I pity you and your genetic tree.

    5. Re:purely anecdotally by Zardoz44 · · Score: 2, Interesting
      I wholeheartedly agree. Despite being a male, I think this car is the way to go:

      Designed for Women.

      I don't need to assert my masculinity with a fast&furious Dodge Neon. I want a car that I can get in and drive. Does it need gas? Fine. Does it need washer fluid? Fine. Oil change? Give me an easy-to-access location for removing the old and adding the new. Point being, I just want it to work.

      This is the same with computers. I program them for a living, but when I want to use one, I just want to use it. I don't want to have to troubleshoot it every day. I don't want to have to wait 10 minutes for a reboot. I don't want to have to install patches 5 times a week. I want to turn it on like a TV and play a game. If I need more space, give me a (literally) plug&play harddrive that's no more complex than a flash card. I don't want to open the case and muck around with IDE cables and jumper settings.

      Ok. Enough ranting. I'll go back to work.

    6. Re:purely anecdotally by Anonymous Coward · · Score: 2, Insightful

      I see...you don't care about how the brakes work on your car...or how to operate the turn signals...or HOW TO operate the horn...or HOW TO operate the radio...or HOW TO operate the lights. You want a car that reads your mind. And a computer that reads your mind. Learning to operate a computer or a car involves PRECISELY the same thing. The difference is that a computer can do FAR MORE than a car ever will, hence it is MUCH MORE COMPLEX...get over it.
      If all you want to do is type a letter, buy a typewriter...

    7. Re:purely anecdotally by martin-boundary · · Score: 4, Funny
      Don't you lusers get it?

      We don't care that you don't want to know how your computer works. We like discussing interfaces and tech lawsuits. That's what we want to do, not type friggin letters or pay the bills over the internet. Different websites for different people. This is slashdot.

    8. Re:purely anecdotally by HeghmoH · · Score: 2, Insightful

      Bingo!

      People who don't understand how their car works beyond turning the ignition and pushing the gas are the type of people who drive their car for ten thousand miles without an oil change, and then scratch their heads when their car just up and dies. You must have at least a basic understanding of what's going on inside your car in order to be able to use it effectively. Yet many people are completely unwilling to invest an equivalent amount of time to gain an equivalent amount of understanding of their computer, and still expect to be able to use it with no problem.

      --
      Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
    9. Re:purely anecdotally by rbolkey · · Score: 3, Funny

      just as much as I don't give a toss for how my car or my phone works.

      Please change the oil in your car. And that rattling sound is your catalytic converter. The squeeking sound is your brakes. Just a heads up.

    10. Re:purely anecdotally by muckdog · · Score: 2, Insightful

      How does moving a file using the command line rather then dragging and dropping it in a GUI encourage "understanding of ways in which a computer interprets commands"?

      Feedback and the ambigousness of GUIs. "Did the drag and drop copy the file or move the file?" It depends. "Did it move my program or create a fucking shortcut for it in the new folder?" Not sure where you holding the shift key. The slowness of GUI also contributes to it too. How many time have you clicked on the X to close a windows when it doesn't close right away?

      With a command line you type move or copy and then the computer does it. Many command are simple. If it fails it comes back with an error

    11. Re:purely anecdotally by yoz · · Score: 2, Insightful

      The issue here is that while you have no desire to find out how your computer works, YOU STILL NEED TO.

      Why?
      Oh, you're not actually going to tell me, are you? You're just going to give me yet another tired car analogy.

      Before you say you have no idea, if you live in the US, you did have to a test before you were allowed on the road

      Yes, I did (in the UK) because CARS CAN KILL PEOPLE. It's perfectly good and sensible to ensure that people know the rules of the road before they take to it. However, the rules of the road and the workings of the internal combustion engine are two utterly unrelated things.

      Do you know how your microwave works? I mean, really? Because you shouldn't need to. Besides a couple of key rules to stop it blowing up (i.e. don't put any metal in there, or kittens) there is no need that I can see to understand what "the polarisation frequency of water molecules" means.

      The whole point of appliances is to make complicated tasks simpler by hiding all but the most necessary complexity. A computer is an information appliance, and I shouldn't have to know about i386 opcodes and hard disk platters in order to use one.

      You know, if we were having this argument ten years ago, I bet you'd have told me that it was utterly vital that I understand all the IRQ settings of my hardware, and that if I was arguing against having to know such madness then I'm clearly a moron who can barely type for all the dribble in the way. Well, thank god that someone disagreed with you and invented Plug and Play, the whole point of which is to stop me having to worry about that shit. And in response to your next point, yes, PnP can go wrong, just like a billion other things that keep me having to carry around a hundred manuals in my head, but it hasn't. If it does, I'll learn about it then.

      The fundamental point is this: Computers are designed to execute software, and software is the embodiment of someone else's expertise which abstracts away the difficult parts of simple tasks. We should be trying to make sure that operating systems get better at keeping the problems away from the user, rather than having to teach the user about all the problems. Because some of us have actual work to do.

    12. Re:purely anecdotally by dasmegabyte · · Score: 3, Insightful

      Whoa. The guy said he doesn't want to know how his computer works. He didn't say he didn't want to know how to prevent it from breaking. These are two completely separate things. Ignorance of the mechanical engineering of combustion engines does not preclude following a maintenance schedule, in fact my wife (who knows NOTHING about cars) is far better at maintaining her car than I am at mine, because she knows when to defer to authority.

      You see, this is the problem most everyday people have. They want to run a computer, perform tasks, and prevent themselves from running into problems. And when they ask how, the average "computer guy" starts running down lists of commands and protocols and the history of DOS. These things are excellent trivia, but they're not analogous to what you're saying here. The end result is this: the computer looks more complex than it is. And complex things are hard to use, right? So why bother?

      You can show somebody how to use Uninstaller and Windows Update without showing them the command line, and in far less time. In fact, I can't imagine where either of these functions, essential to the use of a GUI based machine, has any real bearing in the command line. Certainly I've never Run->CMD to get rid of that stuff...

      Using the command line doesn't make you any more knowledgable about how to secure a computer or choose an internet provider than knowing how a carburetor works tells you how many miles you can drive on that loose bearing before it seizes. People who know their shit about cars still have engine problems and get into accidents. They still pay the same blue book value to get the car fixed. They're just better at explaining the problem.

      --
      Hey freaks: now you're ju
  7. Ah the command line... by Xpilot · · Score: 5, Funny

    Apprentice: "What is that, Master?"

    Master: "It's a command line. The instrument of a Unix Programmer. Not as random or clumsy as a GUI. An elegant interface for a more civilized age. Before the dark times. Before...Microsoft!"

    --
    "Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
    1. Re:Ah the command line... by Xpilot · · Score: 2, Offtopic

      Can't blame this one on Gatesy. Three guys are at fault here; two named Steve, the other named Xerox.

      They invented the GUI but they didn't demonize the CLI the same way Gatesy did. And Apple now has a Unix shell in OS X, so they have redeemed themselves.

      I wonder why my post was modded down though. Must be a lot of humorless Microsoft apologists in the audience today.

      --
      "Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
  8. Well by odano · · Score: 5, Insightful

    I believe it is because the command line is very simple and compact, single-threaded and simple to understand.

    Modern GUIs have many things going on at once, which can confuse people who have no idea what is going on. Windows pop up, there are icons to deal with, they have to search through endless menus to find what they want.

    The command line however has simple command to remember instead of complicated graphical procedures, and the status of the command line really never changes. If you mess something up, you are still back where you started, but in the GUI, a user could close a window to open another one which obviously confused people who don't understand what they mean.

    1. Re:Well by SvendTofte · · Score: 5, Interesting

      Sounds like the people here have no idea what makes GUI's so powerfull.

      1. State. You can (should) always at a glance be able to see what state the system has. With a CLI interface, there's simply no state. It's a command execute cycle forever.

      2. Exploration. Simply exploring a program, by seeing what it menu's contains, is a very easy, and intuitive way of exploring. CLI's have none of this.

      3. Rote memorisation. There is no motor memory when using the CLI. You must remember the syntax of commands 100% accurately. GUI's support "knowlegde in the world", as Norman puts it. Consider a door handle on a door, it has an obvious way of being used. Staring at "~$", is so very different.

      4. Easy reversal.

      In fact, the benefits of GUI's over CLI's are so many fold, I won't bother with digging out the literature.

      The command line has only one advantagde, it's speed, and the possibility of executing extremely complex commands. Both not things newbies are well known for.

      "To master modern GUIs, one must recall the operation, layout and relation to each other of hundreds, if not thousands, of such panels."

      Funny, I thought that was the same with CLI's. With a GUI, the GUI can at least support exploration of the interface. Click that arrow down, see what happens. A CLI can do none of these things, unless you consider adding random letters after a command, to be "exploration" ...

    2. Re:Well by SvendTofte · · Score: 2, Funny

      Also, don't forget the modus operanti of Unix tools on succesfull operation. No feedback...

      How the hell do you have a dialogue with someone who won't talk with you?

    3. Re:Well by martin-boundary · · Score: 4, Insightful
      Maybe in the beginning with windows 3.11. Unfortunately, times have changed. GUIs like WinXP are so complex and arcane, your points are no longer valid.

      1. State. With five windows open at the same time, four taskbar icons demanding attention, and background downloads and let's not forget Clippy, the state of the machine is so complicated to figure out it's impossible for a newbie. And then of course the state changes rapidly that it's not even worth figuring it out until you're a power user. for example, you accidentally click on another window and the whole current state is now with reference to the new window. That's hard.

      2. Exploration. Do I look for the command in the File menu, Tools menu, toolbar, right click context menu, shift right click context, properties panel under a seemingly unrelated program function, right click on the taskbar icon? What? By the time I've gone through all possibilities unsuccessfully, I might as well have typed several different commands at random. Same difference.

      3. Memorisation. With a modern cli, I have just as many reflex actions as with a GUI. Whereas I routinely right click on objects, I routinely press tab on the shell.

      4. Easy reversal. That's totally application dependent, and independent of GUI vs CLI.

      There's no "ease" advantage to GUIs these days, unless you consider locked down internet kiosks the paragon of graphical technology. Both interfaces are equally hard at the very least.

    4. Re:Well by martin-boundary · · Score: 2, Insightful
      I'm not kidding.

      1. State. With multiple applications open, taskbar icons, etc., it is actually *easier* with a GUI. Try monitoring these app states otherwise, e.g. ps
      Call me old fashioned, but if I want to know how all my apps are doing, I'd rather have a list (eg ps or task manager) instead of looking around all over the screen, under a window here, in an animated scrolling thingy there. But anyway, I'm not a newbie. For a newbie, one thing at a time is better than lots of things at once.

      2. Exploration. Sure you can type different commands, but the combinations are endless. With a GUI at least you're steered in the right direction. Try ImageMagick vs Gimp as an example.
      Try teaching your mother/grandma about how to navigate with a mouse. Identifying and manipulating the icons, not messing up and accidentally resizing, not losing the menu focus because the mouse moved out... There's endless combinations of things they could do that are useless, unless they are taught the few things that work for the task at hand. Same as knowing the few cli commands which work for the task at hand.

      3. Memorisation. You can't use tab-completion on command options. Quick -
      Yes you can. Check out the bash programmable completion project on freshmeat. But anyway, your example shows a strength of the gui. Here's a strength of the cli: quick show only files which end in .bat and contain the number 2003: ls *2003*.bat in a cli, impossible in a gui. Quid pro quo.

      4. Reversal. As I said, depends on the apps. Maybe you use more GUI apps than CLI apps, so you see more reversal in the GUI.

    5. Re:Well by martin-boundary · · Score: 2, Insightful
      It sound like you're making an argument for simplified GUIs, not for the virtues of the command line.
      To each his own, I say. I just wanted to point out that the GUIs people are exposed to these days tend to be so complex that the CLI has a newfound advantage. "GUI is easier" no longer makes sense in the general way it did ten-fifteen years ago.

      There is a natural progression from simple GUIs to richer or more complex ones. A typical user who has mastered a browser and moved on to a more
      Absolutely. As people become more proficient, let them use whatever they like and do whatever they can. That doesn't change the current difficulties for newbies, which is what the article is about.
    6. Re:Well by tootlemonde · · Score: 2, Interesting

      The implication of the article is that GUIs are a mistake of monumental proportions. All of the original testing at PARC and Apple were fundamentally flawed and the computer industry has blindly charged ahead on a false conclusion.

      The fact that the author of the article had such success teaching the command line almost certainly more a tribute to his teaching skills and enthusiasm than virtues of the CLI. There's no question you'll learn more about using the computer from a good teacher than you will from GUI.

      The irony that using a GUI is necessary to read his article should not be lost. Even reaching the article from a command line would have required typing in a 41 character url with no errors.

    7. Re:Well by poot_rootbeer · · Score: 2, Interesting

      1) CLIs have state too. If there's a prompt, the computer is waiting for your input. If there isn't a prompt, the computer is busy doing the last thing you told it to do.

      2) If you want to explore, RTFM. The idea that a tool and its documentation need to be integrated doesn't make sense to me -- do hammers come with a "how to drive nails" pictorial pasted to the handle?

      3) There is certainly motor memory involved with CLIs; you use motor skills in your hands to type, don't ya? After years of CLI usage, frequently-used commands such as `ls -l` flow from my fingers without conscious thought. My fingers have typed that string of characters so many times, it's imprinted in motor memory.

      4) Easy reversal requires conscious effort on behalf of the software designer, whether it's a GUI or CLI tool. It's not a design consideration that's endemic to one or the other.

  9. Sure, for computers, for now by ObviousGuy · · Score: 4, Interesting

    But you think a command line would make using a digicam easier? A microwave? A thermostat?

    The computer as a non-specific device is a fundamentally flawed (though useful) contraption. The command line, GUI, and other UI creations are all hacks to help users get around the problem of genericity of the machine.

    As computers get more powerful and more 'intelligent', computer user interfaces like these will wither away and something more straightforward like controls for a camera, microwave, or thermostat become the primary UI of the computer. This means that innovations in computer operating system design must be made so that the OS can guess what the user wants to do and present an appropriate, simple interface.

    I really look forward to the day when the concept of the PC disappears.

    --
    I have been pwned because my /. password was too easy to guess.
    1. Re:Sure, for computers, for now by rduke15 · · Score: 4, Insightful
      But you think a command line would make using a digicam easier? A microwave? A thermostat?

      I don't have either of those, but I often felt it would make the setup of my TV much easier:
      # move 14 15
      # move 28 14
      # tune 12 S25
      # tune 13 C35
      # describe 14 CNN
      # show channels
      ...
      14 CNN S25
      15 BBC C12
      ...
      ("S25" or "C35" being channels as listed on the cable provider's web site. Not sure if it looks similar in the US.)

      or my VCR:
      # record 14 today 21:05-23:00
      # record tomorrow 15:00-16:00
      Error: missing channel number.
      Usage: record channel date starttime-endtime
      # record 14 tomorrow 15:00-16:00
      But that will be easy when I replace my old VHS with a Linux PVR, I guess... (or will it?)
    2. Re:Sure, for computers, for now by Cybrr · · Score: 2, Funny

      Twist those knobs! Twist those knobs! You! Pull some levers! Pull some levers!

      --
      Why did GEAR crush RDP?
  10. I'd be willing to wager... by Millennium · · Score: 2, Interesting

    I'd bet that the CLI is probably easier to learn for a complete newbie to computers in general, but a GUI probably easier to learn for anyone new to a given application.

    More intelligence in either interface would certainly be a Good Thing, however.

  11. Command line is more consistent by AtariAmarok · · Score: 3, Interesting

    In my experience, the command line is more consistent, especially if you are telling someone to do something. Once you get into it, it just a matter of saying "press A, then press ., then...."

    With a GUI, there is a lot of hunting and squinting and guessing: basically, the stuff is never in the same place and never looks the same from one machine to the next.

    --
    Don't blame Durga. I voted for Centauri.
    1. Re:Command line is more consistent by LarsWestergren · · Score: 2, Informative

      With a GUI, there is a lot of hunting and squinting and guessing: basically, the stuff is never in the same place and never looks the same from one machine to the next.


      Well, I like using the command line, but to be fair, there are lots of inconsistencies there too.

      * Standards for command parameters. For instance, using a command recursively, sometimes the flag is "-r", sometimes "-R".
      * Always use a dash to separate command flags from file names. Except for the exceptions like tar: "tar xzvf filename.tar"
      * Differences between unixes and Linux. "df -h" gives you human readable disc sizes in Linux (50G) and an error message in AIX.

      Also, while I agree command line commands are more convenient at first, it is easier to remember GUI moves if you have been away for a while. When using an old FTP program I haven't used in years, I can quickly remember the steps I need to take to configure and get started, I hardly need to read the text on the buttons or menues. But when its time to do something on the command line I haven't done in a while, its much harder. "Ok, setting up a new CVS repository. was it 'cvs init', or 'cvs -i' or something else? Do I have to set the CVSROOT environment variable first, or was that just for the clients...?"

      The POSIX standard with "--help" "--verbose" and so on makes it easier to use and remember commands, but doesn't solve everything.

      --

      Being bitter is drinking poison and hoping someone else will die

    2. Re:Command line is more consistent by Chanc_Gorkon · · Score: 2, Interesting

      I have made this point time and time again. Here's the steps in GUI and CLI of finding a file in a directory listing and showing it's properties:

      GUI
      1. Hunt around for and click on your file manager icon.
      2. The file you are looking for is called foo. It is in a subdirectory calld bar. Click on the subdirectory called bar in your home directroy (most file managers will put you there when you fire them up).
      3. Look for the foo icon. Right click an pull up properties.

      CLI
      1. Type pwd to make sure you are in your home directory.
      2. You have already been told the file is in directory called bar. To make sure that bar exists type:

      ls -al

      3. Now to get the listing AND show the properties, type in:

      ls -al bar

      Both of these took about the same amount of steps but I guarantee you the CLI version too much less time. In GUI's you spend alot of time mousing around trying to FIND the File Manager while the File Manager in a CLI is you. In a CLI, if you have not loaded X, you are already at the prompt and ready to go. You don't even have to open a terminal if X isn't loaded. You don't have to run anything until your ready and as soon as you input it, it spits it back out...no messy refreshes.

      --

      Gorkman

  12. Interesting by sniggly · · Score: 4, Interesting
    When I installed a linux desktop for my mother about a year ago the trouble she really had was with the concept of the mouse and clicking. That the motion of the mouse in horizontal space translates into motion of an icon in vertical space, that a click OR double click means activation... She had to learn all those things and it took a while. The whole idea of icon and menu based computing was new to her and still isn't demystified.

    When she worked she worked with DOS based programs. I guess now these are so much easier to understand because you actually "talk" to the computer albeit through a keyboard and with a very limited command set. Maybe the mouse driven GUI is a bad inbetween step from the keyboard-only days to a time when computers understand conversation.

    One of the things I really miss when I sit behind a windows computer is a bash shell, tab completion, gcc, vi... and you usually arent allowed to install cygwin on people's systems :)

    --
    Of those to whom much is given, much is required.
  13. Microsoft demonized the command prompt... by Xpilot · · Score: 5, Insightful

    ...as part of its Win95 hype machine. Microsoft likes to point out that pointy-clicky is sooo much easier than the "arcane" and "cryptic" command prompt, and tried as hard as possible to hide it. Microsoft certainly didn't try to improve its command prompt much, and even in modern version of Windows it still retains a lot of its retardedness inherited from the early days of DOS.

    The question is, why? Sure, newbies hate it, but it's really useful to have a powerful command prompt, so it wouldn't hurt to include it. Even Macs have them now. Windows would be much more tolerable if it had a Unix-style command shell out of the box. Yet Microsoft feels the command prompt should die and it seems (at least from my point of view) that it's included only grudgingly in the OS.

    --
    "Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
    1. Re:Microsoft demonized the command prompt... by nickos · · Score: 3, Interesting

      look here http://slashdot.org/articles/02/12/29/1349230.shtm l?tid=109

      An anonymous reader writes "I found this while searching for Perl Jobs in India:
      "The Microsoft Next Generation Shell Team is designing and developing a new command line scripting environment from the ground up. The new shell and utilities, based on the .NET Frameworks, will provide a very rich object-based mechanism for managing system properties. To be delivered in the next release of Windows, it will include the attributes of competitors' shells (e.g. aliases, job control, command substitution, pipelines, regular expressions, transparent remote execution) plus rich features based on Windows and .NET (e.g. command discovery via .NET reflection API's, object-based properties/methods, 1:many server scripting, pervasive auto-complete)."

    2. Re:Microsoft demonized the command prompt... by Big+Nemo+'60 · · Score: 3, Informative

      ...and oddly enough, (a) Microsoft added some sixty (!) command-line functions in Windows Server 2003 and (b) "Longhorn" (ETA most likely 2006 by now) is due to have a *NIX-grade Command Shell (IIRC the codename for development is "monad")

      These tools seem mostly geared towards system and network administrators and such. However, looks like they have changed their mind a bit on the matter...

      --
      In the long run we are all dead. - John Maynard Keynes (1883 - 1946)
    3. Re:Microsoft demonized the command prompt... by Chris+Burke · · Score: 2, Funny

      A friend of mine once said something along the lines of: "Eventually Windows will have everything UNIX does because developers will demand it."

      Well, looks like he was right. Good call, dtowne!

      --

      The enemies of Democracy are
  14. Old Timers Favourite?? by ashwinds · · Score: 2, Interesting

    My dad is all of 64 yrs. When he started on computers a year ago - he started with Linux (the man does not know the "windows-way". One of his early observations was that it was easier for him to learn the command line and keyboard shortcuts. He could list these on a peice of paper and run thro' whenever he ran into trouble/forgot. Of course now he is on KDE 3.2 and seems fine with the GUI...

  15. Re:Unix CLI is NOT easy by BassKnight · · Score: 2, Informative

    You can configure the shell to work with more confort with the case sensivity issues. Gentoo comes with tcsh preconfigured to behave like that. IMHO i don't find case-sensitiveness an annoying issue, rapid fingers and the blessed tab-autocomplete do the work easy for me.

  16. True Story by ellem · · Score: 3, Interesting

    Had a Fujitsu laptop, like a P133, in 1998(?) and I loaded Redhat 6.0 and could NOT get the Xserver to work. I spent about 6 mos (now and again) at the command line putzing around on tryng to get the Xserver working. In that time I learned more about Linux AND Windows than I ever knew even existed. Suddenly alot of Windows oddities made sense... in the sense that I got what they were _trying_ to do. And it left me with a hollow feeling whenever I used Command... Why doesn't Windows have...

    --
    This .sig is fake but accurate.
  17. more memory intensive though by jago25_98 · · Score: 2, Interesting

    It may be more logical,

    but it's more memory intensive - visuals are easier to remember. Well, I find it easier to remember visuals rather than words.

  18. Push The Power Of Combining Commands & Scripti by pandrijeczko · · Score: 3, Interesting
    I developed an training course at work to introduce Windows-orientated users to Linux.

    From the word go I had them "cat"-ing, "sort"-ing, "grep"-ing and "cut"-ing files, showed them how to combine commands on the command line and how to turn them into shell-scripts.

    The guys I taught were, like me, support engineers on Linux-based telephony products and were keen on learning how to strip relevant info from log & text files.

    Within a couple of weeks they were churning out pretty good shell-scripts that were extracting info from files all across the system, "gzip"-ing them up and mailing them off automatically in cron jobs. Many of the commands they used in the scripts I'd never even mentioned in the training but had showed them about man pages and "find"-ing files on the system.

    The moral behind the story is that if you give people enough of the basics, they'll soon go find problems they need to solve and work out their own ways of doing it.

    --
    Gentoo Linux - another day, another USE flag.
  19. Full screen editors rock by MagerValp · · Score: 5, Funny

    **** COMMODORE 64 BASIC V2 ****

    64K RAM SYSTEM 38911 BASIC BYTES FREE

    READY.
    #


    Now that's newbie friendly.
    --

    READY.
    #
  20. MS-DOS by MalaclypseTheYounger · · Score: 2, Interesting

    All I can say is that I am an old school MS-DOS guy, and it constantly drives me nuts when I see people using Windows Explorer to find a file, select it, go to the menubar, select Edit, Copy, and then navigate to a different directory in Windows Explorer, menubar, Edit, Paste.

    Maybe it's because I type 80wpm (at least when doing sysadmin work in MS-DOS I do), but things I do in MS-DOS seem to take 50-75% less time than to do similar tasks using a mouse & windows only.

    --
    Check out the best P2P sharing website: MEDIACHEST.COM
  21. Other Newbie Terms by Digitus1337 · · Score: 2, Funny

    Name Called By:
    -Noob -Ghost Recon/Console Gamers
    -Newp -RPGers
    -Nub -CSers
    -Nubby -''
    -Nubzy -''
    -Pub -''
    -Pubber -''
    -CS -Gamer

  22. Re:Unix CLI is NOT easy by oingoboingo · · Score: 2, Informative
    The Unix/*nix/*nux CLI is not easy. It is a major design flaw that the file name "jones.txt" is treated different than "joNes.txt".

    This is not true on OS X. The default filesystem is case independent.

  23. For example of ease of commandline usage. by Anonymous Coward · · Score: 4, Insightful

    Configure the DNS server address staticly:

    In windows:

    Goto start --> start --> control panel --> networking --> select the correct device --> options (or whatever I don't f-ing remember) --> select TCP/IP --> select options --> hit the DNS tab --> Select "I want to specify dns addresses bullet --> type in ip address in the boxes.

    Networking specifications are spread throught 100's of dialogs and wizards. Some can set conflicting settings, some can override the settings of others. Some are grayed out to prevent these conflicts and you need to figure out why. All system wide configs are stored in the same place as program specific configs and user configs. If any program or installer corrupts this one binary file it will render the entire OS unusable.

    In Linux (if the dns server is 192.168.1.1:

    echo "nameserver 192.168.1.1" >> /etc/resolv.conf

    Remember resolv.conf because DNS is to resolv the URL names into ip addresses. System wide configs are stored in plain text files in /etc/ directory. If any of these configs get corrupted you can edit them manually to fix them, or copy originals from packages, or copy them from another source and edi them to fit your needs.

    1. Re:For example of ease of commandline usage. by KJKHyperion · · Score: 2, Insightful

      OK, I'll bite.

      First, news flash: Windows comes with sensible defaults. Dialogs are meant to be a one-time annoyance, and they are long and winding because you need to get it right the one first time and then forget it. Things go wrong? doesn't happen so often, so you should be able to orient yourself without needing to have taken notes months ago, when you set it up.

      Second, configuring networks by hand is an obsolete concept, so it's nothing that should be toted around so proudly. Part of the sensible defaults in Windows is DHCP support, and there's really no reason not to use it (is there? sucks to be you. You'd have to do extra work anyway). But I digress.

      Third, Windows isn't a free ticket for one-sided ignorance and lazyness. It may be so around your circles, it isn't if I'm nearby (who am I? I'm your worst nightmare come true. I know what's the difference between %ENVVAR% and !ENVVAR! in the Windows command prompt and I can quote the XSI standard by heart and install bootsectors by hand with dd, complete with setting disk parameters. I'm the two-headed computer guy, and I'm your nemesis, my dear monochromatic Linux wimp). Do you consider yourself a person open to exploration and self-education? you aren't if you moved away from Windows because you just didn't get it. You may like repeatedly submitting yourself to the masochistic practice of routinely wading through configuration dialogs, it's not my business. Different strokes for different people. We who use Windows not only as a dubious source of sordid personal pleasure, instead, prefer to sort out networking matters with the "netsh" command, in the rare event that something isn't taken care of by DHCP. Free hint: try "netsh interface ip add dns", and please resist soiling your underwear.

      Fourth: I use Windows exclusively and I still understand UNIX better than you (add "nyah nyah nyah"s at will). What makes text files great is that you can put them under version control, the rest is just "ain't it cool". And I won't even begin commenting on your utter lack of understanding of the Windows registry (whooops! hope this doesn't count as a comment), because I have an unfair advantage.

      --

      Make a difference - use Windows! (open source clone of Windows NT)

  24. Only for English speaking newbies by poszi · · Score: 4, Interesting

    I did some teaching of command line for non-English-speaking students and the biggest obstacle was the language barrier. They couldn't remember the command and they didn't understand the output of the command. Even if they knew some English, there were always some technical terms they couldn't understand and they felt intimidated. This way they were much more efficient in a localized GUI.

    --

    Save the bandwidth. Don't use sigs!

    1. Re:Only for English speaking newbies by SoTuA · · Score: 2, Informative
      This way they were much more efficient in a localized GUI.

      And how is it different from a localized CLI? Ever hear of a little term called "i18n"?

      user@server:~/> cd /root

      /root: Permiso denegado.

      As for technical terms, that's going to scare somebody who doesn't know it, wether it's in his language or not. ("procesos" is as scary to my mother as "processes").

    2. Re:Only for English speaking newbies by poszi · · Score: 4, Insightful
      user@server:~/> cd /root

      /root: Permiso denegado.

      Yes. But the command itself is not localized ("cd = change directory"). There is no localized command "zk = zmien katalog".

      --

      Save the bandwidth. Don't use sigs!

  25. I am office suite, hear me roar by Uggy · · Score: 4, Insightful

    from my web log, I think it's appropriate and strangely enough, quasi-religious...

    We all strive to be big monolithic programs, with fancy buttons, big memory footprints, environments where people, if they want to do anything, must go through us. We strive to be pre-eminent on the desktop, world stage. We crave fame. Look at me we say. Look how important I have become. I am an Office Suite, hear me roar. Look how much I can do. If you want to do any work, you must come through me.

    [snip]

    We must teach our brethren the ways of the Unix shell, for if we don't we will forever be trapped handcuffed in that big shiny plastic bubble of modern life, where we see but we can't interact. We must go back, back to the beginning and learn the first lessons.

    --
    Toddlers are the stormtroopers of the Lord of Entropy.
  26. ObOldJoke by Ethelred+Unraed · · Score: 3, Insightful
    Who is this General Protection Fault, and what's he doing reading my hard drive?

    That said, it would be rather helpful if command-line tools would actually communicate more in plain English. Most of the commands and responses were meant to save keystrokes and be brief, and were written by geeks for geeks (so to speak).

    Why write "Segmentation fault: core dumped", rather than, say, "Sorry, this program has unexpectedly quit because of a programming error"? In other words, worry less about technical accuracy in error messages and concentrate more on making the computer and OS more understandable to non-technical people.

    I'm not saying bash or the other shells should be re-written that way, but it would be nice if a more newbie-friendly CLI was around.

    Cheers,

    Ethelred

    --
    Everyone wants to be Ethelred. Even I want to be Ethelred.
  27. Building a better shell by arevos · · Score: 5, Interesting
    Interestingly enough, I'm designing a shell for my final project at Uni. This is a pretty useful article, all considering. I was originally designing the system to be more easy to use for powerusers, but perhaps there's a niche for newbies too.

    Before, I was concentrating on the syntax of control structures. Like having:
    if ($value == 1) { echo hello }
    for $i (1:10) { echo $i green bottles }
    Rather than:
    if [ $value -eq 1 ]; do echo hello; fi
    for i in `seq 1 10`; do echo $i green bottles; done
    I could think about adding in a better help system as well. I've got a few months left of design work.

    And I need to fix the lexer, too. In a recent presentation, I found a rather embarrassing bug. The concatenation operator in my shell is the same as perl's, the full stop, or period, ".". Cleverly, the shell can also treat numbers as strings and strings as numbers.

    Unfortunately, it was all a bit too clever.

    The expression 3.0 + 2.0 was parsed as (("3" . "0") + 2) . "0"). Giving 320. Oops!

    But given a little more work, maybe I could get it to solve some of the problems mentioned in the article above. Could be an interesting thing to do.
    1. Re:Building a better shell by hey! · · Score: 2, Interesting
      The historical problem with the Unix shell has been inconsistencies in the way commands specify options.

      What newbies need are not a better shell, but more standarization in the grammar and option specifications and better access to help. Over time the way Unix commands specify options has improved greatly, but for newbies (and some not so newbies) it would be better if this process were taken even further. For example, there are already some commonly used options like "-f" for choosing a file or "-o", but these are not very consistently used, and utiltity writers are pretty much free to define them to do something other than choose a different file for processing or output destination. In other words, utilties need a common grammar and lexicon.

      Additionally, a GUI editor to build command strings would be helpful. You could build your line, but float your cursor over a command to bring up the command's help information in a separate pane, with options to browse to linked pages etc. You could enter a longish option at the insertion point by double clicking on it in the help pane, or select/drag to the desired point. When you'd finished your command, you'd hit an "Enter" GUI button, or reset focus on the command pane and hit "Enter". If you never needed help, you'd just never take you hands off the keyboard and it would flow like a normal terminal window. Maybe F1 would toggle the help pane.

      If I were to extend the shell for newbies, I'd extend it by creating something like a clipboard -- an area to which intermediate results can be sent or retrieved. This would mean they wouldn't have to think out an entire pipeline in advance. Naturally, you can use temporary files for this purpose, but this would be something session specific so you wouldn't end up cluttering up your directories, and it could be accounted for separately from disk quotas. This will also tend to reduce accidental overwriting of real files. Add undo and redo, and users can recover from individual missteps.

      For example, suppose we reserved the upper case letter C for our clipboard, we'd support something like this:

      $cat f1 > C
      Clipboard updated.
      $grep bar C | wc -l
      0
      $sed s/foo/bar/g <C >C
      Clipboard updated.
      $grep bar C
      candybars are my favorite bard.
      $undo C
      Clipboard rolled back
      $grep foo C
      candyfoos are my favorite food.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  28. Ease of Use by 16977 · · Score: 2, Interesting
    When I was a kid, my parents had a DOS-based computer with an early version of Quicken and a text editor that they used to write letters. Now they have a newer computer that runs Windows XP, but they still prefer to use the older programs.


    If I was to teach someone Linux, I would definitely teach the command line first. When there are just a few programs you use, it's easier to memorize their commands or keyboard shortcuts than it is to hunt through a menu each time. E.G., if all you want to do is play Pac-Man, you can either a) Hunt through the menus to launch gRustibus, wait for it to load, scroll through the gamelist until you find the right version of Pac-Man, and double-click the name, or b) type "xmame pacman" at the command promt.

  29. Perfect Example - ImageMagick by Gothmolly · · Score: 3, Informative

    bash$> for tif in `ls *.tif` ; do convert $tif -border 50 -bordercolor \#FFFFFF -quality 100 -scale 25% -resolution 96 `cat $tif | cut -f1 -d"."`.jpg ; done

    Put THAT in your GUI.

    --
    I want to delete my account but Slashdot doesn't allow it.
    1. Re:Perfect Example - ImageMagick by ScRoNdO · · Score: 4, Informative

      Well, that would be better:

      for image in *.tif; do convert $image -border 50 -bordercolor \#FFFFFF -quality 100 -scale 25% -resolution 96 ${image%.tif}.jpg; done

      no need to do `ls *.tif`, and the bash specific construct ${image%.tif} removes a trailing occurence of the word '.tif' from the string $image

    2. Re:Perfect Example - ImageMagick by JKR · · Score: 2, Informative
      OK. Open Adobe ImageReady and create a history script of the actions that you want to perform, using a sample image. Note that because it's a GUI application you have immediate visual feedback, and will thus get it right. Now export that script as what Adobe call a "Droplet", setting default options for output file naming, directories etc. Now, using your file explorer, drag and drop the files you want to convert onto the droplet.

      Your point, caller?

      Jon.

    3. Re:Perfect Example - ImageMagick by Carthag · · Score: 2, Funny

      Something like this (v. quickly done, so might not be exactly what you're doing)

  30. Good UI vs. bad UI, not GUI vs CLI... by dpbsmith · · Score: 5, Insightful

    The pity is that GUI usability peaked sometime in the late eighties and has declined since then, as the rise of "computer literacy" has created an expectation that users will master complex UI's, and the rise in computing power has removed any barriers to marketing-driven featuritis.

    The most telling point was the discussion of "discoverability." "Discoverable: The interface must, from first switch on, provide a clear direction for a new user to go. At each stage it should encourage experimentation while providing adequate notice of important or key features."

    In the 1980s, GUIs were intentionally designed to facilitate discoverability were far more "discoverable" than CLIs of the day. They were also intended to be forgiving. The user was supposed to feel empowered to try things, confident that there was always an "undo" to bring them back. On the Mac in the 1980s, "Undo" was far more prevalent and worked far more consistently than in today's software, in which many operations commit you to something whose effects you may not understand.

    As for "dialog," UI designers understood that well. Why do you suppose that what are now called "screens" were once called "dialog boxes?"

    What the article is really saying is not that CLIs are better than GUIs, but that a) modern UIs are not catering to the needs of the average user, and that b) modern UIs have gotten so badly designed, cluttered, and complex that they have become less usable to beginners than CLIsbecause GUIs have deteriorated, while CLIs have benefitted from benign neglect.

  31. This is a joke, right? by marvin_pa · · Score: 2, Funny

    I see a sysadmin speaking. Nobody else in their right mind would dare to call the command line a user interface.

  32. Obligatory IBM Model M link by oneiros27 · · Score: 5, Informative
    The Model M is still being made, under a different name, but you can now get them with a 'windows' key, or even in black.
    http://www.pckeyboard.com/customizer.html
    --
    Build it, and they will come^Hplain.
  33. Interesting, but untrue? by Lewisham · · Score: 3, Insightful

    This is certainly a very interesting idea, and has good points to it. I would hazard, however, that the CLI is most definitely not the way to go to get new users up and running with computers. The author is almost there in his article, but doesn't seem to make the leap...

    Using the example that the author used, he says Tilly multitasks, but doesn't do more than one thing at once. When she wants to leave something for later, she puts it to one side. This is an almost exact description of minimizing windows. It isn't suspending programs, or moving them into the background, like UNIX. It's just putting what you're doing out of the way for the moment.

    Tilly goes to the grocers and tells him what she wants. Why not point at what you want? I want my mail, click the big envelope. I want to type something, click the Word icon.

    It's arguable that some of the easiest programs that run in a terminal are those that are like GUIs, just without the mouse. Pine is a perfect example. It has labelled buttons at the bottom, except you interact with them using your keyboard instead.

    GUIs are still the best way of getting general users interacting with computers, it's just certain elements of GUI design that scares them witless. Working on a helpdesk for my University residential network, I reguarly hear what could almost be called fear in a voice when a dialog box or something pops up that I didn't expect, and warn the user was going to happen. GUI design is very imperitive. Boxes appear saying "DEAL WITH ME NOW" and giving themselves the utmost importance. This is what scares people. They think that because something took the time to alarm them in such a massive way, something amazingly bad must be happening. These windows often pop-up from applications that aren't being worked with. By preventing these, everyone would be a lot happier. The Mozilla new mail notification is an absolutely excellent way of telling the user something is happening, it pops up in the corner, says there's some mail, and disappears. It doesn't ding. It doesn't grab focus. It doesn't appear in the middle. It just gives you a quiet hint.

    GUIs are also far too ready to boot up programs of their own accord. When users get notifications from something they didn't run explicitly, they get the fear. CLI doesn't do that, it only shows you output from things you've done.

    The author says that users are scared to click buttons, in case of something going wrong. But they feel that a CLI can't do any harm. Users *do* want to point and click their way around buttons, and GUIs do complain of something wrong in essentially the same way as CLIs. Maybe it's because they have no visual feedback when they type sudo rm -rf / ? I think it's just a residual fear from the constant shouting that current GUIs do.

    GUIs are currently too noisy, and the essential quietness are what these users are responding to. I would hazard that as soon as the users want to do something more difficult (that would need a pipe), they'll be desparate for a GUI interface instead.

  34. CLI vs GUI Ease of Use by G4from128k · · Score: 4, Interesting

    Having done everything from assembly language programing for embedded systems to UNIX CLI (Command Line Interface) to Macintosh, I find that CLI is distinctly inferior to GUI (Graphical User Interface) for all but a few tasks. I challenge CLI users to do any form of word processing from a shell prompt. Even the most hard-core of them will resort to vi or emacs which use a primitive pseudo-GUI (and yes you can create and I have used a pure CLI text editor, but it is extremely painful). I don't want to even think about trying to replicate Photoshop with a CLI.

    CLI = Dialog? The article mentions the notion of CLI as a dialog. But this is a misleading metaphor because so many CLI commands create invisible effects. You tell the computer to do something and all that returns (in most cases) is a command prompt. At best its like teaching someone to to do a job while speaking through a door. You give a command to do something (e.g., move a file from directory to another) and then you have to give a command to see the results (ls).

    Discoverability: GUIs also provides visibility on to the set of available commands and functions. By browsing through the menus (which are usually nicely organized), you can learn the functions of an application. In contrast, a CLI-only machines provides no obvious way to learn about commands that you did not know existed -- at best you can access an alphabet soup of cryptic vowelless cmmnd names and then access the man page on each command. Therefore, GUI applications tend to be self-documenting, CLI commands require that you first know of the existence of the command and then you must read the man pages (grepping the man pages sometimes works if you know the jargon for what you are looking for).

    Undo command: Most well-behaved GUI applications further support user learning via experimentation by having an undo command (and a revert command). CLIs tend to be irrevocable with no possibility for undoing inadvertent damage by a novice user (short of reloading the entire machine from a backup). Its no wonder *nix people get upset at the thought of novices on computers. But this lack of an "undo" is the fault of *nix CLI (it could easily be remedied with automatic file version tracking and journalling).

    GUI is the superset of a CLI: Some people complain that GUIs take too long and I agree with them. CLI does offer a faster interface for experienced users. Yet a good GUI offers keyboard shortcuts that let experienced users invoke commands from the keyboard. While it is easy to have a keyboard shortcut available and shown in a mouse-oriented graphical GUI menu, it is hard to have a graphical menu shortcut in a keyboard-oriented CLI. With a GUI that shows the shortcuts in the menus, the user can learn shortcuts as they use the machine. Thus, I would argue, a GUI is the superset of a CLI.

    Direct Manipulation: And CLI's inferiority is not just a matter of the learning curve (although that is a big disadvantage of CLI). For some tasks, a direct-manipulation WYSIWYG GUI is vastly superior. I challenge *nix people to build a CLI-only version of Photoshop. This is more that a matter of ease-of-use it is a matter of creating a coordinated interface between a person and a machine. While CLI forces the user to preform a completely defined action (e.g., type in a command that turns pixel 100,103 in file x to RGB value 128,128,200), a GUI lets the user try something (select a paint brush tool from the toolbox, test it somewhere, undo, use the tool somewhere else, etc.)

    Control Panels vs. Config Files: The article claims that modern GUI-driven OS have too many control panels ("To master modern GUIs, one must recall the operation, layout and relation to each other of hundreds, if not thousands, of such panels." Yet how is this same functionality attained in a CLI machine? Config files are the absolute worst because they offer no form of input checking or potential for embedded help. Most config f

    --
    Two wrongs don't make a right, but three lefts do.
    1. Re:CLI vs GUI Ease of Use by Lussarn · · Score: 3, Informative

      Your pathnames argument is just wrong. Ever heard of tab completion? GUIs mostly suck because they don't have it. Of course the much critisized GTK+ file selector is one of those that do have it. Learn it and use it, never click again.

    2. Re:CLI vs GUI Ease of Use by Jorrit · · Score: 2, Informative

      Never heard of tab completion? All good CLI's that I know allow you to complete a path or filename with a single key (usually tab). That saves a lot of typing. If there are multiple choices for the same set of start tokens then you can get a list of all matches with one key too.

      The reason I like CLI's a lot more is that you can use wildcards in them. For example, I often want to move all files that match a certain pattern to some other dir (just an example). This is a lot more clumsy to do in a GUI.

      Greetings,

      --
      Project Manager of Crystal Space (http://www.crystalspace3d.org). Support CS at http://tinyurl.com/cb3x4
    3. Re:CLI vs GUI Ease of Use by CoolToddHunter · · Score: 3, Informative

      Your whole argument does a poor job telling me why a GUI is better than a CLI. What is does an excellent job at is telling me the differences between the two and the situations in which I would use one or the other, and I really think that is the key.

      There are huge differences between the GUI and CLI and they do entirely different things. You use the example of Photoshop or other "applications" that don't really translate well to the CLI. You need the GUI for that. In the CLI, we use "programs" that take care of a specific task and no more. As you say, "fully specified." Great for automation or batch jobs.

      I think this is why most people who use *NIX on a personal machine have some sort of desktop on which they can run "applications" and will drop into a shell when they need to run a "program".

      Now, which is easier for newbies is obviously up for debate. It's been a long time for me, so I'm really poorly qualified to comment on that.

    4. Re:CLI vs GUI Ease of Use by thelexx · · Score: 3, Insightful

      You're harping on a 'CLI Photoshop' is pretty retarded. Even before OS based GUI's were common, there were these things called 'drawing programs' that provided their own. Nobody I know of has EVER claimed a program like that, meaning one that explicitly deals with friggin graphics, would be better off as a command-line app.

      Also, as far as config files go, ninety-five percent of the time there's no or little help available in settings dialogs. Not to mention multiple tabs, trees, checkboxes that can be overlooked, etc. With a config file you generally have one big list of settings that you can SEARCH, instead of clicking on shit for five minutes wondering where the hell that setting was.

      File navigation is hit and miss on both sides of the argument IMO. I tend to work with the same paths enough to remember them, and I can guarantee I'm faster using the command line when I'm dealing with known paths. OTOH, when I'm not sure where something is or am kind of browsing, a GUI is better. Or 'pseudo-gui' as I think you called it - Midnight Commander. It utterly annihilates any and every gui file manager I've ever used. It has the best of both worlds, an extremely effective 'pseudo-gui' and a command line.

      Finally, GUI as a _superset_ of the command line? Now I know you're high. Maybe on Windows. Under Linux it's a distant and pale subset. End of story.

      Overall, it really just sounds like you have an axe to grind.

      "The bottom line is I want to "use" my computer, not "learn" my computer."

      And there it is.

      --
      "Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
    5. Re:CLI vs GUI Ease of Use by ajs318 · · Score: 3, Informative
      Precisely. Try doing the equivalent of this in a GUI;
      for i in *wav; do lame -h $i && rm $i; done
      You can spend more time fart-arsing around with a drag-and-drool interface than it would have taken you to do it on the command line. That was what I loved about AutoCAD R12 ..... you could type in exact co-ordinates instead of trying to get a pixel-perfect click, and it cared not which method you chose. Ah, happy days. I seem to remember there may have been an AutoCAD for Unix. Anyone ever get it to compile on Linux?
      --
      Je fume. Tu fumes. Nous fûmes!
    6. Re:CLI vs GUI Ease of Use by frog51 · · Score: 5, Insightful

      At risk of just sounding argumentative, I actually disagree on almost every point you have just made. My background has led me through assembly and machine code in the days of 6809, 68000, Z80 and 6502, through Pascal, Forth, VB, C++ etc etc so I have had a fair amount of experience of various platforms, and the one thing I have learned above all others is how inferior a GUI usually is.

      I agree that word processing is generally easier with a WYSIWYG word processor, but there are damn few of them. If it comes down to needing a specific layout, I know LaTex will work where MS Office often fails. And any graphical manipulation should be easier using graphical tools.

      But your other points:
      CLI = Dialog? The article mentions the notion of CLI as a dialog. But this is a misleading metaphor because so many CLI commands create invisible effects. A GUI has far more invisible effects, as you can't even tell what commands it runsYou tell the computer to do something and all that returns (in most cases) is a command prompt. A Unix command which returns a prompt implies it completed. Error codes are output from almost everything, and if you want to see them you can.At best its like teaching someone to to do a job while speaking through a door. You give a command to do something (e.g., move a file from directory to another) and then you have to give a command to see the results (ls).Or alternatively, you give the command and trust the agent to perform its duties and only return an issue when there is a problem

      Discoverability: GUIs also provides visibility on to the set of available commands and functions. By browsing through the menus (which are usually nicely organized)Some are nicely organised, and to be fair, this is an area where there is great improvement, but in general I find it a nightmare to have to drop down through menu after submenu, sometimes in unintuitive places, to carry out a simple command., you can learn the functions of an application. In contrast, a CLI-only machines provides no obvious way to learn about commands that you did not know existed -- at best you can access an alphabet soup of cryptic vowelless cmmnd names and then access the man page on each command. Therefore, GUI applications tend to be self-documenting, CLI commands require that you first know of the existence of the command and then you must read the man pages (grepping the man pages sometimes works if you know the jargon for what you are looking for).There is an argument for simpler documentation than 'man' pages, but in reality, all that I think would be required is some indexing system.

      Undo command: Most well-behaved GUI applications further support user learning via experimentation by having an undo command (and a revert command). CLIs tend to be irrevocable with no possibility for undoing inadvertent damage by a novice user (short of reloading the entire machine from a backup). Erm...novice user...should not have access to anything other than their own files, so should not cause irreversible damage. If they do have root, well, that's kind of the same as letting newbies have administrator access on Windows machines...a very bad idea. There should be no need. Its no wonder *nix people get upset at the thought of novices on computers. But this lack of an "undo" is the fault of *nix CLI (it could easily be remedied with automatic file version tracking and journalling). What do you mean by undo anyway? An undelete? Easy. A 'revert back to before I overwrote that file with this one' option? Does your GUI give you that?

      GUI is the superset of a CLI: Some people complain that GUIs take too long and I agree with them. CLI does offer a faster interface for experienced users. Yet a good GUI offers keyboard shortcuts that let experienced users invoke commands from the keyboard. While it is easy to have a keyboard shortcut available and shown in a mouse-oriented graphical GUI menu, it is hard to have a graphical menu shortcut in a keyboard-or

    7. Re:CLI vs GUI Ease of Use by FePe · · Score: 2, Insightful
      For a more philosophical discussion on the subject, try "In the Beginning Was the Command Line" by Neal Stephenson. Here is the original page, here is a nicely formatted HTML version, and here is a more printer-friendly version.

      Especially your last paragraph: 'Granted CLI is nice and powerful. When I used a UNIX machine more intensively, I liked CLI. But when I stopped using UNIX intensively (dropped below 5 hrs per week of Unix use), I found that I quickly forgot all the commands and spent most of my time grepping man pages. CLI is mega keen and faster if you're doing batch file transfer, but for single file transfer, I can drag and drop faster than I can try and remember and then type the correct command, path, and file name.

      The bottom line is I want to "use" my computer, not "learn" my computer. Although *nix requires you learn before using, some OSes don't have such a steep learning curve. What I like is Bill Joy's statement in a recent wired article about Linux vs. Mac -- he chooses the Mac because it "just works."'

      is what Stephenson concludes too, and basicly what the whole essay is about.

      --
      "Until you do what you believe in, how do you know whether you believe in it or not?" -- Leo Tolstoy
    8. Re:CLI vs GUI Ease of Use by plumby · · Score: 2, Informative

      With the explorer in WinXP, as you type into the address bar, or Run window, both of which you can launch via keyboard shortcuts, you get a selectable list of available files/directories matching the letters that you've entered.

    9. Re:CLI vs GUI Ease of Use by Christianfreak · · Score: 3, Insightful

      Nice troll. Looks like the mods went for it too.

      All systems have a learning curve, if they didn't I wouldn't have the same Windows user calling me everyday because she forgot how to get her email.

      CLI = Dialog? it depends on the command, and no one said some commands couldn't be rewritten to be more userfriendly. Besides it wouldn't take long for people to know which commands aren't going to return anything if they fail and come to expect that. In fact some of us with a bit more experience like these commands as they can be chained together to do even more useful and exciting things.

      Undo command: Actual commands to the OS can't be undone in any environment. Once you click 'OK' in some dialog (commanding the OS to do something) That's it, there is no resetting from that point. The CLI is closer to the OS in most cases. So the fact that it has no undo isn't really all that surprising. Many (usable) command interfaces have a command history however so undoing something usually isn't all that hard. Many commands such as cp and rm have confirmation dialogs turned on by default so you are less likely to make a mistake in the first place.

      GUI is the superset of a CLI: Can you operate the machine using Ctrl+This and Ctrl+That without the GUI?

      Direct Manipulation: What a pointless argument. The CLI has nothing to do with the applications you are using. I think most people talk about using a CLI to get around their systems. No one is advocating making graphical image applications, web browsers or games go away! As for your challenge such a thing does exist, its called ImageMagick (the convert command) you can manipulate pictures from the CLI and you can do a lot with it. Of course its a command designed to filter things and program with (ImageMagick itself is an API) just like lots of other commands on the system.

      Control Panels vs. Config Files: I'll keep my config files thanks. Very few widely used config files aren't littered with all kinds of comments telling you exactly what to enter. And of course there is input validation. Many programs have a 'check the config file mode', and even if they don't its probably not going to run with an invalid config file. Editors such as VIM help here too. When the syntax is supposed to be highlighted a certain way and suddenly its not, there's probably a problem.

      Pathnames: Tab-completion?

      Your argument about single files goes away with tab-completion too. Really I wish there were better ways to select groups of files (by type maybe) in a CLI for batch transfers.

      Personally I want to "use" my computer without pretty pictures getting in the way. Bill Joy probably made those statements because he isn't familiar with Linux. I've set down in front of Mac OSX and whenever I have I end up looking for the Terminal.app so I can use the comptuer.

    10. Re:CLI vs GUI Ease of Use by rRaminrodt · · Score: 2, Insightful

      You make some good points about the Unix CLI, but the more I think about it a good portion of your points don't have to apply to an idealized CLI.

      I think the strongest point of this article is that a "conversational interface" which works synchonously is easier to get a handle on than something that is throwing asynchonous events at you all the time.

      CLI = Dialog
      This might be true, but I don't like your example much. cd simply does its job and tells you if there is an error. should it report the directory it changed to? I don't think it would be the end of the world if it did, but it would be a little more verbose that needed.

      Discoverability
      I mostly agree here. But even with windows or mac dialog box menus, you've got to navigate these often poorly sorted categories looking for... a cryptic command name. I think well written error messages and 3 stage documentation would help a long way here.* Also, an advanced CLI could present common commands or frequently used commands in a hint zone or upon request.

      Undo
      There is no technical reason why you can't have undo in a CLI. You even hint at this yourself. It would be a feature of the program or shell you are working with.

      GUI is the superset of a CLI
      I don't see the point of this. Sure, the G stands for Graphical, but by no means does that mean an advanced CLI can't incorporate graphics. Think driving ImageMagick from the CLI. Or curses, but going back to the point of the article, was that "conversation mode" was what his users liked. You lose that when you start glueing on menus.

      Direct Manipulation
      This is where I disagree the most. I've got pretty good motor control, but I still click on the wrong stuff all the time. Imagine a CLI-photoshop which fills the upper half of your CLI with the working image and and the bottom half with the input & command history. You can execute any arbitrary command on any region of the image and still see the changes in front of you. Here all the mouse becomes and extra selection tool. Stroking, filling, rotating, can now be driven by commands... which can work synchonously. I imagine the same can go for Word Processing, document layout, etc.

      Control Panels vs. Config Files
      no form of ... embedded help Yah, those "#blah does this" lines really don't exist huh. But I digress, if we're talking about a conversational CLI we'd want a config tool to so you can tell it, "I want X, Y, and Z options set. " That would provide your input checking. Manually hacking the file would be for advanced users (just like today).

      Pathnames
      Urgh. The other replys handled this pretty well. (BTW, typing pathnames on OSX is damn annoying. Why did they feel the need to start them off with caps? grr.)
      And with a CLI, if I make one tiny spelling error then the entire command fails and I have to retype it Press the up arrow.

      The bottom line is: this article was about introducing people to the computer. The most important thing that I saw was that the CLI lets a new computer user focus on ONE TASK at a time. To me this makes a lot of sense. This isn't to say either our GUIs or CLIs are rubbish, but that we have preconcived notions that GUIs make things Easy(tm) and that might not be always true, sometimes, but not always.

      I spent way to much time writing this, and if I want to continue I ought to just to a full fleged essay :)

      --------
      * I don't know if this is a real term but i mean:
      Stage 1: appname -h, provides a quick explanation of the app plus the most useful options and maybe an example
      Stage 2: man appname: more through documentation, but still short and to the point. As others mentioned EXAMPLES are very useful. All the options can be enumerated here
      Stage 3: info or some other hypertext documentation: the full manual that can be as verbose as it needs to be, but crosslinked for deeper investigation into the app

      --
      They'll think I've lost control again and leave it all to evolution. -- Supreme Being, Time Bandits
    11. Re:CLI vs GUI Ease of Use by TioHoltzman · · Score: 2, Informative

      You've apparently not used Win2k (this may also apply to Win98 and/or WInXP).
      If you use the common open or save dialogs (note that MS Office may or may not use these, I don't recall, but just about every other app out there *does*), you can type the first couple of letters of a file/directory name, and if it's in the directory, a dropdown box will appear, with a list of possible matches that you can use the Up or Down arrows keys to select. Just about as easy as using the tab completion in bash, and you *don't* need to use a mouse at all.

    12. Re:CLI vs GUI Ease of Use by Tassach · · Score: 2, Insightful
      I can think of numerous graphics manipulation programs that would work just fine with no graphical interface. Pretty much any kind of batch operation you'd want to do to an image file could be done more efficiently with a CLI. Imagine I have 500 TIFF files in a directory. For each of these images, I want to overlay a logo file to the lower-right hand corner, create a thumbnail, and convert the original files to jpeg format. You don't need to see the image to do any of these things. This could be done in under a minute with a command line tool; it might take hours to do by hand in a GUI environment.

      Plus, having a command line tool makes it a whole lot easier to tell someone how to do something. For example if someone asks "how do I get the HR department shared files directory to show up as my S: drive every time I log on?" It's a lot easier to tell them "Hit start, run, and type '

      net use S: \\fileserver\public\hr /persistent
      '" than it is to walk them through the steps needed to do the same thing via the gui.
      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    13. Re:CLI vs GUI Ease of Use by mwood · · Score: 2, Interesting

      Oh, yeah, on MS Windows the GUI *is* a superset of the commandline, and I curse that fact every single time I need to script some simple sysadmin. function so that it can become a regularly scheduled batch job and handed off to the computer instead of me continuing to do boring repetitive manual labor.

      Any GUIfied product with no commandline equivalent is only half implemented.

    14. Re:CLI vs GUI Ease of Use by baxissimo · · Score: 2, Insightful

      Good points. I agree it's useless to debate which is better, GUI or CLI. Each has distinct advantages. What I'd like to see is more exploration of how to take advantage of the best of both with GUI/CLI hybrids.

      Matlab and Maple offer pretty interesting examples of hybrid GUI/CLI interfaces. For instance, you type some graphing command, and then the graphical output appears right there inline in the console. Overall their UI is more slanted to the CLI end than GUI.

      AutoCAD was another one, but with a more GUI slant than CLI. Actually several modern modeling packages, (e.g. Maya) have a sort of command line interface that lets you type in a scripting command, but it's basically just a way to run one-line scripts than a command line interface to the entire application. I think in AutoCAD it was more like a full interface. I could be wrong, though, not having used either extensively.

      Anyway, there's no reason why the CLI type of interface can't be intermixed more cohesively with GUI. Think of the CLI as an interface for textual interaction of any sort. It doesn't just have to be a set of 'command ' syntax. It could incorporate much more than we think of as 'CLI' today in terms of natural language processing and especially pattern matching and searching.

      Think about the best interface we've got for managing the complexity of the web: Gooogle. There's a similar problem with managing complexity in many application programs. What if in photoshop you could type "gaussian filter" and just click on the "I'm feeling lucky" button, and it would perform the gaussian filter. For many operations you do infrequently, that could be a big improvement over the frustrations of searching through all the menus to try to find the right thing. If the command needs parameters, the parameter sliders could even appear right there in-line in the app's console. If you need to tweak those same parameters again a few minutes later, the sliders would still be there in the console history.

      Applications that have good searchable help give you some of the ability. But it's all set up to be really slow. With help searches, you have to open the help, search for the command you want, say "oh of course! it's under the format menu", close the help, then go open the "format" menu and click on the right menu choice. Instead, I'm talking about a CLI where the command/search area is always shown and is used to launch the commands directly (or present you a list of options if there's ambiguity).

      Actually the Microsoft Office team seems to be trying to go in that direction. But their implementation in the form of Clippy is horrible. And it's still tied into 'help', which to me is basically like "exception handling" for application flow, rather than being a normal part of usage. It's too heavy handed. I _know_ what "kerning" is -- I don't need a whole window to pop up with a description of typsetting terms just to kern some text -- I just want it to execute the darn command.

    15. Re:CLI vs GUI Ease of Use by cowbutt · · Score: 2, Informative
      Poor example. First, the time it takes to start the process means extremely little compared to the time lame will take to do its work.

      Yes, but a computer should save me, the user time and effort. In many examples (including this one), once the user has got the basic command line vocabulary and syntax, the command line will be more efficient for the user if they're performing a task at all regularly.

      IMHO, about the only times a GUI wins are when you're performing some infrequent operation (such that you need to teach or remind yourself of syntax and options each time) and when you need to perform an operation on a bunch of files for which you can't easily come up with a regular expression. Even then, as your experience of regular expressions grows, it becomes easier to compose more elaborate regular expressions such that the CLI starts to win again in the latter scenario.

      Second, if you're performing a command like this, especially one involving 'rm', you want to make damn sure there is no mistake. With GUI it's easier to have such a certainty.

      It sounds as though you don't understand the '&&' operator - by using that, the OP has ensured that each file will only be removed if lame indicates (using its return code) that it completed successfully. Lame may lie, of course, but if you're concerned about that, then you won't want to automate this job at all. My experience indicates that it's extremely rare for a UNIX tool to lie in its return code value.

      --

    16. Re:CLI vs GUI Ease of Use by takev · · Score: 2, Informative

      a CAD program has both.

      It shows the drawing you can do most things with the mouse.

      But on the bottom of the screen there is a command line interface where you can tell them where to draw the circle and be exact. It is very difficult to position objects on exact positions using the mouse. And filling in dialogue boxes is just slower then typing a command.

    17. Re:CLI vs GUI Ease of Use by sjames · · Score: 2, Insightful

      Another good thing about config files instead of dialogs is that the file can be copied from someone else's successful setup. Kinda hard to do with a GUI.

  35. Lack of comparison by legenx · · Score: 2, Insightful

    By what does it mean "Best for Newbies?" The article doesn't even try to compare the user performance on a CLI to a GUI interface. The author made many subjective comments about what the users may think. A more objective experiment should be done with a control group that tries to accomplish the same thing using GUI. You then measure the task performance (like how long does it take to write an email or type a letter on either interface). Companies such as Microsoft and Apple spent a lot of money on research like this.

    User interface is a field of active research and study, using actual performance comparisons on actual users, not on people reading slashdot. I think the general Linux community needs to recognize that it's not doing as much as it should. As Linux is moving to the desktop, this is becoming more and more important.

  36. I must agree by maevius · · Score: 2, Insightful

    My computer experience started with ms-dos. I learned most of the commands while trying to scratch an itch (mostly trying to play games). I learned how to edit config.sys and autoexec.bat and by that the computer internal basics. It was simple and I learned many stuff.

    Now newbies start mostly with windows. In order to learn how to use a computer you have to know how a computer works in general, and how a computer will respond to an action you take. Microsoft tried hard so this stuff is invisible to the user. In order to play a game you just have to put the cd in and "next" your way through the installation process. If users don't gain experience from simple things as that how can someone expect from newbies to learn how to use a computer?

  37. The pros and cons of blackboxing by ControlFreal · · Score: 4, Insightful

    I understand your frustration, but also disagree with it. Allow me to explain.

    The concept you're bringing up is black boxing: a simple (or standardized) user-interface that hides a complex system.

    The pros of black-boxing are obvious: black boxing makes it possible for many people to operate complex equipment (think cars, phones, computers). There is also a psychological factor at play here: as many people seem to suffer from self-learned helplessness when dealing with technology, black-boxing (e.g. think nice-and shiny i-POD, or automatic-transmission lady-car) helps them to overcome their physological aversion and acutally use the device.

    Now, as already stated by another user, the main con of black-boxing is what happens when something goes wrong: black-boxing provides a very poor way of dealing with failure-conditions!. There is also another con, which is public perception: black-boxing makes people believe that the equipment they are operating is simple, while in reality it's very complex. But because they reason from their internal "simple make-believe model', they can make mistakes that they wouldn't have made, had they known a bit more about the equipment.

    To provide an example: Here in Europe, most cars are manual transmission (typically 5 forward and 1 reverse). When driving 80 kph in a flat country like holland, it really doesn't matter that much whether you drive in 3rd gear of 5th gear. However, when some Dutch people drive through Switzerland during the summer holidays (with a big trailer behind the car), they persist in driving in 5th gear up-hill, their argument being: "Hey, don't worry man, the car maintains speed uphill, so what's the problem". Of course, had they known a bit more about how an engine works, they would have switched back to 4th (or even 3rd) gears, to allow the engine to run at a higher specific torque, and to allow the cooling fluids to be pumped around more quickly to cool the engine better. Our black-boxing people usually end up overheating their engine (and blocking traffic and creating big jams in the Alps, grumble! ;) You see: it pays to know at least a bit about what's under the black cover of your black box!

    In the same way, your shiny XP thingy makes your computer seem a simple device. But of course, it is still a really complex device. We've all seen people do stupid things because they persisted in acting according to how they believed the computer works (their simple model), rather than basing their actions on how the computer actually works. Knowing a bit about the latter, however small, enables you to do better in times of failure, but also in general.

    On a personal account: I learned C after I learning assembly. I experienced this as a big bonus, because after using asm, you know what pointers actually are and how they work. I've seen people program Java and doing stupid memory allocation things, because they had no clue about what happens when you do "new bla" or "delete bla".

    To conclude: black boxing is ok, but you need to keep in mind that you are still operating a complex device!

    --
    Support a Europe-related section on Slashdot!
  38. You can learn intuitively from the CLI by Anonymous Coward · · Score: 2, Insightful

    The thing that this theory misses is the value of learning intuitively for most people. With CLI you have to be taught or teach yourself through research how to perform each task. With a GUI a few basic principles and you can learn as you go by reading on screen instructions in a context sensitive environment. Does CLI promote deeper learing...absolutely. Is it the best interface for learning quickly and achieving a minimum standard of literacy...nope.

  39. Autocad is the way to go by wandazulu · · Score: 2, Interesting

    Autocad is probably one of the most complex applications that I know. But the one thing that they've done right over the years is preserve a command line that gives you total functionality, along with a history to show you what you did. You can click and drag your way through a design, or you can type it in at the command line and then selectively move items with the mouse *if* you want.

    It also reinforces your understanding of the commands to the point where the dialog boxes are merely pretty wrappers and you know exactly what you're trying to do, instead of getting wrapped up in the position and naming of items to click.

    The command line also reinforces concepts and a deeper understanding of what the program is designed to accomplish (with Autocad, designing objects). Try as the designers might, you can always get into an argument that this menu item belonged here, and this dialog box doesn't make sense, etc. etc. With a command line in the program, I simply ignore the arguments and get work done.

  40. Command line is NOT your friend by Moraelin · · Score: 4, Insightful

    Well, I'm an "old timer" who does _not_ appreciate the command line.

    By "old timer" meaning, admittedly, not 60 years old and having started on punched cards and electronic tubes.

    I did, however, learn programming in hex, not even assembly, on a ZX-80 with 1K RAM. In 1K you didn't even have space to run an assembler. I had a big old paper notebook with 1 page per command and a matrix of the registers involved. E.g., this is the page for "ADD", take the column for "A" and the row for "B", and there you have the hex code for "ADD A, B".

    I continued through such mis-haps as editing source files on a CP/M machine with a hex-based disk editor, because the PHB forgot to also give us a text editor. Sad, but true.

    You know what? I _don't_ miss those days.

    The command line is powerful and all, as long as you already know _exactly_ what you're doing. It is a pain in the donkey when you don't.

    The time and effort to get past that learning curve is not fun, and not what Joe Average wants. Heck, it's not what _I_ want.

    I do _not_ find it fun to spend hours digging through obsolete, incomplete man pages just to find out that I need to type some obscure command like "obscureProgram.sh -XFGXRmnq -i filename1 -o filename2 -c OBSCURE_COMMAND_CODE -p some_obscure_regexp -f unix-style-font-name" just to get something done. Bonus points if it expects me to already be in some directory, and some obscure configs to already be set right. More bonus points if it doesn't even do the whole job, but expects me to pipe it through other obscure programs. Double bonus if it outputs some cryptic error messages like "1962 Short School Bus", that don't even tell me what the **** went wrong there.

    Gimme a break. My time is too valuable to spend it on that kind of crap.

    Give me a GUI which has input fields for the stuff I need to enter. If it's a file name, give me a good file selector dialog, don't expect me to manually list directores 20 times to find it. If I'm supposed to enter options, give me checkboxes, radio buttons, or drop down combos. And, ffs, give me an up to date help for it. And clear, humanly understandable error codes.

    And you know what? I'm surprised how much energy goes into defending the sacred right to produce crap code and piss-poor interfaces.

    Here's an idea: if half the time that went into whining about how the 60's command line interfaces are better for the user, went instead into throwing together a simple user-friendly TK or ncurses or whatever GUI, we'd all be far better off than we are today.

    And let me get back to the part where I've said "The command line is powerful and all, as long as you already know _exactly_ what you're doing. It is a pain in the donkey when you don't."

    The problem there is that to get to know exactly what options to type there, you have to invest ludicrious ammounts of time into that. Which for most people isn't justified. If you'll configure printing on your home network maybe 4 times in your whole life, consider the following two situations:

    1. spending 4 hours to learn how to do that with CUPS and only with command line tools. But then you can do that in 30 seconds flat each time.

    2. spending 5 minutes each time doing the same in Windows, through the GUI

    Believe it or not, solution 1 is _not_ an improvement. On the whole, the l33t Unix command line way took 4 hours from your life, while the point-and-drool Windows way took a total of 20 minutes. The winner is... the GUI.

    Yearly millions of hours go into just learning to use some crap software. It isn't learning some l33t skillz, it isn't "getting a clue", it's just _wasted_. It's time when you're _not_ doing what you needed to do in the first place. Time where, like in the example above, instead of already having your file printed on that networked printer, you're still searching through obsolete man pages and trying stuff that fails for no obvious reason.

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. Re:Command line is NOT your friend by Dun+Malg · · Score: 3, Funny
      Double bonus if it outputs some cryptic error messages like "1962 Short School Bus"

      That's a great error message. I think I'll create a whole class of "short bus errors" on the app I'm developing for work.

      --
      If a job's not worth doing, it's not worth doing right.
  41. I'm not so sure... by ericspinder · · Score: 2, Insightful
    Some points of the article make great sense, in particular the familiarity most people have with the keyboard, and the "dialog" with the computer using the command line. But one thing bothers me about the whole drawn out "Aunt Tillie" example, she walks up to the mailbox and uses a movement of the hand, to open the mailbox, she doesn't talk to it, or write a note. Futhermore leaving the open letter on her kitchen table as a reminder to get to it later, is more akin to an open app on a (computer) desktop.

    In my experience there are two kinds of novice computer users (newbies, if you will), those you don't "get it" and those that do. Those that "do get it" will quickly understand that the "little blue 'e'" is not "THE INTERNET" and that they are free to change thier start page for that application (or choose another one altogether). The author choose a bunch of (his words) "the more advanced members" and gave them a little instruction on the command line, to kill a little time, while he tried to catch up the dense. At best, it is just a good way to interest the "soon to become power users", while the rest of the class catches up.

    I use the command line frequently, and am very comfortable telneting (and SSH) to Solaris and Linux servers, but I don't think that most newbies will benifit from the extensive command line instruction, they would need to be truely "productive" on a system.

    --
    The grass is only greener, if you don't take care of your own lawn.
  42. You guys are nuts - should not need to know how by alexhmit01 · · Score: 4, Insightful

    Look, if the car starts bouncing, I know I have a flat tire. If the engine is having problems, a red light on my dashboard tells me to take the car in. When the car struggled to shift gears, I knew it was a transmission problem. The CAR informs me of what is needed and I take it to the specialist. The basic maintenance schedule is given to you when you buy your car, there are no surprises.

    Regarding a license... you need a license because with an automobile because the misuse of an automobile can endanger others.

    Look, I'm a computer engineer by training, know my way around Unix, know my way around NT (MCSE, CCA from old career), and know my way around a CLI. Guess what, when I want to put together a business model, I want a graphical spreadsheet that is out of my way. Do I know ALL the Excel functions? No, but I know the ones I use regularly, and the help system gets me through the rest.

    I have no desire to memorize arcane commands, I want to build the business model. Will I learn arcane commands to speed things up? Sure, but on MY schedule, NOT yours. I buy the machine to let me get my work done, and I pay the premium for a laptop to do so on the road, and I pay the (admitted small these days) Apple premium to have wireless support that is amazing and to be able to have my Unix applications on the road. These are all my choices.

    Guess what, I don't pay Open Source programmers, so they don't have to listen to me. However, don't complain that I don't have an open source desktop when you put out bizarre GUIs that interfere with my workflow.

    My Mac stays out of my way and lets me do work, MUCH faster than Windows or Linux would let me. In the end, that keeps Linux a step away from "global domination" or whatever the goal of the week is.

    My computer should work for me, not the other way around. Sure, I had to demonstrate an understanding of traffic laws to get on the road. But guess what, EVERY car I drive is nearly identical, and the controls don't change. That consistent UI makes cars a success.

    Windows has problems, no question. But it is "good enough" for most, and it is pretty cheap.

    For a single-purpose machine, Linux is fine, I can train my people on 1-2 applications... If GNUStep was further along, or Qt didn't blow as a RAD tool, then our dedicated personnel would be on Linux machines and not eMacs. However, if you think that Linux is good enough for a business power user, you're sadly mistaken.

    The integration of the Office Suite has been AMAZING for a few years, and the combination of Word, Excel, and Powerpoint is TERRIFIC for business users. Until GNU can mimick that power (NOT mimick the widgets, but the power and integration) then it is NOT a viable desktop system for the modern business power user.

  43. Mac solved this in the 90s by bonaldi · · Score: 2, Interesting

    I'm not sure why nobody's picked up on this yet, probably the horrible must-work-in-a-ssh mentality. Sure, people who can ssh in can use man -k. But for the rest of us, typing in an xterm or similar, the original Mac programming environment - mpw - had the best method by far of helping someone on the command line.

    It was called Commando, and if you couldn't remember a command's options, you could type it, press apple-enter (IIRC) ... and a dialog box popped up with full-on gui goodness to let you enter the command. While you were chaning the options, it wrote and rewrote the exact command line you had to use in a pane at the bottom of the window. Genius.

  44. That might be true an exception by drgonzo59 · · Score: 3, Interesting

    It turns out that companies like Sun and IBM have researched this before. The results they came up with is that the new users found their way around and accomplished tasks faster with a GUI interface, but were more likely forget by the next time how to do it. With command line, it took a while to learn it, but then the retention rate was higher. The research, I believe, the systems used were running Solaris/AIX respectively with their X Windows vs. the command like on the same systems.

  45. And now, everybody read by bkhl · · Score: 3, Informative

    In the Beginning was the Command Line, by Neal Stephenson. It's available in text form from http://cryptonomicon.com/beginning.html.

  46. CLI story - success over the GUI by Anonymous Coward · · Score: 3, Interesting

    I think GUIs and the CLI both have there place. However, undoubtably, the CLI is simpler, faster, and more powerful in certain circumstances.

    Just recently, a colleague (running Windows XP) and I (running Linux) took our laptops to a computer lab providing IP addresses via DHCP. My colleague, after spending literally 20 minutes fighting with his GUI receiving ambiguous error messages and having the OS seemingly do the exact opposite of what his intentions were, finally gave up. Some setting, hidden in XP, was refusing to let him use DHCP and insisted on trying to connect to his usual ISP.

    On the contrary, after 3 seconds editing a config file, I confidently typed "/etc/rc.d/network start" and, as expected, had instant network access.

    I think this is a simple example of the many (not all) areas in which the CLI is simply superior.

  47. Little script I made just for this purpose by carlmenezes · · Score: 2, Interesting

    Simple little script to figure out what a command does. Works on most of them. Keeps me from having to do a "man [command]" just to see what it does. It's just something I put together in a minute, so forgive me if you don't think it's done the right way - it works quite well for me. Feel free to use it if you like.

    #!/bin/bash
    test=$1
    if [ "$test" = "" ] ;
    then
    echo " desc - Short for describe. Display a one line description of what a command does."
    echo " Usage example:"
    echo " desc ls"
    else
    if [ "$test" = "desc" ] ;
    then
    echo " desc - Display a one line description of what a command does."
    else
    man $test | grep "$test - "
    fi
    fi

    --
    Find a job you like and you will never work a day in your life.
  48. Ever tried telling people... by WWWWolf · · Score: 4, Insightful

    Ever tried telling people on phone how to do a task in Windows?

    "Click Edit, Options, and... err, wait, yeah, Page settings, Margins..." (5 minutes later, or 10 minutes if you don't have the same program in front of you) "Wha? I told you to click on OK, not Cancel!" (10 minutes fly by...) "So it doesn't work? What do you mean there's a setting like that? Why didn't you say so? I'm deaf and stupid. Sorry."

    As opposed to:

    "Just type '/sbin/ifconfig ppp0'. ...Wha? that's 'slash-s-b-i-n-slash...'" and a moment later "So it isn't even connected. Right. Try typing 'pon'."

    The GUIs may be good to work with, but CLI is easier to explain. Especially if you're used to doing GUI things in one way and others do it the other way.

    GUI is like a religion - you "learn" it, and only you can explain what it means to you. CLI is like science - you learn it, you can explain it, and it means the same thing to everyone - except people who argue about "useless uses of cat(1)" and proper order of parameters, and whether to use sed(1) or perl(1), of course.

    And now I need the freaking coffee already.

  49. Recycled FUD by banzai51 · · Score: 2, Insightful

    Wow, recycled FUD from 1984. We've already had this battle. GUIs won, get over it. New user like to see what they are doing. Clicking is more intuitive than typing. CLI has it's place and use, but don't try and tell me Grandma is going to feel better using CLI over GUI 2 weeks or 2 years down the road. It just ain't true.

    1. Re:Recycled FUD by John+Meacham · · Score: 2, Informative

      Umm. no.
      Different people like different things, I have obtained a fair number of linux converts who knew nothing about unix, but saw me typing commands at the computer and wanted to do the same. GUI has in no way 'won', they were never really in competition.

      --
      http://notanumber.net/
  50. Try 'man rpm' by Black+Perl · · Score: 4, Insightful

    RPM is supposed to be easy to use... but the dang man page is so long... Here's just the SYNOPSIS section at the beginning:

    NAME
    rpm - RPM Package Manager

    SYNOPSIS
    QUERYING AND VERIFYING PACKAGES:
    rpm {-q|--query} [select-options] [query-options]

    rpm {-V|--verify} [select-options] [verify-options]

    rpm --import PUBKEY ...

    rpm {-K|--checksig} [--nosignature] [--nodigest]
    PACKAGE_FILE ...

    INSTALLING, UPGRADING, AND REMOVING PACKAGES:
    rpm {-i|--install} [install-options] PACKAGE_FILE ...

    rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
    [--notriggers] [--repackage] [--test] PACKAGE_NAME ...

    MISCELLANEOUS:
    rpm {--initdb|--rebuilddb}

    rpm {--addsign|--resign} PACKAGE_FILE ...

    rpm {--querytags|--showrc}

    rpm {--setperms|--setugids} PACKAGE_NAME ...

    select-options
    [PACKAGE_NAME] [-a,--all] [-f,--file FILE]
    [-g,--group GROUP] {-p,--package PACKAGE_FILE]
    [--fileid MD5] [--hdrid SHA1] [--pkgid MD5] [--tid TID]
    [--querybynumber HDRNUM] [--triggeredby PACKAGE_NAME]
    [--whatprovides CAPABILITY] [--whatrequires CAPABILITY]

    query-options
    [--changelog] [-c,--configfiles] [-d,--docfiles] [--dump]
    [--filesbypkg] [-i,--info] [--last] [-l,--list]
    [--provides] [--qf,--queryformat QUERYFMT]
    [-R,--requires] [--scripts] [-s,--state]
    [--triggers,--triggerscripts]

    verify-options
    [--nodeps] [--nofiles] [--noscripts]
    [--nodigest] [--nosignature]
    [--nolinkto] [--nomd5] [--nosize] [--nouser]
    [--nogroup] [--nomtime] [--nomode] [--nordev]

    install-options
    [--aid] [--allfiles] [--badreloc] [--excludepath OLDPATH]
    [--excludedocs] [--force] [-h,--hash]
    [--ignoresize] [--ignorearch] [--ignoreos]
    [--includedocs] [--justdb] [--nodeps]
    [--nodigest] [--nosignature] [--nosuggest]
    [--noorder] [--noscripts] [--notriggers]
    [--oldpackage] [--percent] [--prefix NEWPATH]
    [--relocate OLDPATH=NEWPATH]
    [--repackage] [--replacefiles] [--replacepkgs]
    [--test]



    Each of the above options is explained in detail, but there are no FAQ-style examples. It's no wonder the distributions are putting layers on top of rpm (urpmi, yum, etc). I like yum, and largely because the man page is short and to the point! It only takes a few seconds to figure out what I need to do.

    --
    bp
  51. Command names by Julian+Morrison · · Score: 2, Insightful

    I actually think it's a good thing that unix-ish commands have wierd names.

    For a beginner learning unix, there's a conceptual hurdle they have to jump: that commands are not "commands" at all, but specific named programs which can be used as tools.

    Lack this understanding, and you're confused and trying to second-guess a nonexistent "designer". Gain it, and you can start to ask the right questions. Not "how do I get help" but "what program displays the help documentation", for example. Or, if one program isn't adequate for a task, might there be another which could do it better?

    In that regard it actually helps that unix programs have idiosyncratic names. "grep" is grep, it's not some generic "search", and it's probably not the only tool on the system useful for "searching".

  52. Personal Experience by iago-vL · · Score: 3, Interesting

    Although I'm only 21, I grew up in a DOS, and, later, a Linux environment. I still prefer vi and vim to VS.net. I was using a Windows program a couple days ago, and it wanted the folder to rip music to, I went to type in the folder (q:\.......\music), and it wouldn't let me. When I realized that I would be forced to use a GUI folder selector for each of the three paths rather than copying and pasting, my heart sank: I realized just how horrible the world has gotten when even programmers expect me to use GUI for everything. My point is, a lot of us grew up on command line, and we turned out great. A lot of people grew up on windows xp/msn messenger, and I can't help but look down on them. When I say, "Your 40gb drive is full of spyware and installed programs/partially uninstalled programs/whatnot, it's time to format" they say, "huh?" because they aren't famalier with core computer concepts. When I was forced to learn what IRQ and DMA meant, and I had to use mscdex when I was 10, I ended up better for it. I understand how the machine works, and I am much happier for it.

  53. A very good idea by Pan+T.+Hose · · Score: 3, Informative

    I'd wager that computer literacy amongst people who've tried Linux would be twice what it is today if when you typed help foobar bash would perform a man foobar if 'foobar' wasn't a builtin command. And it'd probably be double that if you incorporated some kind of search facility too. Type in help disk space and get a hit on the df command, for instance.

    I think that is a very good idea and for that reason after reading your comment I decided to write such a program according to your specification.

    Just remember who has just made Linux four times what it was today: me, Pan T. Hose, PhD.

    That having been said, I'll post that program in another comment, because I have to post it as "Code" instead of "HTML." Please mod it up (the actual code, as well as the instructions below) as Score:5, Insightful, so everyone could read it and install, because I think every Slashdotter deserves to have her Linux four times better than it has ever been.

    You have to save my program as /usr/local/bin/smarthelp, then run:

    chmod a+rx /usr/local/bin/smarthelp

    as root and insert this line in your ~/.bashrc file:

    [ $PS1 ] && alias help=smarthelp

    Remember to give me credit and to not violate the GNU General Public License it is hereby released under. The code follows:

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
  54. The PTH(R) Smart Help(TM) program - PLEASE MOD UP! by Pan+T.+Hose · · Score: 3, Informative

    #!/bin/bash

    # save it as /usr/local/bin/smarthelp
    # chmod a+rx /usr/local/bin/smarthelp
    # and insert this line in ~/.bashrc:
    #
    # [ $PS1 ] && alias help=smarthelp

    # PTH(R) Smart Help(TM) v1.0.1-pre2
    # http://slashdot.org/comments.pl?sid=99801&cid=8510 901
    # Copyright (C) 2004 Pan T. Hose, PhD.
    # http://slashdot.org/~Pan+T.+Hose
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

    a=${@:-help}; help "$a" 2>/dev/null || man "$a" || apropos "$a"

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
  55. Re:MicroSoft late to GUIs by Xpilot · · Score: 2, Informative

    I find the comment "before MicroSoft" amusing. Apple had the first commercially successful GUI in 1984- nine years before MicroSofts wirst usable version of windows. The UNIX world was using XWindows six years earlier too. Everyone was making fun of MicroSoft's lowly MS-DOS interface.

    No, no, Microsoft brought about the "dark times" by forcing its braindead "CLI sucks" philosophy on ever single damn computer user.

    --
    "Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
  56. I have to agree. by Ketnar · · Score: 2, Interesting

    Oddly enough, since I started my webhosting ordeal, I have found that complete and utter newbies ARE oddly good at picking up the command line.

    For example, I walk most first time customers through the usual setups, SCP client, SSH client,Mail, all that depending on what OS they are on.

    I swear, it takes me three times as long to walk them through the GUI stuff, with all its bells and whistles they have to think about.And then the 'hard part' of the command line, they are off and banging away within a few short minuts. In fact, I have had a few newbies take one look at Pine and go 'Oohh, neat, I don't even need a program to use it!'

    AND THEY USE IT(pine)!

    And you have no idea what I mean when I say 'newbie', I mean literal 'Just got away from yahoo webhosting, does not even know HTML yet' newbie. Picked the command line right up, and yet I got two more calls for the damn GUI client. And this is hardly the first time.

    Sometimes I really love this line of work.. :)

    --
    My new top secret key -> C>N|KB
  57. It is simply simpler by theolein · · Score: 2, Interesting

    I was an operator/admin on an archaic Wang 300 mini system back in the 80's on a US air force base. The OS was Wangs multiuser system and, while fantastically old by todays standards, demonstrated something that I not seen in later jobs as admin for on Windows and Novell systems: consistency and simplicity.

    The user had access to Wangs text based word processor, spreadsheet, groupware and simple database programmes, of course everything running on a central system and the users only having terminals.

    There was far less, and I really mean far less support hassle, especially on the telephone as it was so much easier to understand what the users currently were doing and the users, having a reduced set of commands, could mess up in x number of ways. Added to that the interfaces were consistent and easy to remember. Ironically, all that could today run on a single Unix machine with terminals with ease (about 150 users).

    I compare that to the aches of supporting Microsoft office in my last jobs, with users being all over the place and repeatedly not being able to remember the simplest of GUI functionality. Not even younger employees who had grown up with GUIs were confident in what they were doing.

    The comment about graphics is valid though. A hybrid CLI with graphics functionality would probably be the best bet for all.

  58. CLI and GUI both have their places.. by caveat · · Score: 2, Interesting

    ..anybody who uses an OS X box regularly knows what i mean. a well-designed GUI makes a lot of tasks simpler - i know a lot of you like your config files, but i really enjoy my mac config dialogs; you're absolutely nuts if you want to argue the firewall (in OS X) is easier to set up from the shell rather than system preferences. OTOH, i do use iTerm rather a lot, especially for dealing with huge quantities of files (Aqua bogs horribly when you try and move >2000 files around at once) and non-graphical web stuff...FTP is literally about half again as fast from the commandline. basic text editing too, although bbedit's multicolored highlighting with programming languages is nice for certain things.

    side story: my dad was a communications operator for the air force in 'nam, a guru of the proto-net - he used to tell me about playing battleship with people in Greenland, in 1968, over the teletype. he hadn't touched a computer in 30 years, loathed the things, until i sat him down in front of my box, logged in as >console (switches off Aqua, drops you to a pure CLI). he stared at it for a second, then his face lit up as he said "OHHHhhh, it's just like my teletype, only on a screen!"...he's now does all his email, web browsing, imming, and text editing (invoices, inventories, whatnot) off the commandline. he DID ask if i could use the printer instead of the monitor once though, i had to shoot that one down...

    --

    Facts do not cease to exist because they are ignored. - Aldous Huxley
  59. Are you claiming Java is a real language? by alienmole · · Score: 3, Funny

    (define set-him-straight
    (lambda ()
    (display "Learn a language that's capable of abstraction without boilerplate, dammit!")))

    (set-him-straight)

  60. What about without training? by BoneFlower · · Score: 2, Insightful

    Command line might be easier to teach, but hand two complete novices(as in never used a PC) a GUI system, a command line system, and a typicaly sparse new users guide.

    See who makes effective use of their system faster. Idiot simple interfaces aren't for those who go out to be trained, they are for the secretaries and such who take a job and need to work right away, without training in how to use the computer.

  61. You Don't Want Localized Command Names. by HopeOS · · Score: 2, Interesting
    The commands are for the computer to interpret, not the user. If my English scripts cannot call Japanese programs, that would be a real problem.

    As for the user, if I sit down at a computer that is localized in French, I can still use it because we all agree on what the command names are, regardless of what language we speak. "cd" is not "change directory," it's the mnemonic for the command that changes the directory. I don't care if it's zk or zmienkatalog, so long as it's the same. If I want something else I can alias it. By way of example, I logged into my normal account using Croatian as the localization context. Everything works as expected, but I can't read the error messages.
    $ ls -V
    ls: nedozvoljena opcija -- V
    OK. Let's see what languages are supported on this machine.
    $ echo $SUPPORTED
    hr_HR.UTF-8:hr_HR:hr:en_US.UTF-8:en_US :en:ja_JP.eucJP:ja_JP:ja
    No problem. English, Japanese, and Croatian. My Japanese is not much better than my Croatian, so let's try English.
    $ LANG=en ls -V
    ls: invalid option -- V
    Oh... that wasn't too bad. Let's just set the language for English from here on out though.
    $ export LANG=en
    By ensuring that all the commands and protocols are the same, Japanese, Croatian, and English users of this machine can all use the same programs, and most importantly, their programs can interact as well.

    -Hope
  62. Even better than that would be (no joke!).... by devphil · · Score: 2, Informative


    ...the help system offered by...

    ...wait for it...

    ...VMS.

    You type "help [command]" and you entered an interactive mini-CLI environment. The help screens were nested, so your help sessions might look like

    help> foo

    The FOO command glarbles the gronkulator using the following sequence of steps...

    help> examples

    Example 1:

    foo /wacky /monkey
    ...

    help> Options

    The following options are understood by FOO:
    ...

    help> exit

    help> gron

    The GRONKULATOR command...

    help> exit

    The help interpreter was "fuzzy", so you could just type part of a command, or even just a topic, and be presented with a list.

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
  63. *BAM* Wish granted. by devphil · · Score: 2, Informative


    You are asking for programmable completion, which zsh and ksh have had for years, and bash just added a couple of point revisions ago. Look for the "bash completion" project at freshmeat to get a large library of hooks. Some distros already distribute the library, you just to turn it on (e.g., for Debian, uncomment some stuff in /etc/bash.something).

    For ls, I type "ls --q<tab><tab>" and get a list of options beginning with q. For make, I type "make cl<tab>" and it completes the target name to "clean". And so forth.

    I contributed one that does option completion for gcc, then somebody rewrote it. :-)

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
  64. My experience as a T.A. by ca1v1n · · Score: 2, Interesting

    I've TA'd a few 2nd-year CS courses, and I've noticed that even the most primitive CLI-proficient users are leaps and bounds ahead of the most advanced GUI-adept users when it comes to understanding the fundamentals of computation. CLI users are quite familiar with things like turing machines, because much of what they do behaves in a similar fashion. GUI users can't do anything without triggering events, dealing with multithreading, etc. It's so complicated they don't really know where to start when we make them build them themselves for the first few times. Our department has a few low-level classes that emphasis GUI-based programming, and a few that emphasize CLI-based programming. The students love the CLI, because, get this, it's a simpler and more intuitive way of doing things.

    Granted, the average newbie and the average starting CS undergrad are a little different, but I've definitely witnessed the phenomenon at work.

  65. CLI is easier by Brandybuck · · Score: 2, Interesting

    In my experience, I see that newbies get along better with the CLI than with the GUI. Perhaps this is because they "know" the CLI is hard, they pay attention, but because they "know" the GUI is easy, they think they're stupid when it's not.

    But another reason is that GUIs have an infinite number of states, whereas when he see a command line prompt, you know exactly what state the system is in.

    I gave me parents my old 8086 running DOS. They had no problems with it. When I told them what to do, they wrote down the instructions step-by-step. Now my mom has a Windows system, and she's as confused as I've ever seen her. I can't give her step-by-step instructions, because one can never know the exact state of the system to start from. If the order of the menu items change she gets lost. If she installs a new program the icons on the desktop change position and she gets lost. I've even had her accuse me of breaking the computer when I forget to remaximize the Internet Exploder window after I was done using it. Since it wasn't maximized she didn't recognize it, and wanted me to put the system back the way it was.

    It took her the longest time to realize that the purpose of moving the mouse was to reposition the mouse cursor. For a while she was wondering why moving it two inches to the left and clicking didn't always bring up the menu.

    My mother is not stupid, she just hasn't groked the underlying, unwritten and unexplained paradigms behind the GUI. She doesn't think of the computer as something to interact with, but as a machine you issue commands to. Hmmm, she is pretty smart after all...

    --
    Don't blame me, I didn't vote for either of them!