In the run to abandon command line interfaces, we've left behind the versatility of language.

Saturday
24 Feb 2007

Command Line for the Common Man: The Command Line Comeback

Commentary

Web 2.0 Style Command Prompt
Command line interfaces are bell-bottom out-of-fashion in the current Web 2.0 boom: I have yet to see an Ajax-enabled glass-reflected command prompt. Let’s face it, command line interfaces are extinct to the masses. The GUI dealt the first blow, and now the Web has nailed to coffin on the old style text interface, and it seems to have been a boon for the user. I don’t know if I can set up a printer on the command line, but I do know that I don’t want to try.

But maybe that isn’t the fault of command line interfaces in general. Maybe it’s just the command lines we’re used to. The hard part of learning Unix is memorizing command names as unfathomable as Stonehenge’s origin. And even if I do remember the command name, remembering its options is like bobbing for apples in a cement mixer. I still have to ask my co-workers what flags are needed for untaring a gzipped file. “tar -xfvz”. How could I forget?

If commands were memorable and their syntax forgiving, perhaps the command line wouldn’t be going the way of the punch card. And perhaps they aren’t. Perhaps, command lines are staged for a comeback.

Language

In the run to abandon command line interfaces for the GUI, we’ve left behind the versatility of language.

Language has an immense amount of descriptive power. Pictionary is a game where you try to represent objects, places, and abstract thoughts in pictorial form. It’s hard. There is no reverse game. Words can capture abstractions that pictures cannot.

The icons that Microsoft Word puts in its standard toolbar are a great example of graphics being used as a poor replacement for words. Can you figure out what each of these icons does?

A parade of unrecognizable icons from Word
I quizzed my coworkers at Humanized. Their success rate was an underwhelming 27%. You may do better, but that’s not the point. You had to learn those icons as some point by mousing over them to see their tool tip. Those icons, no matter how self-evident Microsoft would like them to be, require a fallback of language to actually explain what they do.

Similarly, there is a common belief that localization costs can be reduced through the use of icons. According to ENLASO, “Icons and symbols afford global manufacturers design advantages that make products easier to produce, learn, use, and maintain.” Unfortunately, the overuse of icons in liueu of text doesn’t make a program easier to learn while making it language agnostic. Instead, it makes the program equally undecipherable in all languages.

Type What You Want To Do

In the last couple of years, the power of language is once again being harnessed, but this time in more humane ways. The search revolution is a powerful example.

The move back to language started with web search engines in general, with Google placing the capstone when it’s name became the house-hold verb for “typing to find what you want”. In fact, Googling is almost always faster then wading through my bookmark menu (which says there is something wrong with using menus as a mechanism for accessing bookmarks).

After the web, search came home. OSX, Linux, and now Vista have integrated desktop searches that make searching your computer as nice as searching the web. You can now, with a few memorable keystrokes, find what you are looking for. This stands in stark contrast to racking your brain trying to figure out where, in your morass of files and folders, you put a document. This bears repeating: it is often easier to use a desktop search than to find something you placed on your computer. Desktop search is a large step forward towards making computers more humane. With desktop search you no longer have to think the way the computer does.

But “typing what you want to find” is still a far cry from “typing what you want to do”.

On The Web

So, besides search, what does language and command lines have to do with the web?

Imagining using a drop-down menu to select the one web site you want to go to out of the 100 million web sites in existence. Ludicrous! How do we actually surf to a site? By typing an address into the address bar. When we want to go to the mail “application”, we type in “gmail.com”; when we want to open a news “application”, we type in “nytimes.com”. On the old unix command lines, we would type type “pine” and “rn”. See a similarity? The address bar is just a primitive command line. A command line that your grandmother can—and does—use.

As one looks around the net, one can see the power of language being harnessed to amazing effect. The quick-add features of 30boxes.com and Google Calendar are my favorite examples: they forgo the clunky and time-consuming forms (that make you think the way the designers thought) for the utter simplicity of just typing an event’s information. The quick-add feature doesn’t even really feel like an interface, which is the highest compliment an interface can get: the better an interface is, the less it’s noticed.

Standard GUIs, with their drop down menus, check buttons, and tree-lists just cannot compare to the range of options that a text interface gives effortlessly. In just five alphanumeric characters, you can choose one out of 100,000,000 possible sequences. And choosing any one sequence is just as fast as any other sequence (typing five characters takes roughly 1 second). I challenge you to come up with a non text-based interface that can do as well.

The Future

It’s time for new, user-centric command line interfaces to make a comeback. A command line that lets you type or say what you want to do, and the computer does it. That’s what the interfaces of the future will be. And that’s what Enso aspires to.*

Ziad Hussain recently pointed me to this excellent article by Don Norman, UI Breakthrough-Command Line Interfaces. It was now a year ago that Don and I met for breakfast. I demonstrated Enso to him and by the end of the eggs-benedict, our consensus was that it was time for command lines to rise again.

*It has a long way to go to fulfill that vision. But, it is a start.

by Aza Raskin



COMMENTS

40 Voices Add yours below.


The best example of the resurgence of the well-crafted command line isn’t those calendar apps you mention, but Quicksilver for Mac OS X. I’d assumed it was part of your inspiration for Enso?

Quicksilver lets you type the names of applications or documents and open them–the standard find-n-launch behavior of a few other applications. It then extends that idea into a huge suite of commands: emailing a selected file, running the text on the clipboard as an applescript, skipping a song in iTunes, appending some text to a file somewhere, all without ever invoking or bringing up any of those applications. Spotlight + Unix pipes in a way.


Agreed. I’ve been dancing around this issue for awhile, never really nailing id down like this post does. Some thoughts:

1) typing accuracy… the new tools Enso, Quicksilver, FARR, etc… need to/are taking into account the fact that I can’t spell very well and that I’ll be using backspace quite a bit. Well, I haven’t figured out how to make QS let me Backspace without retyping everything, but eh.

2) I’d like to extend your “address-bar-as-a-CLI” a little further by bringing up Opera (I’m sure other browsers do this as well). That address bar can take google searches directly by prefixing your query with a “g” character.. you can assign any search engine with it’s own prefix, example:
“imdb ‘The Queen’” will get you an IMDB search.

Further command line like, you can “nickname” your bookmarks and enter those in the address bar to give you keyword access to you bookmarks…. and you can also pull up your history, or configuration information as well.

I think as long as I can use the nicknames and things like Enso’s “learn” command to model the commands after what I want them to be, then I think it will alright.

(I haven’t found out how to do the “learn/teach” in QS, but I’d really like to know: lopeze73 at gmail)


You can do the same “search from the url bar” in Firefox and Internet Explorer too.

I talked a little bit about the expressive power you can get from command line interfaces in my blog (http://icr.vox.com/library/post/the-power-of-command-lines.html). You can make a lot more available to power users whilst using the same very simple interface.


Indeed, a command line interface can be as or even more effecient than GUI. But there are (more than) a couple of stumbling blocks on the road of proliferation of human-friendly command line interfaces.

First of all, long gone the days when typing fast was essential, so not all users can hit 5 keys a second. For instance, my father who used to be a computer engineer two decades ago, can hardly type 2 keys a sec.

Secondly, the versatility and most improtantly verbosity of some languages can backfire. My native language is Russian, and I’ve been a witness of one attempt to ‘port’ Basic (programming language) to Russian to make it ‘natives’-friendly. Not only all commands were twice or thrice longer than their English counterparts, their combinations hardly sounded Russian at all.


ICR-

I know you can google search in IE7, but can you put a switch in front of your query to specificy the search engine?

Admittedly, I don’t use those browsers, so I wouldn’t be surprised if you could, but I just tried IE7 and couldn’t do anything but a google search.

I did play around for a minute or two with adding additional search engines- but I can’t figure out how to invoke them from the address bar….


In IE6 you can type a query, and then select the “Search xyz” from the URL suggestion drop down. I don’t know if IE7 has added the switch, I doubt it.


The point in the article is well made. I was an ardent user of Command Prompt until I discovered Cygwin. I had all my usual commands configured as cygwin shell scripts (like launch word, jedit etc). Now I exclusively use Enso for launching, differing to Cygwin for filter and text processing.

Microsoft has been using the same shell for nearly two decades now. Other than the command line completions and a few minor additions, DOS has been what it was when I first used it 20 years ago.

When Windows announced PowerShell, I was giddy with joy, but needless to say my enthusiasm lasted shorter than the time it took to download it.

It is time for the rebirth of bash. Enso is a good start and a really good one at that.


Great topic. The GUI world of Windows leaves much to be desired. I use JPSoft’s 4NT and “Take Command” command line products. While not free, they are well worth the money if you do much with command lines and batch files under Windows.

I also love Bayden SlickRun — that app saves me so much time every single day.

I’ve read a lot of great things about QuickSilver. It’s the one thing that makes me Mac-envious.


I haven’t used either of your current products, but have you thought of applying this search method to program options? Consider MS Word’s hundreds of options. I would like to be able to type a few characters to find the option I need to change instead of scanning tab after tab. Include tooltips in the search and I won’t have to mouse over different checkboxes to see details on what they do.


Maybe off-topic, somehow concerning CLI vs. icons, I would love a discussion on Humanized over the OLPC interface

http://wiki.laptop.org/go/Guidelines


Let?s be clear: it?s not a command line user interface if it only does one command. Google does only one command: Search. The address bar is for one command: Load Page (that it tries to search if it can?t load only annoys me; if I want search, I?ll use Search). If there isn’t a keyed entry to specify the command, it isn’t command line. Google and the address bar are *form* interfaces. I?ll concede that intelligent parsing and matching of the input, such as seen in Google Calendar, are a significant development in form interfaces, but it doesn?t make it command line. It?s still one command: add event. Now the use of escape sequences such as a ?g? prefix to Google is more like a command line, but it also illustrates the weakness of command line: it has to be learned and memorized (quick ?how many can tell me the Google escape sequence to search Google Scholar from the home page text box?). Like using Ctrl-Enter to add ?www.? and ?.com? to address bar entry, it?s an expert shortcut not suitable as the primary means of interacting. But I do agree that icons suck as command labels.


Actually Google does have some command line functionality. I listened to a Google presenter last year and he talked about some of those functions. I think they’re designed for accidental discovery. For instance enter a package tracking code and it will recognize the service and offer a link to go straight there. I have tested it with FedEx, UPS, and USPS. It also recognizes addresses and phone numbers (at least U.S. ones). It also performs calculations. Try “sqrt((5*12)+2/(6+5)-55)” which works. Who knows what else is built in!


Would it be better to avoid calling it a command line interface?


The interface of the future.

The interface of the future is a fully user customizable personal interface for personal use.

We have the personal computer.

Why not a personal interface.

The personal interface is a master interface that sits on top of all applications.

The personal interface can use gui, cli, and search all in one interface.

google: inputexpert
google: don norman cli

This was not possible before because of the use of the stand-alone mouse and keyboard.

The interface of the future is possible because an advanced keyboard, the keyboard of the future, has been developed to give the user total control of the computer screen from the home row without moving one?s hand to a mouse to point.

The user can point, click, type, and scroll in any order simultaneously and instantly all from the home row.

Hot keying, finger gymnastics, short cut keying still can be used, but is old technology.

The keyboard of the future and interface of the future enhance and empower the users capabilities.

from the ?father of the perfect keyboard.?


Not to harsh on the details or nothin’, but I’ve watched my grandmother surf the web and she doesn’t use the address bar. In fact, the way the browser is set up, the yahoo toolbar search input *is* the address bar (the address bar is pushed to the far right so as to be hidden and unusable).

I’m just asking the question: How many people different from yourself have you watched use the internet?


GNOME Deskbar (raphael.slinckx.net/deskbar/ ) has for years done much of what Enso and Quicksilver do, and I have made a proposal to extend it (http://bugzilla.gnome.org/show_bug.cgi?id=410753)

Currently it lets you launch applications, open URLs, email, and live-search your desktop for files and folders, live-search the web, invoke common computer actions, switch windows, look up words in a dictionary, and search del.icio.us.

Somewhat unfortunate is the verb-object interface: it shows files to be opened in one list, people to be emailed in another list, web pages in a third list, etc. So if a command was made to email a file, it wold have to be a separate list from the files to be opened.

And it would be good to see output messages from invoked commands.


While traditional-style shells have several limitations, their approaches to solving their problems are I think interesting. One solution to the problem of memorizing commands and options is completion. If you type part of a command and press , the Friendly Interactive Shell (fish) shows you possible completions and their meanings. So, type “tar -” and see all the descriptions for the options “x”, “f”, “v”, “z”.

There are also commands (implemented as scripts) to unpack an arbitrary archive, so you can type “unpack file.tar.gz” and Fish says “Unpacking tar archive”. There are also commands to open arbitrary files, and we have plans to make commands to edit and view.

Of course a real THI, such as object-verb order, multiple selections and direct manipulation would be even better, but we are working within the constraints of the Unix terminal emulator. What else is possible within these constraints?


Sorry - the above post is missing some text because the blog engine interprets it as markup. It should read:

If you type part of a command and press <Tab>… So, type “tar -<Tab>”…


Anton - is your father faster at finding the little undo icon in an application, then moving and pressing the mouse than typing “undo”? I don’t know what it is in Russian, but in Bulgarian the command might be “Vyrni”, which is not all that long.


Edie - yes, in Firefox (and probably Mozilla and Netscape) you can use smart bookmarks to specify what URL to apply your typed text in the URL bar. If you bookmark http://en.wikipedia.org/wiki/Special:Search?search=%s as “wp”, then you can type “wp History of Bulgaria” to read Wikipedia’s article about the history of Bulgaria.


The IT Profession
March 11th, 2007 3:10 am

“What tremendous handicap is this guy laboring under?” I wondered all through the read, and then I landed at the bottom, where you declare an acquaintance with Don Norman. Should have known.

It appears that the information architects real plan all along was only to discredit the superior interfaces that they grew up with for twenty years, until everyone was bullied into being illiterate zombies pointing at little pictures, incapable of doing anything for themselves. Then you “bring back” the command line and the masses are supposed to hail you like Moses coming down Mount Sinai. 3. Profit!

The fact is that there is a whole concentration camp of victims in your wake, the people who really know something about computers, the people who have had to work themselves twice as hard to undo the damage you’ve done to a whole generation of users. It is us who have had to suffer the accusations of ‘elitism’ and that we were ‘making computers too hard on purpose just for job security’, with your kind barking at the back of the crowd urging them to burn us in effigy the whole time, while without us, software would not have survived.

But now that Microsoft is free to ‘invent’ the command line, which it stole from Unix and MacIntosh like everything else, suddenly command lines are OK again where M$ $hills like you are concerned.

I have gone through hell most of my life because of people like you and Don Norman. It’s too late to seek our forgiveness now.

The command line has been here since before you came, never went “out of style” and will be here after YOU’VE gone “out of style”. Sadly, the next snake-oil charlatan will be here to take your place.


just some guy
March 11th, 2007 6:47 pm

In business computing, we’re partially returning to an era of dumb clients (consisting of a browser and an arbitrary underlying client operating system - Mac/Windows/Linux/handheld) and centralized data/application storage because it has some advantages. Storage for collaborative applications is an economy of scale.

Now all Microsoft has to do is create an uninspired knockoff of Quicksilver and call it “innovation”.


Seems like a pretty disappointing QuickSilver imitation. Just watching the video it seems like you have to hold down Caps Lock the whole time while you type what you want — yuck. Beyond that it actually requires you to type “open ” all the time. With QuickSilver I hit “Ctrl+Space fi” and I’m in Firefox. With Enso, I’d have to do something like “CAPS open fi Release CAPS”. Four keystrokes more, plus triple negative points for requiring a hold on one key (I can’t use that finger to type now — that’s not humane!). I hope I’m really wrong about how Enso works — I’d love to be.

Anyway, while someone tries to get *something* working like QuickSilver for Windows, I’m happily using the real thing my Mac (for free!).


I’ve noticed this recently when launching applications in the Linux KDE desktop. I’m now finding it quicker to go “Start->Run” then type in “D-I-G” and hit “enter” to launch Digikam, for example, than to navigate to it via the start menus. This works because the system remembers that I often run Digikam (the KDE photo organizer thingy), and so I have very little typing to do for it to realise I want to run Digikam again.

I think the disadvantage with CLI has always been that the computer gives no help in discovering what possible options are available to the user. In this regard, the GUI menu is far superior. An example is the hierarchical Windows start menu, which shows you exactly what applications are available to you. I think “The Design of Everyday Things” has a term for this; explorability?

Modern programming IDEs seem to solve this limitation of CLIs by using “code completion”, a feature which shows you all the available commands in the current context in a neat little popup window. I’ve found I can just dive into an unknown API and start coding without having to first refer to pages of documentation. Adding a similar feature to a Unix shell might make a tremendous positive change to the otherwise terrible usability.


To follow Tim’s comment, I would like to see you talk more, perhaps in a future piece, about the specific design choices you made for Enso. I understand — and support — the general idea of the keyboard as a renewed & rejuventated interface device. Like many of your readers here, I too use Quicksilver, AppRocket, etc. So I get the big picture.

But about the *details* of Enso . . . one interesting choice is that you impose specific commands (such as “open”). This seems like a huge break from the world of “launchers”, a step into the territory of command-lines that actually have commands (e.g. bash). I’m curious to know what you are aiming to gain by that? How would you compare yourself to something like Quicksilver, which is goes beyond launching, into the terrain of Unix pipes, but without a verbal command syntax such as “open” or “calculate”? Quicksilver seems to be managing to give the users the power of complex actions, without requiring them to learn a vocabulary of explicit synonyms for those actions. (Thus, in QuickSilver, to “calculate” something, you don’t have to use the word “calculate” — you enter in a calculation and it just does it.)

Another design choice of yours, which I do think is pretty innovative, is the ability of Enso to grab user-selected stuff from other programs. Does this go beyond (demoable but perhaps ultimately limited) plain-text selection? Do you see this ability growing into an important part of your tool?


The Anti-Mac papers pointed out the need for language quite a while ago…..


Dheelus Maximus
March 22nd, 2007 3:22 am

Nothing can take away the ‘cool’ factor of knowing CLI commands….UNIX admins still rule…

Peace,
Dheelus.


Other research in this area is:
http://submind.verbum.org/hotwire/wiki
which is more targeted for developers/sysadmins.


A US female writer who wrote a book as a male prostitute tells a court that her fictional creation was not a hoax…


wayne carkido
July 10th, 2007 5:21 am

I totally disagree.

5 typed characters = 5 seconds. Sorting through my bookmark toolbar that has 12 folders with several subfolders within each that are very descriptive takes me way less time to find a bookmark than typing something in hoping to get the right url. For all of my 200+ bookmarks, I probably know 10 urls, so there’s no way googling for the other 190 will take less time. I also know that most of the bookmarks I have took me several searches to find the right web site and having to re-search those I would waste hours each time.

So I totally disagree with typing web sites in a url bar would be faster than a well organized bookmark toolbar.


I love the shell; I maintain a blog (http://nixshell.wordpress.com) and tutorial (http://steve-parker.org/sh/sh.shtml) on the topic, just because I enjoy the CLI so much, as opposed to GUI ways of doing things.

As you say, with the GUI, we lose the power of language. There’s no graphical way to say “do this, then do that, and if it fails, do something else”, or to say “show me all text files over 10Mb which begin with ‘foo’”.

GUIs can be convenient for some things, but most of the time, I don’t even click icons; as I’m at the command prompt anyway, it’s easier to type “firefox&” to kick off a web browser than to go to the mouse, find the firefox icon, and click it. I may be an extreme case there, though :-)


Cryptocarnivore
August 16th, 2007 4:12 pm

Thanks Aza, this is really inspiring!
> It’s time for new, user-centric command line interfaces to make a comeback.
> A command line that lets you type or say what you want to do, and the computer does it.

Here’s my vision how that interface can become reality:
the next evolution step will be a context sensitive, implicit command-based interface driven by collected user data.

With ubiquitous search boxes on the desktop, users will frequently formulate a desired task in terms of a text search. They will frequently get step-by-step instructions as result. Naturally, they will wonder why they have to perform these steps manually, instead of having the computer do that. Et voila, here’s already the new interface: just type your query in the DoIt-box instead of the search box.

For example, the user has taken a photo and wants to get rid of the red-eye effect. She just types “red-eye removal” or simply “red-eye” and gets her picture fixed.

How can this work?

Two things are required:
- context information about what the user is currently doing
- a huge public database which records users’ interaction with their computers (Yes, smells like Big Brother, but leave that aside for a moment).

Staying with the example, the computer knows from the context that the user is viewing a picture and that this picture was taken with a camera. Together with the text “red-eye” this information is used as a query into the database of what other users have done. The results contain pre-recorded actions which are then executed by the computer. The user might have to choose from multiple result pictures, analogous to web site search results.

So it’s basicly a socialized text-based interface (finally, here’s the buzzword). The computer doesn’t even try to interpret the user’s commands, but instead uses statistics to find the best matching actions other users have performed before. That’s the key point: data mining on human-contributed data is on magnitudes more powerful than today’s AI trying to be humane in terms of understanding, syntax forgiveness and so on.

This kind of interface is essentially syntax-free. It is not neccessary to explicitly use verbs in imperative form. There’s no need to learn any commands, which makes it very efficient for the casual user. You just have to guess which words other users have used to describe the task at hand. Which is –almost by definition– humane.

This text has become too long, so i put the full version on a blog:
http://cryptocarnivore.wordpress.com/2007/08/16/the-next-text-based-user-interface/


I’m surprised no one’s mentioned Google Desktop in this context so far. I now use it both as a command line (launcher) and for searching. It’s sooo much faster than using the Start menu or even the Quick Launch bar sometimes (if fingers are on the keyboard already it’s faster to type than to switch to mouse and click).

Tap [ctrl]-[ctrl] and type the first 3-5 characters of whatever program I want to launch, or document to read/edit, and slap [enter] and I’m on my way. Append the characters with [ctrl-w] to search web or [ctrl-d] for desktop, instead of [enter] for more fine-grained control (there are other [ctrl-letter] combinations for other specialised searches).

One thing I really wish it did, which I’ve seen in Dave’s Quick Search Deskbar (www.dqsd.net) , is do math without going to google.com, and be able to specify nicknames (like “ph don smith” to search internal phone directory). In a similar vien see YubNub (www.yubnub.org), “a (social) command line for the web”.

Oh, and for the record, the first time I heard the address bar heralded as the new command line was several years ago at … darn can’t find it; stupid internet bit-rot. Anyway, ’twas almost a decade ago. Oldest reference I can find now is http://207.22.26.166/bytecols/2001-08-15.html


Two new studies show why some people are more attractive for members of the opposite sex than others.

The University of Florida, Florida State University found that physically attractive people almost instantly attract the attention of the interlocutor, sobesednitsy with them, literally, it is difficult to make eye. This conclusion was reached by a series of psychological experiments, which were determined by the people who believe in sending the first seconds after the acquaintance. Here, a curious feature: single, unmarried experimental preferred to look at the guys, beauty opposite sex, and family, people most often by representatives of their sex.

The authors believe that this feature developed a behavior as a result of the evolution: a man trying to find a decent pair to acquire offspring. If this is resolved, he wondered potential rivals. Detailed information about this magazine will be published Journal of Personality and Social Psychology.

In turn, a joint study of the Rockefeller University, Rockefeller University and Duke University, Duke University in North Carolina revealed that women are perceived differently by men smell. During experiments studied the perception of women one of the ingredients of male pheromone-androstenona smell, which is contained in urine or sweat.

The results were startling: women are part of this repugnant odor, and the other part is very attractive, resembling the smell of vanilla, and the third group have not felt any smell. The authors argue that the reason is that the differences in the receptor responsible for the olfactory system, from different people are different.

It has long been proven that mammals (including human) odor is one way of attracting the attention of representatives of the opposite sex. A detailed article about the journal Nature will publish.


Someone mentioned some of the features that Google has, like math equations and (I think) Fedex tracking numbers.

Here’s some more:
*Math/Science constants, such as pi, e, phi, mass of an electron, etc..
*Book ISBN numbers are automatically recognized
*Movies that are currently in theatres are recognized and showtimes found
*Street addresses are recognized and a link to a maps.google.com search is the first result
*Search for “what is the answer to life, the universe, and everything” *without* the quotes.


“Would it be better to avoid calling it a command line interface?”

Yes. Something like “language interface” is better. Traditional command lines have very little to do with language, but this proposed interface is centered around it.

“Command line” just means “a way to enter programming language commands one line at at time”, whether that language is bash or Python or BASIC.

Command lines are a shortcut tool for developers, not a user interface.


Instructing the computer with a mouse (point and click) is like instructing a rather dumb* person using hand signals.

*because computers are not very smart

Imagine you’re the manager and they are the employee.

Hand signals would be OK for asking him/her to do relatively simple things at a time. You’d also have to have your hands free and do it real-time. Even if you found yourself asking him/her to do the same things again and again, you couldn’t “save” a sequence of hand signals. You’d have to wave your hands around every time.

Eventually it would get tedious if you wanted to give him/her more complex instructions, e.g., do task A then do task B then do task C, but only if you finish task B first.
There would be potential for being misinterpreted, i.e. making one wrong motion at the wrong time. The sequence would have to be well-rehearsed.

Now, if you knew the person could also understand written language, wouldn’t that make things easier? You could write out some instructions and issue them whenever you wanted to have him/her do that series of tasks.

That is the command line. It is thinking, one task at a time, in steps.

There are, to me, two major sources of elegance with the command line: 1. the programs are small and efficient and do one thing really, really well and 2. you can couple these programs together to do larger, more complex tasks. We call it “scripting”.
For example, you might have a small program that does task A, another that does task B and another that does task C.

Using command line allows you to write out a note to the computer to do task A and send the partially completed work into task B for more processing and then once finished with task B, send it on for final processing in task C.

Each small command line program is a devoted worker that does one thing, really, really well.
Once you become acquainted with this “worker” and know how to instruct him/her and how he/she works, it becomes very powerful. Because then you start to imagine all the different ways you can use him/her along with your other “workers”.

UNIX is really no difficult. What is difficult is breaking away from the GUI paradigm. Many of us are so used to the look and feel of Windows or the Mac that anything else does not “feel right”.

I can assure you, after a while this uneasiness wears off.
You get used to the command line. Just like in the beginning you got used to the GUI. Using a computer was strange at first, but you got used to it. Humans are masters of adaption.

The thing with the command line is that it gives the user power than he/she can NEVER get with a GUI. This is a fact. No matter what anyone says, or the comments they make. All sysadmins (I am not one) know the power of the command line. It is their little secret in some ways.
I am not sure all users are ready for that power. But if you are someone who thinks of themselves as a “power user” and you are still using GUI programs, you are not as powerful as a user that can us the command line. Because GUI programs are, by design, taking away some of your power - the developer has bundled several tasks togther and has decided for you what you will be able to do and not do with the program.

The developer has second guessed you. How you work, and how you think. It is his approach to the given task, not yours. You either like it or you don’t.

Command line programs tend not to do that.

They are most often free and you can look at the source code and compile them yourself (one starts to enjoy this more and more as it offers a level of control and cutomisation you don’t get with the GUI programs). The command line programs tend to be small and simple. More stable and less memory intensive. They tend to focus on doing one thing, and only one thing.

How you use them together to accomplish your work is up to you. The opportunity for creativity makes using the computer more fun; much less frustrating than the GUI programs that just can’t do what you need it to them without unneeded annoyances.

Leaving the GUI world behind is a liberating experience. It has obviated all frustrations I ever had with Windows and Macs, and renewed my interest in computers.


Is it really that hard to learn a few *NIX commands? I mean come on, most of them come with help arguments (–help and -h are the standard ones) and much more detailed descriptions in manpages (man program) if the short help doesn’t help you enough. People are just too lazy to try and learn these things because they’re so used to being able to know absolutely nothing and just point and click. And even then you get more specific help with tab-completion, which most modern shells provide. Discovery in the shell isn’t impossible; it’s just different and admittedly a little limited. You could get help on a command if you know the name, but you can’t figure out what to click to add a fancy border to your office document without a little beforehand experience either. Like someone else said, you could type tar -<Tab> and get help for options like -x, -v, -f, -z, etc.

As a side note, -v just shows you all the names of the files being extracted as they’re being extracted, and -z and -j usually aren’t needed to be used explicitly. You could just type tar -xf my-archive.tar.gz and extract the archive to the current directory.


about your MS word toolbar example: it’s true that few one can memorize everything, but it’s still easy to work with. If I were to do a format painter, all i need is mouse clicks, but will be hard/tedious to use command lines.


First of all, I think the term “command line” could just scare people away. Second, a combination of command line and GUI would be the best. Command might be good for new users when they are not sure what they are looking for.


POST A COMMENT

Please respect this public space


 Required

 Required



 

Live comment preview