This page includes answers to:

You may click on a specific question, or browse the entire document with the scroll bar.

1.1) Who helped you put this list together?

This document was one of the first collections of Frequently Asked Questions. It was originally compiled in July 1989.

I took over the maintenance of this list. Almost all of the work (and the credit) for generating this compilation was done by Steve Hayman.

We also owe a great deal of thanks to dozens of Usenet readers who submitted questions, answers, corrections and suggestions for this list. Special thanks go to Maarten Litmaath, Guy Harris and Jonathan Kamens, who have all made many especially valuable contributions.

Part 5 of this document (shells) was written almost entirely by Matthew Wicks [].

Part 6 of this document (Unix flavours) was written almost entirely by Pierre (P.) Lewis [].

Where possible the author of each question and the date it was last updated is given at the top. Unfortunately, I only started this practice recently, and much of the information is lost. I was also negligent in keeping track of who provided updates to questions. Sorry to those who have made valuable contributions, but did not receive the credit and recognition that they legitimately deserve.

I make this document available in *roff format (ms and mm macro packages). Andrew Cromarty has also converted it into Texinfo format.

The formatted versions are available for anonymous ftp from under pub/unix-faq/docs .

1.2) When someone refers to 'rn(1)' or 'ctime(3)', what does the number in parentheses mean?

It looks like some sort of function call, but it isn't. These numbers refer to the section of the "Unix manual" where the appropriate documentation can be found. You could type "man 3 ctime" to look up the manual page for "ctime" in section 3 of the manual.

The traditional manual sections are:

  1. User-level commands
  2. System calls
  3. Library functions
  4. Devices and device drivers
  5. File formats
  6. Games
  7. Various miscellaneous stuff - macro packages etc.
  8. System maintenance and operation commands

Some Unix versions use non-numeric section names. For instance, Xenix uses "C" for commands and "S" for functions. Some newer versions of Unix require "man -s# title" instead of "man # title".

Each section has an introduction, which you can read with "man # intro" where # is the section number.

Sometimes the number is necessary to differentiate between a command and a library routine or system call of the same name. For instance, your system may have "time(1)", a manual page about the 'time' command for timing programs, and also "time(3)", a manual page about the 'time' subroutine for determining the current time. You can use "man 1 time" or "man 3 time" to specify which "time" man page you're interested in.

You'll often find other sections for local programs or even subsections of the sections above - Ultrix has sections 3m, 3n, 3x and 3yp among others.

1.3) What does {some strange unix command name} stand for?

awk = "Aho Weinberger and Kernighan"

This language was named by its authors, Al Aho, Peter Weinberger and Brian Kernighan.

grep = "Global Regular Expression Print"

grep comes from the ed command to print all lines matching a certain pattern


where "re" is a "regular expression".

fgrep = "Fixed GREP".

fgrep searches for fixed strings only. The "f" does not stand for "fast" - in fact, "fgrep foobar *.c" is usually slower than "egrep foobar *.c" (Yes, this is kind of surprising. Try it.)

Fgrep still has its uses though, and may be useful when searching a file for a larger number of strings than egrep can handle.

egrep = "Extended GREP"

egrep uses fancier regular expressions than grep. Many people use egrep all the time, since it has some more sophisticated internal algorithms than grep or fgrep, and is usually the fastest of the three programs.

cat = "CATenate"

catenate is an obscure word meaning "to connect in a series", which is what the "cat" command does to one or more files. Not to be confused with C/A/T, the Computer Aided Typesetter.

gecos = "General Electric Comprehensive Operating Supervisor"

When GE's large systems division was sold to Honeywell, Honeywell dropped the "E" from "GECOS".

Unix's password file has a "pw_gecos" field. The name is a real holdover from the early days. Dennis Ritchie has reported:

"Sometimes we sent printer output or batch jobs to the GCOS machine. The gcos field in the password file was a place to stash the information for the $IDENT card. Not elegant."

nroff = "New ROFF"

troff = "Typesetter new ROFF"

These are descendants of "roff", which was a re-implementation of the Multics "runoff" program (a program that you'd use to "run off" a good copy of a document).

tee = T

From plumbing terminology for a T-shaped pipe splitter.

bss = "Block Started by Symbol"

Dennis Ritchie says:

Actually the acronym (in the sense we took it up; it may have other credible etymologies) is "Block Started by Symbol." It was a pseudo-op in FAP (Fortran Assembly [-er?] Program), an assembler for the IBM 704-709-7090-7094 machines. It defined its label and set aside space for a given number of words. There was another pseudo-op, BES, "Block Ended by Symbol" that did the same except that the label was defined by the last assigned word + 1. (On these machines Fortran arrays were stored backwards in storage and were 1-origin.)

The usage is reasonably appropriate, because just as with standard Unix loaders, the space assigned didn't have to be punched literally into the object deck but was represented by a count somewhere.

biff = "BIFF"

This command, which turns on asynchronous mail notification, was actually named after a dog at Berkeley.

I can confirm the origin of biff, if you're interested. Biff was Heidi Stettner's dog, back when Heidi (and I, and Bill Joy) were all grad students at U.C. Berkeley and the early versions of BSD were being developed. Biff was popular among the residents of Evans Hall, and was known for barking at the mailman, hence the name of the command.

Confirmation courtesy of Eric Cooper, Carnegie Mellon University

rc (as in ".cshrc" or "/etc/rc") = "RunCom"

"rc" derives from "runcom", from the MIT CTSS system, ca. 1965.

'There was a facility that would execute a bunch of commands stored in a file; it was called "runcom" for "run commands", and the file began to be called "a runcom."

"rc" in Unix is a fossil from that usage.' Brian Kernighan & Dennis Ritchie, as told to Vicki Brown

"rc" is also the name of the shell from the new Plan 9 operating system.

Perl = "Practical Extraction and Report Language"

Perl = "Pathologically Eclectic Rubbish Lister"

The Perl language is Larry Wall's highly popular freely-available completely portable text, process, and file manipulation tool that bridges the gap between shell and C programming (or between doing it on the command line and pulling your hair out). For further information, see the Usenet newsgroup comp.lang.perl.

Don Libes' book "Life with Unix" contains lots more of these tidbits.

1.4) How does the gateway between "comp.unix.questions" and the "info-unix" mailing list work?

"info-unix" and "unix-wizards" are mailing list versions of comp.unix.questions and comp.unix.wizards respectively. There should be no difference in content between the mailing list and the newsgroup.

To get on or off either of these lists, send mail to or Be sure to use the '-Request'. Don't expect an immediate response.

Here are the gory details, courtesy of the list's maintainer, Bob Reschly.

Postings to info-UNIX and UNIX-wizards lists

Anything submitted to the list is posted; I do not moderate incoming traffic -- BRL functions as a reflector. Postings submitted by Internet subscribers should be addressed to the list address (info-UNIX or UNIX- wizards); the '-request' addresses are for correspondence with the list maintainer [me]. Postings submitted by USENET readers should be addressed to the appropriate news group (comp.unix.questions or comp.unix.wizards).

For Internet subscribers, received traffic will be of two types; individual messages, and digests. Traffic which comes to BRL from the Internet and BITNET (via the BITNET-Internet gateway) is immediately resent to all addressees on the mailing list. Traffic originating on USENET is gathered up into digests which are sent to all list members daily.

BITNET traffic is much like Internet traffic. The main difference is that I maintain only one address for traffic destined to all BITNET subscribers. That address points to a list exploder which then sends copies to individual BITNET subscribers. This way only one copy of a given message has to cross the BITNET-Internet gateway in either direction.

USENET subscribers see only individual messages. All messages originating on the Internet side are forwarded to our USENET machine. They are then posted to the appropriate newsgroup. Unfortunately, for gatewayed messages, the sender becomes "news@brl-adm". This is currently an unavoidable side-effect of the software which performs the gateway function.

As for readership, USENET has an extremely large readership - I would guess several thousand hosts and tens of thousands of readers. The master list maintained here at BRL runs about two hundred fifty entries with roughly ten percent of those being local redistribution lists. I don't have a good feel for the size of the BITNET redistribution, but I would guess it is roughly the same size and composition as the master list. Traffic runs 150K to 400K bytes per list per week on average.

1.5) What are some useful Unix or C books?

Mitch Wright ( maintains a useful list of Unix and C books, with descriptions and some mini-reviews. There are currently 167 titles on his list.

You can obtain a copy of this list by anonymous ftp from (, where it's "pub/mitch/YABL/yabl". Send additions or suggestions to

Samuel Ko ( maintains another list of Unix books. This list contains only recommended books, and is therefore somewhat shorter. This list is also a classified list, with books grouped into categories, which may be better if you are looking for a specific type of book.

You can obtain a copy of this list by anonymous ftp from, where it's "pub/usenet/news.answers/books/unix". Send additions or suggestions to

If you can't use anonymous ftp, email the line "help" to "" for instructions on retrieving things via email.

1.6) What happened to the pronunciation list that used to be part of this document?

From its inception in 1989, this FAQ document included a comprehensive pronunciation list maintained by Maarten Litmaath (thanks, Maarten!). It was originally created by Carl Paukstis .

It has been retired, since it is not really relevant to the topic of "Unix questions". You can still find it as part of the widely-distributed "Jargon" file (maintained by Eric S. Raymond, which seems like a much more appropriate forum for the topic of "How do you pronounce /* ?"

If you'd like a copy, you can ftp one from (, it's "pub/unix-faq/docs/Pronunciation-Guide".

To jump to a specific part, click the number above.

Ted Timar -
ISG Technologies Inc., 6509 Airport Road, Mississauga, Ontario, Canada L4V 1S7