The purpose of this page is to give you
some ideas to cope with a variety of
problems that will occur when using Unix.
To use Unix effectively, you need to not just know the syntax and
features of the operating system, but you must develop an attitude
of coping with problems and
understanding a bit of the worldview that might help you use Unix better.
Some of this advice may seem odd or humorous,
but it all has the point of conveying some kinds of coping
mechanisms that go beyond just knowing the syntax of the commands.
Panic will cloud your ability to think
through the problem and to come up with solutions.
Slow down and calm down. Many
times I see that problems arise when students try to
type too quickly. Become familiar with your keyboard
and how it works; type slowly if you have to. Remember that
in Unix, you must type things exactly.
Know when to quit.
As you type a Unix command at the shell prompt, you
will type the wrong symbol. You might try the backspace
or delete keys. These may or may not work--the way
the backspace and delete keys are mapped to their
functions are not always done correctly.
This is particularly true when using telnet.
If you get some funny characters or strange characters,
cancel the command line.
Do this by holding down the control key (usually at the lower
left-hand corner of a keyboard) and the C key at the same
time. That cancels the command. If you don't do this,
you may create some strange file or have some strange
effect. (Strange characters = possible strange effects.)
Be particularly vigilant when you are creating a
If your terminal acts "funny" or your vi editor session is "strange," try this:
$ set term=vt100
The first command tells your telnet client that it is an old standard
type of terminal (vt100); this often clears up strange control
characters or if the computer output is not scrolling up
on the screen. Then used with the
clear command, you get added refreshment--this clears the
screen of previous commands and output. This can then help you focus
on a new task or way of approaching a problem.
Don't flirt with deadlines.
In the real world, real deadlines mean either money lost or
money gained. In the real world, if you miss a deadline,
you may lose your company money and lose your job. If you meet a
deadline, you may help your company succeed.
If you start your work close to the deadline, you may run into
trouble that you might not be able to resolve
Understand that Unix was written for humans and by humans
and thus is a language, full of ambiguity, inconsistencies,
history, and culture.
Computers don't need an operating system--you do.
Electronic computers just care about high and low voltages.
Operating systems like Unix were written by humans for humans to
make use of the resources of the computer. Humans are
full of all kinds of interesting ideas, and this quirkiness is
reflected in the Unix operating system flavors. Not all the sequences of commands and options
are entirely consistent. There are inconsistencies
in syntax from command to command.
There are cultural
artifacts throughout the operating system that
came out of the "geek" culture that gave rise to it--
who else would come up with the "finger" command?
Understand that Unix and computers are a mystery to
be lived, not a problem to be solved.
There will be errors, mistakes, funny things happen.
You could spend the rest of your life analyzing exactly
what gave rise to a particular error--or you could:
Take a deep breath and try it again
Log off and log back in
Try a different computer
Get a night's sleep and try tomorrow (but not if your deadline
of hardware, networks, operating systems, and software
gives rise to a high level of complexity.
When problems arise, I have found
it is best to try some troubleshooting techniques, then
try something else, rather than trying to figure out exactly what
went wrong (however, I do read error messages and look for
any clues on the screen). Due to the nature of Unix systems, by the
time you have found out what went wrong, the system (its
hardware or software) will have been changed or "upgraded"
(introducing new problems). This is particularly
true, I have found, in academic computing systems.
Speak in a soothing, kind voice to the computer.
This is more for you than for the computer.
If you get frustrated and type haphazardly at the keyboard,
you are not going to get work done. If you don't read
the screen and any error messages, you are going to keep
repeating the same mistakes over and over. Thanking
the computer for what it does helps you focus on the
give-and-take interaction you have with the computer.
The soothing voice calms you down also.
Realize that there are many paths to getting things done.
There are usually many ways to accomplish
a task. Don't get too dogmatic about finding the
one and only one way to do it, nor get too over-involved in figuring
out every way to do something.
Most Unix users develop a particular set of habits for
using the commands that match their way of thinking.
Don't be too concerned if
you see others use a different style of Unix interaction--however,
you might learn some new things from them.
Don't be too insistent on continually pointing out,
"you could also do that by..." (particularly if you are
standing over their shoulder).
You could spend many weeks pointing out
alternative ways to do a task.
Find a way that works and matches your thinking and then get your work done.
Make use of your environment.
Think like a castaway on a desert isle who has
only what is at his or her disposal to survive.
If you are on an Internet-connected computer,
you have access to range of
online help resources, some of which are available
right from the command line (although don't think too hard
about the "man" pages--I don't think there are many
humans alive who understand these fully).
If you are on a computer which has a window system
(such as Microsoft Windows or X Window System),
bring up several windows at the same time:
A window that shows a Unix command prompt where you
can type in commands (this
would be the telnet client; in an X Window
System environment, it would be an xterm)
A Web browser showing task information about
what you are supposed to (this would
be the assignment description)
Another Web browser that shows reference
Perhaps another Web browser that shows more or alternate reference
Keep all of these windows up while working until you
get your task done. Don't be afraid to bring up another
Web browser, and keep the Web browser showing task
information or reference information up. I've seen
many students go through the trouble of bringing up
a Web browser, following links to the assignment description,
looking up a requirement for the assignment, then closing
that Web browser, only to have to repeat the entire process
when they need to look at the assignment description
or reference information again.
Don't be afraid to have as many windows
open at the same time showing different information
to get your work done.
Also, if you are on a desert isle, you should find
plenty of C shells! (Ha! Ha!)
Unix gets work done.
You may think that a command-line operating system
like Unix is somehow outdated. After all, a telnet
session opened to a Unix shell is pretty plain visually.
It's gotta be outdated, right?
I have found that this is not the case.
When you need to accomplish a large amount of precise work,
there is nothing like pipes, filters,
shell programming, and
computer programs to accomplish tasks.
These can be implemented very efficiently using
Unix (and shell programming and software like C).
Unix is the
most powerful tool I've ever seen in my life for getting