December 1999

The Text Based Interface

So why do so many UNIX users, after getting frustrated using Linuxconf, the "Control Panel", HP's SAM or any other GUI admin tool have a tendancy to huff and puff, then close the thing and fire up an xterm?

Reliability, Understanding, Power and Control.

Those are the main reasons. There are an assortment of others, one theory for example, states that UNIX users are largely "liberal" and as such have a tendancy to like wordsmithing.

I think that is a bit of a generalization to make about so many users (being liberal - I have found in my personal experience when it comes to politics, UNIX users simply aren't really affiliated with one group or another but generally dislike all of them). So, forget the politics, wordsmithing may in fact be one of the other reasons and I believe it is.

That still does not explain why UNIX users insist, even when given a "better tool" or API, generally reject such ideas and opt for souped up vi. Well, if you recall in last month's UNIX Programming Environment, UNIX is inherently extensible just within the shell interpreter, not too mention all of the other stuff one can do to make it extensible. Now we might argue that the simple reason might be that UNIX users feel they make their environment better than any off the shelf software and rightfully so because only you know what is best for you.

Well that's all and good, but it still does not explain away the almost religous behavoir administrators, engineers and programmers can exhibit about being on the command line. I have even seen cases of dissassocitation between UNIX and other software. For example, I know a lot of UNIX programmers who like to write JAVA code, they get a kick out of writing little JAVA GUI's - in vi. Well, if your willing to write one why not use one? Now bear with me, believe me I am not advocating GUI's rather I am setting up the Devil's advocate perspective. Along those same lines are the legions of tcl/tk, QT-Lib, gtk+, motif and other programmers whom create powerful, intuitive GUI's using basic editors in some cases right from a remote terminal (being a webmaster - believe me I know).

I firmly believe we all have a bit of every possible reason in us, however, some people tend to exhibit different aspects a bit stronger than others. The rest of this document will examine select aspects of why we might be motivated to use and stick with the command line.

Fundamentals and Understanding

In the beginning for most users, myself included, it is more about understanding what is going on. When I first got into UNIX, I didn't have X windows as an option. When I did, I didn't like it. I believed (and correctly I think) the best way for me to get a solid understanding of the system would be to learn to manipulate at every run level, X being the last (on most systems, not all, depends on the flavor) was therefore the lowest priority for me.

As time wore on, I gradually became interested in X Windows because it offered up the chance to have lots of terminals running at once, like a whole lot not just 3 like in a terminal session manager [ 1 ].

There are also those who firmly believe that is how every Operating System should run, while I agree with that philosophy I do not believe that is how every application should be run.

Reliability, Control and Power

These three aspects are normally related. For an administrator, control is the most important. For several reasons but as an example I have listed a few below:

  • Not all Admin GUIs work right [ 2 ]
  • Using only GUIs may cause unknown side effects
  • When a system is down and you can only boot to single user mode - there is no X
  • Remote Administration
  • . . .

That list could go on forever. Basically, you do have the most control over a UNIX Operating System from the command line.

Power is really one a great many UNIX users have a tough time communicating and I am no exception, so, I will try using a simple example. Let's say you have a 200+ Linux Beowulf Cluster - in your house. You decide to do a find on every node from the console. Well, that requires a lot of horsepower. The feeling and immediate gratification of being able to manipulate such powerful systems with simplistic ascii charachters and sometimes whole words, is unmatched.

You Feel Like a Real User

While that may sound demeaning at first (especially to adminstrators and engineers) let me put it in the correct context with some qualifications.

If you have been using UNIX for more than a year, which makes the most sense to you?

  1. Typing passwd at the prompt or
  2. Going to a menu list, selecting account, select the password panel, fill in the blanks and hit the button?

Although there is no right answer, I am willing to bet someone else's paycheck that most of you (if not all) would select 1, here is why;

When you are typing executable names and feeding all of those options and arguments, you feel much more like you are telling the computer to perform a specific action for you, when you "fill out a form" you feel more like the computer is requiring you to do something. The funny part, in the case of the password, it is the same thing - but that certainly is not how it feels.

Interesting no? At first glance you could argue that the first method is simply more efficient, but it may not be under certain window managers. it may possibly take just as much time to start up an X terminal (yes I know you already have 6 running) as it would to go to the Password Applet. Well, what about modifying the /etc/hosts file? You can do that from a series of panels under a number of managers and kits, but many prefer to edit the file directly which might take longer.

The point I am driving to is the fact that most of the time, we could use a GUI to do a great many things in UNIX, actually some are preferable depending on your personality (I for one hate spoolers and always use the GUI - then again I never print anything) but we do not because we feel that at the command line we order the computer around, not vice verse.

It is Probably Everything

In my own case it is the classic "all of the above". I go in stages and the one I am in now is definitely the Feel Like a User stage. I grew past the control stage, got over the power (trip) stage and now feel extremely comfortable telling my system where it can go with just a few words. What stage are you in?

Footnotes:

  1. I am referring to the terminal session manager under HP-UX 10.20 not GNU/Linux.
  2. The Systems Administration Manager (SAM) under HP-UX all the way up to 10.20 is notorious for it.

Editorial Update 20 Mar 2000

I found one of many related articles by way of my logfiles (wonderful things those logfiles). An article written in 1998 at Performance Computing, The Elements of Style: UNIX As Literature, enjoy. mui