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 were around. Many versions of UNIX have been "sanitized."
Instead of "Intruder alert!," for example, SunOS 4.1.3 says
"no login associated with uid num."
:-) -JP ].
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 very hard to
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 linen
You're running anscript that has a syntax error. The standard awk is incredibly uninformative about syntax errors; this is all the help you're likely to get. Newer versions (like ) 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 ld, 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
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.
somecmd: command not found
You probably either misspelled the name of the command or it isn't in your
#!/bin/hs for an sh script.
directory not empty
You tried to delete a directory that's not empty, and rmdir won't let you. The solution is simple enough; but often, when you try to list the directory, it will look empty. Did you check for(most likely, filenames beginning with a dot)? There are probably a few "turds" left over from some editing session. If you're absolutely sure that none of these invisible files are meaningful, just use .
make: must be a separator on rules line 46
The bane of everyone who uses . make's "rules" lines must begin with a TAB character. Spaces are not acceptable. This means that you used spaces, rather than a tab. Some 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?" Seriously, though: 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 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 disk drive. Under SunOS, for example, you'd use the mkfile and swapon 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 helps). 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 -t option, which sends the output to standard output, for post-processing by some translator. Actually, it's very rare for a user to invoke troff directly. troff is usually run through some kind of a shell script. If you see this message, the shell script is doing the wrong thing. What does the message really mean? Simple. troff, on its own, generates output for a C/A/T phototypesetter. These typesetters were obsolete 10 or 15 years ago, and are now probably all rusting in junk heaps. But nobody bothered to change troff. If you don't include the -t option, troff tries to send the output to the typesetter; when it fails (because the typesetter doesn't exist), troff decides that the typesetter must be "busy."
who are you?
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 tty or (usually) a
that isn't in the list of logged-in users, /etc/utmp.
One of our readers
got the message as he tried to reboot his computer
after accidentally removing the root entry in /etc/passwd
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.