« Changelog: Fixed a race condition | Main | WinFF »

Does Linux require use of the terminal?

Recently I've been hearing more people saying "If Linux is to succeed on the desktop, it needs to bury the terminal".

I'd take exception to this: As someone else recently pointed out, Windows 3.1 was a successful desktop operating system that required the terminal, and one of Vista's selling points is the improved terminal. What things do users need the terminal for on Linux? Can we maybe debunk some myths?

1. Installing Linux. No, not unless you're installing Slackware. Not even Gentoo requires it.

2. Monitor configuration. It's still possible that Xorg won't correctly detect your monitor and you'll have to go into /etc/X11/Xorg.conf, but such things are getting very rare. Very rare indeed. Xorg switches automatically to a "safe" graphics mode if all else fails, so you can use a GUI-based monitor configuration program.

So, generally no terminal use needed.

3. Installing drivers for things that are not supported in-kernel. Yes. If you have a device that is supported by a third-party driver that is not already either in your kernel or packaged for your distribution, then you will need the kernel headers (easily installed), build-essential (easily installed) and your terminal.

I once had to compile a newer version of ALSA to deal with the sound chipset on someone's brand-new laptop. Once I had the kernel headers and build-essential, both of which are installed through Synaptic, it took three short commands in the terminal to install the new ALSA.

./configure
make
sudo make install

Not rocket science. Answer: Terminal use required, but it's reasonably unlikely and not hard.

4. Installing software. Terminal use is not necessary as the most popular and most mature software is available either from the Synaptic Package Manager or as Debian packages straight from the developer. Software that doesn't require the terminal to install is also likely to become more popular. Even things like the Google Earth installer, which requires invoking from a terminal, is not strictly necessary, as Google Earth is packaged up as a .deb anyway and put onto Medibuntu. Same with Flash Player and Skype.

The only exception is if you were going to compile software from source code. This definitely requires the terminal. However, who actually *needs* bleeding-edge versions of the software? I know I don't - I haven't compiled any software for a long time. I'm even surprised I have build-essential installed on my system. The fact is, most software ends off getting compiled FOR YOU ALREADY.

The only exceptions would be if you wanted to install new software on an outdated distro, or if you wanted to install semi-obscure software on a non-x86 platform. Most people do neither, preferring to keep their distro up-to-date and stick to commodity Intel/AMD processors.

Answer: Terminal not necessary.

5. Mounting devices: Happens automatically for you. No terminal needed.

6. Video Editing: No terminal needed. To capture video from a Firewire device like a digital video camera, you need to give your user account permissions to access the Firewire device:

sudo chmod a+rw /dev/raw1394

This is actually a security feature, because once it is possible for your user account to read and write directly to Firewire devices, an attacker working from within your user account can read or write the entire system memory. I believe you can create a new group called "disks" and add your user account to this group, to gain raw access to Firewire devices without having to put in that command. This would require no terminal commands, it just depends if you want to live with the risk. Millions of Windows users live with the "Firewire being able to access your whole system memory" feature turned on. Maybe it's an acceptable risk for you.

7. Setting up a web server. I know it's not something that "ordinary users" generally do, but there are useful benefits to setting one up temporarily. It's easily accomplished without the terminal: Just install the Apache2 package from the Synaptic Package Manager. It's automatically started for you, and set up to start on bootup. If you want to make it unavailable temporarily, just block port 80 on your ADSL router. To put files into your web server's folder, just drop them into /var/www/. You need to be root to do this - just install the package "nautilus-gksu", reboot, right-click the /var/www directory and choose "Open as Administrator".

Answer: No terminal needed.

8. Printing and wireless configuration: Choose what printer you have. That's it. No terminal needed there. To set up my wireless connection, I just went to NetworkManager on my top panel and told it which network to connect to, and then I put in my password. Piece of piss. No terminal needed. No geekishness; it's all a friendly GUI that shows the names, signal strengths and whether or not a network is encrypted.

9. Video encoding. I maintain that this is better done in the terminal with ffmpeg, but if you're squeamish you can use any number of GUI frontends for ffmpeg, mencoder or transcode. I even use Kdenlive (video editor) as a video encoder if I don't care so much about having precise control over the output.

I did find a time when no transcoding frontend utility worked; that's when I bought a Sony Walkman MP3/Video player which is incredibly fussy about video formats. It requires H.264 of a precise bitrate, AAC audio with Low-Complexity compression, and for the moon to be 30 degrees above its zenith, before it will play the video. No GUI-based video encoder could set those settings with such fine granularity to satisfy the Walkman. So I figured out how to do it in the command-line, and then wrote a nice GUI program to run the command-line program.

10. Run Windows programs. Yes, you do really need the terminal for this. Wine is the program that allows some Windows programs to run on Linux. Since it's not perfect, it sometimes spits out error messages into an attached terminal to help you find the right DLLs or settings to have it run your program properly. To recieve these error messages, you need to have started the Windows program in a terminal.

So yes, you need a terminal to run Windows programs. Once again, though, it's an *easy* command:

wine "/home/chris/Elastomania/Elma.exe"

You don't even need to type in the path of the program - just type "wine " and a space, and then drag the file onto the terminal.

Let it also be said that if you were to run a Linux or Unix program in Cygwin on your Windows computer, you'd need an MS-DOS prompt open to conduct the installation. And once you know that your Windows program works in Wine, you won't need to start it in a terminal, and you can just set up a launcher for it.

11. Adding repositories. A resounding "No" - just go to Software Sources under System > Administration, and add your repos there. You will get warnings about unauthenticated packages, but if you're installing software from a third party repository I imagine that you have accepted the risk of malicious software.

So, does Linux require you to learn complicated, archaic commands? Of course not. Does Linux require any terminal use for regular tasks? Yes, if it doesn't get your monitor settings right (uncommon these days!), if you want to run Windows programs, or if you need hardware support over and above what shipped with your distribution. Are those commands difficult? Hell no!

Many people believe that Linux requires terminal commands because of either social inertia (they still believe what was once true) or because they see Linux users helping eachother with problems by using terminal commands. The latter has a simple explanation: It's quicker and more precise to give a terminal command rather than GUI clicks and drags. So that's the advice that is given.

If you're an avid tweaker or if you want to set up advanced things like RAID, proxies, or thin-clients; then you'll need the command-line. But then you probably won't mind the command-line, and you'll certainly appreciate the extra flexibility it gives you. If you're a regular user, then don't worry about the terminal, because you probably won't need to use it!

Please reply with a comment to this message if you can think of something else a "regular joe" would do that requires the terminal.

                            

TrackBack

TrackBack URL for this entry:
http://blogs.www.friendster.com/t/trackback/864271

Listed below are links to weblogs that reference Does Linux require use of the terminal?:

Comments

Post a comment

Post a comment

Name:

You are currently signed in as .