UNIX FAQ Version 2.1 92/12/04

UNIX FAQ Version 2.1 92/12/04

Below are the answers to some Frequently Asked Questions about UNIX. See also comp.unix.questions and comp.unix.shell.

These articles are divided approximately as follows:

General questions

1.1)
Who helped you put this list together?
1.2)
When someone refers to 'rn(1)' or 'ctime(3)', what does the number in parentheses mean?
1.3)
What does {some strange unix command name} stand for?
1.4)
How does the gateway between "comp.unix.questions" and the "info-unix" mailing list work?
1.5)
What are some useful Unix or C books?
1.6)
What happened to the pronunciation list that used to be part of this document?

Relatively basic questions

2.1)
How do I remove a file whose name begins with a "-" ?
2.2)
How do I remove a file with funny characters in the filename ?
2.3)
How do I get a recursive directory listing?
2.4)
How do I get the current directory into my prompt?
2.5)
How do I read characters from the terminal in a shell script?
2.6)
How do I rename "*.foo" to "*.bar", or change file names to lowercase?
2.7)
Why do I get [some strange error message] when I "rsh host command" ?
2.8)
How do I {set an environment variable, change directory} inside a program or shell script and have that change affect my current shell?
2.9)
How do I redirect stdout and stderr separately in csh?
2.10)
How do I tell inside .cshrc if I'm a login shell?
2.11)
How do I construct a shell glob-pattern that matches all files except "." and ".." ?
2.12)
How do I find the last argument in a Bourne shell script?
2.13)
What's wrong with having '.' in your $PATH ?

Intermediate questions

3.1)
How do I find out the creation time of a file?
3.2)
How do I use "rsh" without having the rsh hang around until the remote command has completed?
3.3)
How do I truncate a file?
3.4)
Why doesn't find's "{}" symbol do what I want?
3.5)
How do I set the permissions on a symbolic link?
3.6)
How do I "undelete" a file?
3.7)
How can a process detect if it's running in the background?
3.8)
Why doesn't redirecting a loop work as intended? (Bourne shell)
3.9)
How do I run 'passwd', 'ftp', 'telnet', 'tip' and other interactive programs from a shell script or in the background?
3.10)
How do I find out the process ID of a program with a particular name from inside a shell script or C program?
3.11)
How do I check the exit status of a remote command executed via "rsh" ?
3.12)
Is it possible to pass shell variable settings into an awk program?
3.13)
How do I get rid of zombie processes that persevere?
3.14)
How do I get lines from a pipe as they are written instead of only in larger blocks.

Advanced questions

4.1)
How do I read characters from a terminal without requiring the user to hit RETURN?
4.2)
How do I check to see if there are characters to be read without actually reading?
4.3)
How do I find the name of an open file?
4.4)
How can an executing program determine its own pathname?
4.5)
How do I use popen() to open a process for reading AND writing?
4.6)
How do I sleep() in a C program for less than one second?
4.7)
How can I get setuid shell scripts to work?
4.8)
How can I find out which user or process has a file open or is using a particular file system (so that I can unmount it?)
4.9)
How do I keep track of people who are fingering me?
4.10)
Is it possible to reconnect a process to a terminal after it has been disconnected, e.g. after starting a program in the background and logging out?
4.11)
Is it possible to "spy" on a terminal, displaying the output that's appearing on it on another terminal?

Questions pertaining to the various shells

5.1)
Can shells be classified into categories?
5.2)
How do I "include" one shell script from within another shell script?
5.3)
Do all shells have aliases? Is there something else that can be used?
5.4)
How are shell variables assigned?
5.5)
How can I tell if I am running an interactive shell?
5.6)
What "dot" files do the various shells use?
5.7)
I would like to know more about the differences between the various shells. Is this information available some place?

An overview of Unix variants

6.1)
Disclaimer and introduction.
6.2)
A very brief look at Unix history.
6.3)
Main Unix flavors.
6.4)
Unix Standards.
6.5)
Identifying your Unix flavor.
6.6)
Brief notes on some well-known (commercial/PD) Unices.
6.7)
Real-time Unices.
6.8)
Unix glossary.
6.9)
Acknowledgements.

An comparison of configuration management systems (RCS, SCCS)

7.1)
RCS vs SCCS: Introduction
7.2)
RCS vs SCCS: How do the interfaces compare?
7.3)
RCS vs SCCS: What's in a Revision File?
7.4)
RCS vs SCCS: What are the keywords?
7.5)
What's an RCS symbolic name?
7.6)
RCS vs SCCS: How do they compare for performance?
7.7)
RCS vs SCCS: Version Identification.
7.8)
RCS vs SCCS: How do they handle with problems?
7.9)
RCS vs SCCS: Conversion.
7.10)
RCS vs SCCS: Support
7.11)
RCS vs SCCS: Command Comparison
7.12)
RCS vs SCCS: Acknowledgements
7.13)
Can I get more information on configuration management systems?