Skip to content

Why Use a Shell?

Recently a good friend of mine has been toying with Linux. He’s come at it with a largely open mind and has wrestled with getting some pretty complicated features working on his laptop. He’s a long time Windows user and is a very talented C# developer. But he still does not “get it” when it comes to Linux.

It’s not his fault, I was the same way and so was probably most current Linux users who migrated from the Windows platform.

To be honest, I don’t know why anyone would come to Linux from Windows at this point in time. The average Windows developer or power user is usually very comfortable with their platform and are well aware of what they can and cannot do with it. Their platform is stable, easy to program for and they can play games or surf the web with ease and they never have to worry about the latest gadgets because everything has Windows drivers. Why would you even care about another OS?

When I came to Linux about six years ago, it was because I was looking for a stable, reliable platform. Windows 98 crashed on me all the time, and Windows NT, while it crashed less often, had no consumer level drivers for my scanner. I just wanted to make web pages and develop my novels. Nothing too complicated, but I was really frustrated that Windows could not perform for me.

I got an old PC and bought Red Hat 5.0 at the local computer store in a shrink wrapped box. It took me most of a year and a half before I was ready to drop Windows and just use Linux. Before I got to that point, I had to unlearn everything I knew about computers and in the process I came to realize that Windows was not the greatest OS in the world and there were very sound technical reasons why. This caused me to learn more about OS’s than I cared too. but in the end, I came to understand the power of Linux.

I used to have a buddy in the Air Force who was a wiz with DOS. He could configure his PC to do anything from the command line. I thought he was nuts. Why would anyone ever use such a antiquated interface when you could use a GUI to do it?

When I first installed Linux and found myself staring at the blinking shell prompt, I thought of that friend and I wondered if he was maybe not so crazy after all. The shell is the most direct way of communicating with the OS and in turn the hardware. Fancy themed GUI’s are abstractions that take you further away from the core OS and force you to only do what the program’s creators think that you should be able to do.

They may look pretty, but they are inefficient and clumsy when it comes to using the power of the computer. That’s not to say that I never use GUI’s. I like a nice themed desktop as well as anyone else, but if I need to move that file, modify it, change it’s permissions or search for similar files, I will always open a shell and do it. If I have a hung process I’m back in the shell to kill it.

Those that only know Windows or Mac, think I’m crazy. They consider it offensive to open a shell. Why would you ever want to do such a thing? Because I can and because it’s the most efficient way to get anything done.

It doesn’t matter which flavor of UNIX I get on, HP-Unix, BSD, Linux, Solaris or Mac OS X, I can still be productive. I don’t need to remember how to use the GUI’s on any of those OS’s.

It took me a long time to learn how to use the shell and I still don’t know it all. But that time spent learning to use it has payed off for me over the years. GUI’s are much easier to use for computer novices. That’s a fact. But if you ever want to really use a PC, you are going to have to understand it and the best way to understand it is to talk to it directly. Until they make a synaptic link directly into the OS, I will be typing obscure commands into a shell.

0 thoughts on “Why Use a Shell?”

  1. I help admin a few IBm pSeries boxes running AIX. All command line. When you take away the gui your options expand ten fold. Just look at any command man page, switches, and toggles out the wazoo. Its a beautifull thing.

Leave a Reply

Your email address will not be published. Required fields are marked *