Short bio: Computer Scientist, FOSS supporter (read more)
Tux Machines (TM)-specific
Author Michael Stutz said he has never been satisfied with existing resources for learning about Linux, which is why he wrote The Linux Cookbook. Stutz aims his book at beginners and more experienced users by presenting lessons in a format modeled after a culinary cookbook. In this interview, Stutz discusses shells and graphical versus command-line interfaces -- and why sometimes, in computers, a word is worth a thousand pictures.
For a newcomer to Linux, or someone who is mainly familiar with Windows, could you explain what the shell is and what it does?
Michael Stutz: The shell is a program that provides an interface between the user and the operating system -- it handles your input, controls the execution of other programs and coordinates their output. Those are the generic requirements. In practice, shells can be very robust environments. Most Linux distributions come with several different shells preinstalled that you can pick from. And you can run all kinds of interfaces -- graphical and otherwise -- on top of a shell, but the shell is always there at the base, mediating between you and the operating system. The shell is one of the fundamental components of the Unix operating system, of which Linux is a popular modern-day variety.
There's a good analogy for users of Windows, because I've never thought of Microsoft Windows as anything but an incompatible clone of Unix. It started out as DOS, which was a grossly stunted clone of the shell, made to run on the single-user microcomputers of the time. Then the Windows program was written as an interface to run on top of DOS, much like the X Window System in Unix.
Is one shell better than another for those starting out with Linux?
Aren't most distributions now built to be run from a graphical user interface (GUI)?
The concept of using reserved characters seems tricky to me. What are they and how do they work in the command line?