7

Now this is my first time on Ask Ubuntu meta, but I thought to start a discussion on this.

I had a discussion with some windows users about Linux and Ubuntu. And one of the main reason they didn't like it is because whenever they tried to solve a problem by googling and ending on Ask Ubuntu, they got sent to the terminal and write some commands they don't understand. Most of the times the commands work, but that isn't the problem.

Wouldn't it be better to try to answer question with GUI solutions? I know this isn't always possible, but wouldn't this be better for the user and other users coming from Google?

  • 5
    There have actually been several discussions on the subject already and, while a new one is just fine, the old ones are still worth reading: meta.askubuntu.com/questions/130/…, meta.askubuntu.com/questions/6721/…, meta.askubuntu.com/questions/60/…, meta.askubuntu.com/questions/1122/… – Seth Nov 14 '14 at 19:33
  • 5
    There's also a huge (90 replies) discussion on why we still use the command-line on Ubuntu Discourse: Why are we still using the "DOS prompt" in linux?. Not exactly what we're talking about here, but related. – Seth Nov 14 '14 at 19:36
  • yea, seems like everyone agrees on best answers has both, and I agree with that. And that article Seth sent is exactly what I mean. You find a solution like that where you "just" gotta extract the files into '/usr/java' and then it works, there should be better solutions than that. Now I'm a big fan of using the Terminal, but I do understand why some users go back to Windows because everything is so confusing to do simple stuff. Average people shouldn't need to use the terminal? – Jeggy Nov 14 '14 at 19:54
  • 1
    You can help by finding out what questions they asked and adding screenshots! – Jorge Castro Nov 15 '14 at 18:52
  • 4
    Given that I see (in other areas) posts for using terminal commands to fix problems both in Windows and on Macintosh, I think that you just need to consider that a GUI can only reasonably be programmed to do so much. Often when trying to walk someone through a GUI solution I'm saying "look in the top left corner for the teeny-weeny icon that does not look like an icon" or something similar, when a single line command does the job quite nicely. – Charles Green Nov 21 '14 at 16:22
  • 3
    A comment on and write some commands they don't understand: It would be the same by providing a GUI solution: the fact that they understand or not is not related to the UI involved. Telling somebody to click there and there in some dialog doesn't help him to understand what's going on under the hood either. – kebs Nov 22 '14 at 16:08
  • 1
    The comment and write some commands they don't understand is an excellent reminder to all of us to try to explain the commands so as to reduce uncertainty but also to educate not just the OP, but all those who google the solution weeks and years later. – chili555 Nov 23 '14 at 14:20
  • 2
    Using the command line is not difficult, it is just new to GUI users, as was that gui when they started using computers. If they can adopt to a gui, scrolling through 20 buttons, finding the one they need and clicking it, they can surely adopt to straight-way writing what they need and hitting enter. So IMO, using the command line and educating other people of using it is a plus, and no need to avoid that. – user3459110 Nov 23 '14 at 21:20
  • 1
    This is like asking "wouldn't it be better if it just worked right in the first place so they didn't need help". – psusi Nov 24 '14 at 15:32
  • Wouldn't it be better if you had to click and open so many different menus and buttons and tire yourself instead of opening the terminal and copying and pasting a single line and have enough energy to work? Wouldn't it be better if you had to wait a lot of time to get your question solved just to get a GUI-based answer instead of accepting the CLI-based answer which came an hour ago? Come on, man, there should be both. – angulared Nov 25 '14 at 5:54
  • This has been featured for ages. Which means that every time I visit the site, I see this in the sidebar. And every time the by helping instead of to help irritates me. This is beginning to get on my nerves. – TRiG Nov 25 '14 at 12:33
  • 1
    @TRiG Hope your nerves feel better now. – Glutanimate Nov 26 '14 at 8:50

12 Answers 12

59
  1. Terminal commands change much less often. There are many problems for which the solutions haven't changed in decades, while we've seen practically several complete UI revolutions for Linux in that time.

    This is a problem Windows users face all too often (canonical (hah!) examples: start menu disappearance with Windows 8, ribbons in Office 2010(?), etc)

  2. Many fixes which use the terminal work in other distros. That means we have a much wider community to draw answers from. Someone with more experience can easily look up your problem on, for example, Arch wiki (or any other of numerous Linux information nodes), and adapt it to Ubuntu with little to no effort, and vice versa with Ubuntu helping other distros indirectly. Many times have I found a solution to a problem on Ask Ubuntu while I was a Fedora user!

  3. With the CLI you don't have to wait for others to solve your problem with a GUI, but you (or someone helping you) can craft your (their) own solutions.

  4. The terminal is a single common interface. You only have to familiarize yourself with it once and it works the same forever! while there are many different GUIs...

  • 14
    This is an exceptionally good answer that makes exceptionally good points. I wish I could upvote it twice. Good job! – Seth Nov 23 '14 at 0:25
  • 3
    I was about to wonder why nobody mentioned #1. That's exactly the reason why I prefer them (and would hope also, that people won't ask specifically for them either, there are many "how to do X in the command line, which are indeed possible using the command line and GUI) – Braiam Nov 24 '14 at 0:00
  • Helping Windows users over CLI phopia is one of the best things Linux has to offer, due to it's use used by unscrupulous corporations to limit users freedom and power over devices they legally own. Having said that, I personally, would love to see all of the traditional, outdated shells die. Ironic, huh? ;-) – user447607 Nov 25 '14 at 14:00
  • 1
    What if the terminal uses a shell the user isn't familiar with? For example, what if a user who has only used bash ends up in csh? – TSJNachos117 Nov 25 '14 at 17:19
  • 2
    @TSJNachos117 I've never encountered such an example. Usually the answers are shell-agnostic, just calling various programs. If more complex logic is needed the answerer should be conscious enough to provide the code in bash syntax as well - or someone else will. – jcora Nov 25 '14 at 19:15
  • 4
    @jco excellent! I still am flabbergasted that there are people that do not consider the terminal as the best ever feature in Linux. 1 extra thing: without the terminal we would all have to include solutions for Unity, KDE, LXDE with images and the lot. That would increase the workload tenfold when answering. – Rinzwind Nov 25 '14 at 20:55
  • 1
    Ribbons are introduced in Office 2007 – wb9688 Aug 9 '15 at 5:25
20

No - many aspects of Ubuntu now have GUI ways of doing things, but they can't do everything. Also, I think terminal solutions are always useful - they can often be quicker, and the result is usually reliable - it also usually gives useful output about what it is doing, not just a progress bar and perhaps an error popup. The best thing to do is give the commands that can be used, and then explain them.
For instance, don't just give:

Run:

sudo apt-get purge libqt4-designer:i386
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get clean

Add some/LOTS of explanation:

Run:

sudo apt-get remove --purge libqt4-designer:i386
sudo apt-get autoremove
sudo apt-get clean

This will remove the 32bit version of libqt4-designer. Then apt-get autoremove is used to remove packages that were automatically installed to satisfy dependencies (things needed for those packages to work) for other packages, and are now no longer needed. apt-get clean .... sudo is required for root access ... etc
...
Look at the manual page man apt-get for more information.

Also give appropriate warnings about what the commands can do (this can also apply to other people's answers you see around the site - e.g. What do we do about answers which propose to introduce a blatant security risk?), any sources used for the commands, etc.

Note: with commands like apt-get, don't add options like -y to the command so the user is not prompted - allow the user the choice to whether it does the thing or not. It is also useful if the command goes horribly wrong, and needs to be stopped before it does something stupid...

4

It's a lot easier to help people across the Internet with a command line interface than with a graphical interface.

With a graphical interface, the two sides have to figure out what each other is telling them to do. Click on the icon that looks like, um, a gray thingy, maybe a square bra, oh, is that a letter tray? Anyway, it's the third from the left. No, wait, it's the fourth from the left, because there's an extra icon when you have multiple windows open.

With a command line interface: copy-paste this code. It's a lot easier to transcribe instructions for a CLI than for a GUI.

Sure, we can use screenshots to describe a GUI. The two sides had better be using the same theme, the same window size and the same font size, otherwise things will look different, sometimes confusingly so.

Command lines are easier to use, when you don't need to understand what the commands do. And they're more reproducible.

Another downside of screenshots use a lot more bandwidth. And they require more skill and more manipulation: copy-paste from a terminal is easier than taking a screenshot of the right part of the screen and figuring out how to upload it to the other party.

Additionally, error messages can be searched. Screenshots of error messages can't.

I'm not saying that the command line is the answer to everything, or that everybody should use it. Obviously, if the purpose of a question is to teach somebody how to do something, the answer should use the asker's prefered interface. But if the purpose of a question is to fix a problem, going via the command line is often easier.

4

To be honest, I think a focus on gui actually inhibits future users. Especially in the linux world.

I use Linux Mint. I get 90% of my tech support questions from ubuntu based sites because of the greater sized community. The gui is nothing similar. However, below that very superficial layer, linux mint and ubuntu are exceptionally similar. That means that if it works in ubuntu, it'll work in linux mint.

If everyone send out gui commands, suddenly I would need separate instructions for linux mint, and for that matter, users of lxde, xfce, peppermint, debian, ubuntu studio, etc, etc, etc. Now lets start on arch and their many derivatives, fedora... free bsd, open bsd... (don't get me started that some of these are desktop environments and others are actual separate distro's. you can have a kde and xfce and lxde in gnome or fedora or debian or ubuntu)

The terminal unites us, it is a common layer between pretty much all *nixes and *bsd. Sure, there are differences, package managers, boot up sequences and other differences (location and default setups of config files, etc) that will set you back a bit. But for the most part, it's pretty much the same (I'm sure there are distro proud people who will heartfully disagree with this).

As for efficiency, it's true that the gui is faster... for new or barely proficient users. This isn't a smack against those people, everyone has to be new sometimes and for those barely proficient, that's often enough to get by. But gui only limits your potential, your productivity and relevance to the future versions of whatever you're working on.

If people are telling you different, my suspicion is they only have a rudimentary understanding of the terminal, have a limited imagination (using the terminal has inspired me to write some very clever commands to achieve goals impossible in gui) or are plain stuck in their ways that gui is the way to go because it's the way to go.

2

Some of us grew up on DOS and LOGO.

One user's easy way is another user's headache. I can't stand using a GUI most of the time but then again my computer skills are built upon learning LOGO and DOS on an Apple ][e back in 1986 at parochial school.

I don't think it's necessary to learn command line but for me, it really helps to know how to type a few characters or combine a couple of words to get a job done. It's nothing more than a matter of user preference.

Not to mention the fact that commands like sudo, chmod, chown, ls, cd, .., and even nano, just to name a few, don't only work on all linux distros but also bsd and even OSX.

  • Allot of times, I won't even consider an answer that doesn't send me to the terminal. – mchid Nov 28 '14 at 7:10
1

Well it's not like Windows doesn't have a powerful shell too (pun intended).

Both platforms have evolved. Just a certain group of users don't have. I doubt that average users who have familiarised themselves with the concepts of app stores and hardened security have such strong feelings and experience issues that way as users who like to think of themselves as being very proficient while hesitating or refusing to learn something new do.

Windows users still disabling the UAC and manually installing a lot of drivers instead of using Windows Update are strange from my point of view. These are the typical very vocal users that usually trash their systems when starting with "Linux" the first day. Their mindset is usually their biggest problem.

Now, when there is a GUI solution available that is both accurate and easy to follow, then it should be preferred. However during troubleshooting being as accurate as possible and having terminal output/logs/dumps for analysis and documentation is more important. This isn't even specific to "Linux", everyone suggesting solutions should do it like this and I don't see a big difference between navigating in a filesystem with a file manager or terminal.

The alternative would be to use systems that don't require troubleshooting or not getting issues fixed at all.

  • I know a former NT hacker who was upset that whenever someone would propose improvements to cmd.exe, they'd be put off with the likes of "no, PowerShell is king now!" – SamB Nov 23 '14 at 19:05
1

I think sending people to the terminal is actual help, but the helping person high lighting part of the results that is wrong, will also educate someone as a future helper.

0

I'd like to add attention to three aspects - which might be seen by newcomers as disadvantages to the Terminal method. These aspects can be mitigated by more experienced users but usually not by rookies.

  • terminal commands have poorer repeatability; that is, it's harder to remember a command you issues 6 months ago than walking through a GUI tool that you know contains what you want. That is, unless of course, you store your commands. But there are problems in this regard even for experts, for example see this link
  • terminal commands have poorer undoability. Definitely easier to un/check a checkbox.
  • terminal commands are harder to associate with one another and harder to discover when you're not sure what you're looking for. A (well written) GUI tool can provide significantly more & quicker insight into the functionality of a program.

Note: My answer is not meant to favor GUIs, I would actually recommend (almost) to anyone to get familiar with the terminal way of doing things. The time investment will be very, very well made.

So my point is, we should show newcomers how to mitigate these aspects.

  • Except you have to find the box to uncheck. While you're busy clicking on menu after menu to get to the box I can copy and paste a command and press enter - Done - 5 seconds compared to 5 minutes. After copying and pasting so many times, you start to remember what the command is supposed to be. – mchid Nov 27 '14 at 21:30
  • Not quite - you have to compare "clicking menu after menu for 5 minutes" with actually not knowing the command and searching for it on the web or on your own (less often), both of which should take minutes, at least, and the result might be not undo-able and has higher chances of screwing something up. – haelix Nov 28 '14 at 9:50
0

A well written gui has this advantage: It leads the user graphically to a solution.Sometimes even no prior knowledge is required.We advanced users usually call that 'magic'.

But a terminal has these advantages:It is fast,versatile and more precise.Or rather it is powerful.

In an ideal world we would have an OS with both a great terminal and a great GUI that has the advantages of both.I hope that is the goal of Ubuntu and the whole Linux world.

-1

The console is easy because you just copy and paste and it gets the job done. GUI however might not be stable (or even available) or like in most cases there is no graphical way of doing whatever needs to be done.

-1

One cannot simply sudo in nautilus, or gnome. Sudo is a safe one time use of root. In any GUI you must root permanently. Every terminal I've played with in Linux has given me unrestricted access to everything without the need to root permanently. Gnome also tend to confuse people and limits you quite a bit. Most items in the software store on gnome or even nautilus have a few programs compared to if you manually add the ppa. Also Linux doesn't play lazy like windows.

  • nemo, open as root – trve.fa7ad Dec 2 '14 at 11:49
-8

Yes, it would be better. If Ubuntu adopted this philosophy they would obtain greater market share and save users valuable time. While many experienced Linux users think new users ought to learn terminal commands, this implies that most new users can easily pick up this skill and do not have better things to do. If you think all users ought to learn to use the terminal, you have never tried to help someone learn to use a computer who was born before the invention of computers.

Terminal commands are not an important life skill, they are a means to an end and most human beings have an easier time using a visual interface, i.e. a GUI (Graphical User Interface) that achieves that same end in considerably less time. Even if you think everyone should learn to program (debatable, especially for people who did not grow up using computers), the tasks most people want help with should not require that the user write a bash script.

There are three key issues that impede Linux and Ubuntu from moving to more GUIs/ menu based help/problem solving. The first is that someone has to actually write the program for the GUI that displays menu options and executes the necessary commands in the background as a result of the user's menu choices. The second is that Ubuntu/Linux users, and particularly developers, are significantly above average in terms of their technical ability. Like any set of human beings, they overestimate the degree to which other people are like them. Thus, comments about how the terminal is really easier. Linux software tends to be open source so developers do not have a profit incentive to make a product that caters to the average user, but instead develop more with themselves in mind (the person who wrote the program has no problem remembering the program's syntax and calling it from the terminal). Yet a more human friendly interface would save time (and thus money) for both novice users and professional programmers alike (feel free to disagree, but please turn off your desktop GUI before posting your disagreement via a script). Finally, Ubuntu does have a profit incentive, which is to make software easy enough to use that it is adopted but hard enough to use that businesses have to pay for customer support (the OS is free, after all). Help support via the terminal is useful to this end.

Other answers point to the power to fix any problem in the terminal and the lack of GUI for many applications (i.e. some questions cannot currently be answered without terminal commands). While these answers are informative, these tend to rationalize the current state of Linux/Ubuntu (and provide advice for adjusting to that reality) rather than provide a direct answer to your question. To answer your question directly, yes, in an ideal world almost all of the average user's problems could and would be solved with a GUI and without reference to the terminal.

  • Ladies and gentlemen, all I ask if that if you downvote this answer without comment you do it from the terminal. – Michael Nov 26 '14 at 16:57
  • 5
    don't be so sure, lynx still exists... -1 – trve.fa7ad Nov 26 '14 at 17:42
  • I've used terminal commands under Ubuntu to fix problems with operating systems that are GUI heavy such as Windoze and OSX. IMHO not learning to use the terminal is a detriment that drastically curtails your abilities. -1 – Elder Geek Nov 27 '14 at 13:43
  • 1
    @Michael The down vote I just did I did via the command line. :P – Thomas Ward Nov 28 '14 at 2:21
  • @ElderGeek I agree, terminal commands can be useful and given the current state of Linux distros using Linux without the terminal dramatically curtails your abilities. But it does not follow that this this is the ideal set up for the average user. – Michael Dec 1 '14 at 19:20
  • 1
    @Zeus77 just checked out lynx, very cool. – Michael Dec 1 '14 at 19:21
  • @Thomas W. Congratulations! Now try to help you someone else do it who is over 65 and still uses Internet Explorer. And time them learning in terminal vs. Firefox. Operating systems should be free and easy to use. The more high quality GUI that Ubuntu can provide, the easier it will be to use. This is clearly an unpopular position for Ubuntu supers users on this forum, but it should be fairly self-evident to anyone who has ever tried to help someone who is uncomfortable using a computer. – Michael Dec 1 '14 at 19:25
  • 2
    @Michael the commands to do one thing via the command line vs GUI have MANY changes over the lifespan of an OS. Consider: 8.04 to now. To change the apt repository sources then, you had one settings entry/option to do it. In 10.04 that option went away, and in 12.04 and later it's tricky to even find. Whereas the tasks of uncommenting four lines via nano in the command line in the /etc/apt/sources.list file has remained the same over those years. Just because someone is 65 and uses Windows doesn't mean they can't follow a set of instructions that gives them the exact commands to use. – Thomas Ward Dec 1 '14 at 20:03
  • @ThomasW. Yes, but the question is not can one do something, but which is easier, i.e. which wastes less time. – Michael Dec 1 '14 at 21:27
  • 1
    @Michael if the terminal commands don't change they end up being easier. not everyone who is experienced uses the same variant or version of Ubuntu. It ends up being a case of all the UI methods being different whereas the terminal commands don't change and end up being the most expedient (which in turn wastes less time hunting for the GUI method). – Thomas Ward Dec 1 '14 at 23:34
  • 2
    @Michael Terminal is not always the easiest way, but more often than not, it is the fastest. The problem is, Linux has so many DEs, that if OP doesn't specify, we can only hope that we(the OP and me) are using the same thing and that they understand what we are talking about. – trve.fa7ad Dec 2 '14 at 11:41
  • @Michael Making things easy for your specific client is your job. Consider creating a script with the cli commands necessary to do whatever is needed and providing a launcher for the client. This is what I have done in the past for my clients when they are as you say "over 65 and still use internet explorer" – Elder Geek Dec 2 '14 at 14:20
  • @ElderGeek that sounds a lot like the precursor to a GUI menu. – Michael Dec 2 '14 at 16:00
  • @Zeus77 citing the number of different distros/desktop environments is a rationalization for why help is given via the terminal, but it does not excuse the lack of GUI in Ubuntu (and Ubuntu based help), which would nominally like to compete with Windows for market share. – Michael Dec 2 '14 at 16:03
  • @ThomasW. Is it easier for someone providing help or someone receiving help? If you are new to Ubuntu does it matter that the menu slightly changed from 5 years ago? I get that it might make help guides slightly outdated, but this has never been a problem for me for Windows (help guides make the version clear) and more problems could be solved by the user without reference to help sites if more things could be done in Ubuntu with a GUI menu. Ultimately, we would like the user to not need any help because they can easily figure it out on their own. – Michael Dec 2 '14 at 16:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .