Help--Online Documentation, etc.
For new UNIX users, one common frustration is that error messages are
often nonexistent, usually terse, and often extremely obscure.
Command not found
is reasonably self-explanatory,
most of the time; but what about
You don't exist. Go away.
Here, I cover some of the more common, obscure, or
amusing messages that are around [or
around. Many versions of UNIX have been "sanitized."
Instead of "Intruder alert!," for example, SunOS 4.1.3 says
"no login associated with uid
I'll try to keep it brief, which
means that it will be far from comprehensive.
A complete list of all
the messages you might get could easily fill a book - and lots of the
messages report situations that you'd have to try
arguments too long
UNIX has an unfortunate limit to the maximum length (in characters) of
all arguments you can put on the command line.
This limit was
originally fairly small; in the past few years, it's become
quite large (5120 characters on SVR4), but no one has yet fixed the
So if you give a command like
you're very likely to find out that your argument list is too long.
Workarounds for this problem are discussed in articles
awk: bailing out near line
You're running an
script that has a syntax error.
is incredibly uninformative about syntax
errors; this is all the help you're likely to get.
have more intelligent error messages.
bad magic number
You're most likely to get this message when you give a UNIX command.
You can also get this message from programs like
, the link
editor for programmers.
A "magic number" is a special number in an executable file that
tells the kernel what kind of file it's dealing with.
If you get this
message, the file you're trying to execute may have been corrupted; or
it may be an executable for another kind of computer;
or it may not be an executable file at all.
This message appears when you're running a pipeline, and one part of
the pipeline terminates before the rest.
For example, say you're
running the command:
ls -l | more
program quits (for any reason, like using its
"quit" command) before
it has read all the data from
, you have a "broken
bus error (core dumped)
This is similar in nature to a segmentation fault.
There's a subtle
difference in that a "bus error" means that the kernel didn't detect the
problem on its own; the memory system (i.e., hardware) realized that
there was a problem.
On many UNIX systems, this message can mean that you're trying to do
an I/O operation incorrectly - you may be trying to access a device
that doesn't exist, or something of that nature.
What does I/O have
to do with memory? A lot, but that's beyond the bounds of this book.
: command not found
You probably either misspelled the name of the command or it isn't in your
search path (
The more insidious form of this error happens when you're writing a
script for the shell, Perl,
, etc. with the
You double-check the command name and your path;
tells you the command can be found.
The trouble is probably an incorrect pathname for the interpreter,
You attempted to create a hard link to a file on another filesystem.
symbolic link (
directory not empty
You tried to delete a directory that's not empty, and
The solution is simple enough; but
often, when you try to list the directory, it will look empty.
you check for
"invisible" filenames (
(most likely, filenames beginning
with a dot)?
There are probably a few "turds" left over from some
If you're absolutely sure that none of these
invisible files are meaningful, just use
, and means that
can't look you up in
This probably means that someone managed
to delete or corrupt
make: must be a separator on rules line 46
The bane of everyone who uses
's "rules" lines must begin with a TAB character.
Spaces are not
This means that you used spaces, rather than a tab.
editors (and reportedly, even some networks) will change tabs to
spaces automatically - so even if you've been careful to observe the
rule, you may still run across this message.
not a typewriter
As someone on the Net said, "Damn right, this isn't a typewriter.
That's a problem?"
this is an obsolete message
that still crops up occasionally.
It means that the program attempted
to perform some I/O operation that would be legal on a terminal,
except that it wasn't writing to a terminal:
it was writing to a file,
or to a pipe, etc.
not enough memory
There isn't enough
swap space (
to run your program.
Note that many
modern UNIX systems allow the system administrator
to create new "swapping files";
this may help you to work around the problem without reconfiguring a
Under SunOS, for example, you'd use the
commands to solve this problem.
segmentation fault (core dumped)
A segmentation fault means that the program you're running attempted
to read or write some address in memory that wasn't assigned to it.
If it's a program that you wrote, a segmentation fault probably means
that a pointer is pointing to something strange.
If it's a standard
UNIX utility, well - it really means the same thing (not that it
Most likely, though, you've given the program strange
input - the input may be illegal, there may be more than the program
can handle, etc.
I've seen this when using
it usually means that you haven't specified the output device
correctly; i.e., that you haven't used the
sends the output to standard output, for post-processing by some
Actually, it's very rare for a user to invoke
is usually run through some kind of a shell
If you see this message, the shell script is doing the wrong
What does the message really mean?
its own, generates output for a C/A/T phototypesetter.
typesetters were obsolete 10 or 15 years ago, and are now probably all
rusting in junk heaps.
But nobody bothered to change
you don't include the
tries to send the
output to the typesetter; when it fails (because the typesetter
decides that the typesetter must be "busy."
who are you?
and means that
can't look you up in the
This probably means that someone managed
to delete or corrupt
you don't exist. Go away.
I've never actually seen this message, though it's part of the UNIX
Reportedly, it can come from the
program when you try to talk from a
or (usually) a
that isn't in the list of logged-in users,
One of our readers
got the message as he tried to reboot his computer
after accidentally removing the
While a lot of the error messages are more-or-less standard, a lot of
them vary from vendor to vendor; some vendors have tried to protect
you from the worst abuse.
I hope that all systems
incorporating the legendary "Don't you hate obscure messages" error
message long since disappeared.