Tuesday, July 29, 2008

Learning How Linux Really Works

The thrust of this blog has been an attempt to use Linux in the same way one would use Windows or Mac OS, which is to say, without using the command line. Nothing makes people's eyes glaze over more quickly than the very words "command line," no matter which type of computer you're using. I recently showed my father-in-law the bash shell on his three-year-old MacBook, and he had no clue what it is or what it does. When Windows 95 took hold of the computing world, it was a while before I found that the "MS/DOS" icon opens the command window that works like it always did in the pre-GUI days of the late eighties. In any case, the command line is where Linux truly works, and all the mousing and clicking is really only issuing commands to the shell, the Unix/Linux term for the command line interface.

For all of the Linux distributions I've encountered, bash (the Bourne Again Shell) is the default shell (there are others that I haven't explored yet). I'll mention here that bash is a program developed for the GNU operating system, which, along with the Linux kernel, constitutes GNU/Linux, or what many call simply "Linux." A shell is simply a program that allows a human being to interface with the computer, manage files, perform tasks, and so on. To use the shell, you type in a command (input) and the shell performs the command and provides feedback (output) or simply returns to the command prompt, which lets you know that the command worked and all is well. If something goes wrong, it lets you know that too by giving you (usually comprehensible) error messages. That's about it. Once you know a set of basic commands, you can navigate through your files in a more hands-on and precise way than is possible from a graphical interface. It's a little like driving a car with a stick shift after only driving an automatic. You have much more control, but there's a steep learning curve and you're in for a bumpy ride for a while.

The other main thing to learn about Linux that you can only do effectively (in my view) from the shell is the directory structure. At first this is a little overwhelming, but since it is set up in a standard, orderly hierarchy, you'll soon learn what it is you're looking at. Finally, when you have learned some commands and get your bearings, you can learn the true meaning of "open source" since you can view the source code of all the programs you have installed. Of course, at that point you'd want some understanding of programming languages, and I'm not much help there at this point!

No comments: