Linux Desktop: Command Line vs. User Interface
|
|
|
Comments (22)
2 earlier comments in the full thread.
Everyone forgets that a command line has a grammar. The various Linux shells even have programming constructs like while-do-done, if-then-else-fi, case-esac, etc etc.
There are things you can't express without a grammar. Technically speaking, you can't express palindromes with regular expressions, but you can with a grammar.
Add in programming constructs and you can express even more. If this were not the case, we humans would not have languages with what linguists call "generative grammars". We'd have something more like flashcards, and occasionally rise to the level of a rebus.
A GUI has *none* of this, it usually doesn't even have regular expressions.
Simply put, things exist that you just can't express in a GUI. You must have a command line occasionally.
There are things you can't express without a grammar. Technically speaking, you can't express palindromes with regular expressions, but you can with a grammar.
Add in programming constructs and you can express even more. If this were not the case, we humans would not have languages with what linguists call "generative grammars". We'd have something more like flashcards, and occasionally rise to the level of a rebus.
A GUI has *none* of this, it usually doesn't even have regular expressions.
Simply put, things exist that you just can't express in a GUI. You must have a command line occasionally.
Long-time lurker, first time poster.
With the command line, as others have said it's not that the CLI is required in most cases, it's that the CLI is often BETTER for what you're doing. There is something else nobody has really mentioned yet, though. The CLI is in large part a standard environment, so you can use the same tools and commands across distros with wildly different GUIs.
Even without that there are a lot of different areas (file movement, configuration changes, remote admin) where using the CLI either lets you get things done faster or gives you a greater deal of control over what you're trying to do when compared to using the GUI.
For an example most probably wouldn't think of, take cmus:
cmus is a text-based music player and it blows any other "light-weight" program of the sort out of the water as far as I'm concerned. It opens instantly, you can search for songs the same way as if you were using vi or less (/ to start your search), and you can set up any number of custom key-bindings for it. It takes a little bit of knowledge to use, but you pick it up quickly and it's faster and lighter weight than anything else I've tried, including XMSS.
That encompasses both CLI advantages and its main disadvantage IMO. You can do things faster and with more control on the CLI, but you need to actually spend a bit of time learning it.
With the command line, as others have said it's not that the CLI is required in most cases, it's that the CLI is often BETTER for what you're doing. There is something else nobody has really mentioned yet, though. The CLI is in large part a standard environment, so you can use the same tools and commands across distros with wildly different GUIs.
Even without that there are a lot of different areas (file movement, configuration changes, remote admin) where using the CLI either lets you get things done faster or gives you a greater deal of control over what you're trying to do when compared to using the GUI.
For an example most probably wouldn't think of, take cmus:
cmus is a text-based music player and it blows any other "light-weight" program of the sort out of the water as far as I'm concerned. It opens instantly, you can search for songs the same way as if you were using vi or less (/ to start your search), and you can set up any number of custom key-bindings for it. It takes a little bit of knowledge to use, but you pick it up quickly and it's faster and lighter weight than anything else I've tried, including XMSS.
That encompasses both CLI advantages and its main disadvantage IMO. You can do things faster and with more control on the CLI, but you need to actually spend a bit of time learning it.
At least this thread, so far, is sensible :). Seems like in every CLI vs. GUI discussion, the GUI fans freak out and start screaming "Don't you take my GUI away!!" Nobody ever says they want to take their GUIs away. But for some reason they go all defensive.
Most people are visual, and a good GUI gives you good guidance on how to do what you want to do. But good GUIs are rare; most of them are inefficient and make you jump through too many dialogs and tabs, and you're moving the cursor all over the place. At any rate I love having both.
Most people are visual, and a good GUI gives you good guidance on how to do what you want to do. But good GUIs are rare; most of them are inefficient and make you jump through too many dialogs and tabs, and you're moving the cursor all over the place. At any rate I love having both.
Having done phone tech support with total strangers, and even doing it lately with family and friends, I have the ability to communicate with syntactic and verbal concision.
Any time I am manipulating files, beyond simple edits or downloads, I find the CLI to be my preferred HCI method. (And it's a TLA trifecta!)
I'm considering making a cheat sheet for my mother, who still doesn't quite grasp cut-paste and copy-paste. Having first encountered a GUI in Commodore 64 GEOS, it took her a few years of Windows and Linux to remember that the days of single-tasking are behind her. But just last week, I caught her moving windows around so that she could visually re-type something from one window into another. I nearly exploded in frustration.
http://m.xkcd.com/763/
Any time I am manipulating files, beyond simple edits or downloads, I find the CLI to be my preferred HCI method. (And it's a TLA trifecta!)
I'm considering making a cheat sheet for my mother, who still doesn't quite grasp cut-paste and copy-paste. Having first encountered a GUI in Commodore 64 GEOS, it took her a few years of Windows and Linux to remember that the days of single-tasking are behind her. But just last week, I caught her moving windows around so that she could visually re-type something from one window into another. I nearly exploded in frustration.
http://m.xkcd.com/763/
As far as I can see, no one here has claimed that the CLI isn't sometimes the BEST (quickest, most-efficient, etc.) tool to use in specific circumstances.
But it seems to me that the article's statement that the GUI is "suited" to about 80% of most common uses implies that the GUI is "unsuited" to the other 20% of most common uses -- and I personally haven't found that to be the case at all.
Sure, I'll use the CLI if and when it makes things significantly easier -- but those instances are becoming fewer and further apart than they used to be for me. I increasingly find myself completing tasks in the GUI instead of looking up and deciphering detailed-but-cryptic man pages to try to determine (or remember) the exact syntax and intricacies of CLI commands that I rarely use.
And I've been computing long enough that I no longer care if I get any "cred" for using the CLI. ;)
But it seems to me that the article's statement that the GUI is "suited" to about 80% of most common uses implies that the GUI is "unsuited" to the other 20% of most common uses -- and I personally haven't found that to be the case at all.
Sure, I'll use the CLI if and when it makes things significantly easier -- but those instances are becoming fewer and further apart than they used to be for me. I increasingly find myself completing tasks in the GUI instead of looking up and deciphering detailed-but-cryptic man pages to try to determine (or remember) the exact syntax and intricacies of CLI commands that I rarely use.
And I've been computing long enough that I no longer care if I get any "cred" for using the CLI. ;)
I tried really hard at one point to manage my mail in the console, and it was a miserable failure.
For software updates, I do use a gui but prefer the output I see in the console. The process just seems to work better that way.
When I need to write a quick little something or hack into a configuration file, I tend to use vi in the console just because I'm comfortable enough with it. If there's a lot of copy/cut/paste, however, I do open a GUI editor (lately Mousepad, sometimes Geany) just to make it easier. If I were more accustomed to moving type around in vi, I'd probably use it more, but I'm not, so I don't.
But I enjoy a little play in vi every once in awhile. I never did enjoy configuring mutt, msmtp and procmail.
For software updates, I do use a gui but prefer the output I see in the console. The process just seems to work better that way.
When I need to write a quick little something or hack into a configuration file, I tend to use vi in the console just because I'm comfortable enough with it. If there's a lot of copy/cut/paste, however, I do open a GUI editor (lately Mousepad, sometimes Geany) just to make it easier. If I were more accustomed to moving type around in vi, I'd probably use it more, but I'm not, so I don't.
But I enjoy a little play in vi every once in awhile. I never did enjoy configuring mutt, msmtp and procmail.
Coincidentally, I have been trying CMUS for a while (fed up with Amarok).
But it's a bit hard to use though, and there are commands / key combinations to remember. Sometimes, I use mpg123 or mplayer from the command line as well, but nowadays I switched to QMMP. It looks a bit more orderly than CMUS in my opinion.
But if tuxchick states this is a sensible thread, I'd better stop discussing now to maintain sensibility. Did I tell I do 80% of my file management from Bash BTW? I have no idea why, probably because it just works.
But it's a bit hard to use though, and there are commands / key combinations to remember. Sometimes, I use mpg123 or mplayer from the command line as well, but nowadays I switched to QMMP. It looks a bit more orderly than CMUS in my opinion.
But if tuxchick states this is a sensible thread, I'd better stop discussing now to maintain sensibility. Did I tell I do 80% of my file management from Bash BTW? I have no idea why, probably because it just works.
You mean you use Bash to launch your file management programs? Bash isn't a file manager.
[/pedantic-jerk-mode]
[/pedantic-jerk-mode]
Quoting:[/pedantic-jerk-mode]I had the same question when I read that comment, so I prefer to think of it as "ask-for-clarification mode." ;)
Well sometimes you have to launch it in root mode. Besides its easier for me to delete certain files that has root permission with "sudo rm -R file.extension". Than to launch file manager, look the folder, sort by type, select, delete, empty trash.
Command line definitely requires you to spell correctly though, that takes effort.
Command line definitely requires you to spell correctly though, that takes effort.
Bash for file management - I think he means "the classics": mv, cp, rmdir, rm, cd
@tmx tab completion!!
I did an install the other day - I think it was NetBSD - with sh instead of bash, and I missed auto-completion very much.
$ cd /usr/ports/shells/bash ; make install
(or something like that)
(or something like that)
@Steven, my use of it is ingrained. I dont even think about it anymore. To the point where when I am in IRC I tend to try and tab complete words that I am too lazy to type out. Thus adding extra keystrokes unitl I realize that tab isnt doing a dratted thing for me.
Quoting:You mean you use Bash to launch your file management programs?
I admit. Actually, you're right: I use Bash to launch my file management programs 'cp', 'ls', rm' and 'mv'.
BTW I consider rmdir about the most useless command ever, because who uses it when there's rm -r.
Steven: I know the feeling. Back when I was using OpenBSD, I wouldn't want to stop using csh in favour of Bash, I just typed everything once again. Or better, familiarize yourself with history / exclamation marks.
gus3: pkg_add bash
Heh. I knew about the Ports collection before I knew about pkg_add.
Quoting:BTW I consider rmdir about the most useless command ever, because who uses it when there's rm -r.
It's useful when you want to ensure the directory is really ideed for sure and absolutely empty ;) [Or when you have a bunch of directories and you want to remove only the empty ones, you just do 'rmdir *' and "the God will tell them apart"]
I didn't stick with NetBSD - this was on my Sparcstation 20. I just installed a second 50 MHz processor (the power! the glory!) and thought that NetBSD would allow me to run in multiprocessor mode.
Well, NetBSD 5 doesn't do MP on Sparc 32, and NetBSD 4, which is supposed to have this capability, is a bit crashy. I had better luck with NetBSD 4 with a single processor, but since I have a box full of Sparc parts, I want to keep it dual CPU.
I bit the bullet and did a Solaris 9 installation, which I'll evaluate. Compared to a "modern" Linux or BSD, Solaris - circa 2003 - is barbaric. One thing it does have is working suspend.
Well, NetBSD 5 doesn't do MP on Sparc 32, and NetBSD 4, which is supposed to have this capability, is a bit crashy. I had better luck with NetBSD 4 with a single processor, but since I have a box full of Sparc parts, I want to keep it dual CPU.
I bit the bullet and did a Solaris 9 installation, which I'll evaluate. Compared to a "modern" Linux or BSD, Solaris - circa 2003 - is barbaric. One thing it does have is working suspend.
Post a comment
A free account is needed to post. Write your comment here first: your text is kept in this browser while you sign up or log in, and is waiting for you when you come back.
Your message:Markdown: **bold**, *italic*, [text](https://link), - lists, > quotes, $x^2$ for math. Formatting help
Sign up and post (it is free) or Log in and post

The key word there is "required". It's OK to have a gui; but sometimes the cli is faster, easier, or better for a given task. It's good to have both options.