A version of UNIX from the IBM Corporation.
Zero or more characters passed to a program as a single unit. The shell breaks a command line into arguments by cutting it at unquoted white space. See also article 8.5, word.
An ordered collection of data items.
An array has a single overall name; each item in it is called an element
For instance, the C shell stores its command search path in an
The first array member is named
$path, the second is
$path, and so on.
Formally, a file containing only ASCII (51.3) characters. More commonly (in the USA, at least) a file containing text that's printable, viewable, and has no "binary" (non-ASCII) characters. ASCII characters use only seven of the bits in a (8-bit) byte.
Not the same as a single quote (
command substitution (9.16).
In UNIX, it changes the interpretation of the next character in some way.
See also article
A mechanism for sequencing large jobs. A batch queue receives job requests from users. It then executes the jobs one at a time. Batch queues go back to the earliest days of data processing. They are an extremely effective, if uncomfortable, way to manage system load. See also article 40.6.
A directory for storing executable programs. See also article 4.2.
A file with non-text characters. Often, a directly executable file that can be run as a program. Binary characters use all the bits in a (8-bit) byte. See also ASCII file.
The largest amount of data that a UNIX filesystem will always allocate contiguously. For example, if a filesystem's block size is 8 KB, files of size up to 8 KB are always physically contiguous (i.e., in one place), rather than spread across the disk. Files that are larger than the filesystem's block size may be fragmented: 8 KB pieces of the file are located in different places on the disk. Fragmentation limits filesystem performance. Note that the filesystem block size is different from a disk's physical block size, which is almost always 512 bytes.
A program with poor design or other errors can be called brain-damaged.
The versions of UNIX developed at the University of California, Berkeley. BSD UNIX has been dominant in academia and has historically had some more advanced features than System V: BSD introduced virtual memory, networking, and the "fast filesystem" to the UNIX community. It is also the system on which SunOS was based. System V Release 4 and some vendors' earlier System V versions also have Berkeley features.
A temporary storage place such as a file or an area of the computer's memory. Most text editors store the file you're editing in a buffer; when you're done editing, the edited buffer is copied over (i.e., replaces) the original file.
The text you type at a shell prompt.
A UNIX shell reads the command line, parses it to find the command name
(which is the first word on the command line), and executes the command.
A command line may have more than one command joined by operators like
double ampersands (
A character you make by holding down the keyboard CTRL (Control) key while pressing a letter or another character key.
When a program terminates abnormally, it may make a file named core. The core file can be used for debugging. See also article 24.5.
See dot (.) files (.cshrc, .login, .profile.
The character called "control x," where x is a key on the keyboard. See also control character.
A program that is invisible to users but provides important system services. Daemons manage everything from paging to networking to notification of incoming mail. BSD UNIX has many different daemons: without counting, I would guess that there are roughly two dozen. Daemons normally spend most of their time "sleeping" or waiting for something to do, so that they don't account for a lot of CPU load. See also article 1.14.
This hardware is something like a telephone switchboard. A data switch connects many terminals to two or more computers. The user, on a terminal or through a modem, tells the data switch which computer she wants a connection to. Also called a terminal multiplexor. Computers without data switches usually have one terminal connected to each tty (3.8) port; characteristics like the terminal type (5.10) can be set in system files. Conversely, computers with data switches can't know in advance what sort of terminal is connected to each tty port.
In a program that gives you more than one choice, the default choice is the one you get by not choosing. The default is usually the most common choice. As an example, the default file for many UNIX programs is the standard input. If you don't give a filename on the command line, a program will read its standard input.
Files that are read when you start a program (including when you log in and start a shell). These set up your environment and run any other UNIX commands (for instance, tset). If your account uses the C shell, it will read .cshrc and .login. Accounts that use the Bourne shell and shells like it read .profile. See also article 2.2.
" character. This isn't the same as two single quotes (
" is used around a part of a UNIX command line where
the shell should do variable and command substitution (and, on the C
shell, history substitution), but no other interpretation.
See also articles
When you escape a character or a string of characters, you change the way it is interpreted. Escaping something can take away its special meaning, as in shell quoting (8.14)- or can add special meaning, as in terminal escape sequences (5.8).
In programming, a flag variable is set to signal that some condition has been met or that something should be done. For example, a flag can be set ("raised") if the user has entered something wrong; the program can test for this flag and not continue until the problem has been fixed.
A heated or irrational statement.
In the BSD "fast filesystem," a fragment is a portion of a disk block - usually one-eighth of a block, but possibly one-quarter or one-half of a block. If the last portion of a file doesn't occupy a full disk block, the filesystem will allocate one or more fragments rather than an entire block. Don't confuse "fragments" with "fragmentation." Fragments allow the BSD filesystem to use larger block sizes without becoming inefficient.
A group that develops the freely available GNU software. Their address is: 675 Massachusetts Avenue, Cambridge, MA 02139 USA.
Communications between a terminal and a computer where data flows in both directions at the same time. Half-duplex communications, where data flows in only one direction at a time, are unusual these days. See also article 41.2.
Gnu's Not Unix, a system of software planned to eventually be a freely available substitute for UNIX. See also Free Software Foundation, FSF.
A "catch," difficulty, or surprise in the way that a program works.
In general, a value that can't be changed.
For example, in a shell script with the command
grep jane, the
jane is hardcoded; grep will always search for
But in the command
grep $USER, the text that grep searches for
is not hardcoded; it's a variable value.
Hashing data into the format of a hash table lets specially designed programs search for data quickly. A hash table assigns a special search code to each piece of data. For example, the C shell uses a hash table to locate commands more quickly; the rehash (4.2) command rebuilds the hash table after you add a new command.
Input/output of text from software or hardware.
A data structure that describes a file. Within any filesystem, the number of inodes, and hence the maximum number of files, is set when the filesystem is created. See also article 1.22.
A UNIX file has a name (for people to identify it with) and an i-number (for UNIX to identify it with). Each file's i-number is stored in a directory, along with the filename, to let UNIX find the file that you name. See also article 1.22.
One UNIX command. It is easy to be sloppy and use the terms job, process, and program interchangeably. I do it and I'm sure you do, too. Within UNIX documentation, though, the word "job" is usually used to mean one, and only one, command line. Note that one command line can be complex. For example:
pic a.ms | tbl | eqn | troff -ms
is one command, and hence one job, that is formed from four processes.
Shells with job control assign a job number to every command that is stopped or that is running in the background (1.26). You can use job numbers to refer to your own commands or groups of commands. Job numbers are generally easier to use than process IDs; they are much smaller (typically between 1 and 10), and therefore easier to remember. The C shell jobs command displays job numbers. See also article 12.1.
The part of the UNIX operating system that provides memory management, I/O services, and all other low-level services. The kernel is the "core" or "heart" of the operating system. See also article 1.14.
A program or a solution to a problem that isn't written carefully, doesn't work as well as it should, doesn't use good programming style, and so on.
Packages of system calls (and of other library functions) for programmers in C and other languages. In general (though not always), a library function is a "higher-level operation" than a system call. See also system call.
A measure of how busy the CPU is. The load average is useful, though imprecise. It is defined as the average number of jobs in the run queue plus the average number of jobs that are blocked while waiting for disk I/O. The uptime (39.7) command shows the load average.
See dot (.) files (.cshrc, .login, .profile.
In UNIX, an octal number that describes what access a file's owner, group, and others have to the file. See also article 1.23.
Think back to your fourth grade arithmetic.
When you divide two
numbers, you have a dividend (the number on top), a
divisor (the number on the bottom), a quotient (the
answer), and a remainder (what's left over).
In computer science, this kind of division is very important.
However, we're usually more interested in the remainder than in the quotient.
When we're interested in the remainder, we call the operation a
modulus (or modulo, or mod).
For instance, one of the examples on your fourth grade arithmetic text
might have been
13 ÷ 3 = 4 (with a remainder of 1).
As computer users, we're more interested in
13 mod 3 = 1.
It's really the same operation, though.
Modulo is also used in expressions like "modulo wildcards,"
which means "everything but wildcards."
Network File System. NFS allows UNIX systems and many non-UNIX systems to share files via a TCP/IP network. Subject to certain security restrictions, systems are allowed complete access to another system's files. See also article 1.33, TCP/IP.
The character that marks the end of a line of text in most UNIX files. (This is a convention, not a requirement.)
Empty, zero-length, with no characters - for example, a null string. This is not the same as an ASCII NUL (51.3) character.
The base 8 numbering system.
Octal numbers are made with the digits 0 through 7.
For example, the decimal (base 10) number
12 is the same as the
ASCII character codes (51.3)
are often shown as octal numbers.
Typed on a command line to modify the way that a UNIX command works.
Usually starts with a dash (
The terms option and switch are more or less interchangeable.
An option may have several settings, but a switch usually has two
on or off, enabled or disabled, yes or no, etc.
UNIX jargon for a "crash." A panic is really a special kind of a crash. Panics occur when UNIX detects some irreconcilable inconsistency in one of its internal data structures. The kernel throws up its hands and shuts the system down before any damage can be done. As it is going down, it prints a "panic" message on the console.
To split into pieces and interpret. Article 8.5 explains how the shell parses a command line.
A portion of a disk drive. UNIX disk drives typically have eight partitions, although not all are in use.
See search path.
A UNIX mechanism for sending the output of one program directly to the input of another program, without using an intermediate file. All UNIX systems support pipes. See also article 1.4. System V and SunOS also provide "named pipes," which are FIFO (first-in/first-out) buffers that have names and can be accessed via the filesystem.
A program that's portable can be used on more than one version of UNIX or with more than one version of a command.
An "open" computer operating system that is similar to UNIX.
A number that determines how often the kernel will run a process. A higher-priority process will run more often and, therefore, will finish faster, than a low-priority process.
A lot of the time, a process is nothing more than another name for a program that is running on the system. But there is a more formal definition: a process is a single execution thread, or a single stream of computer instructions. One job may be built from many different processes. For example, a command line with pipes (1.4) starts two or more processes. See also article 38.3.
UNIX assigns every process an ID number (called a PID) when it starts. See also article 38.3. This number allows you to refer to a process at a later time. If you need to kill (38.10) a runaway program, you refer to it by its process ID. The ps (38.5) command displays process IDs.
See dot (.) files (.cshrc, .login, .profile.
How a program asks you for information: by printing a short string
Delete afile? to the terminal and waiting for a response.
A way to write out program text, structured like a program, without using the actual programming language. Pseudo-code is usually used to explain a program.
Filesystems are usually set up to allow write access to users who have the proper permissions (1.23). The system administrator can mount a filesystem read-only; then no user will be able to make changes to files there.
A program or routine that re-executes itself or repeats an action over and over. For example, the find (17.1) program moves through a directory tree recursively, doing something in each directory.
On a video display, reversed foreground and background colors or tones. Reverse video is used to highlight an area or to identify text to be used or modified. For instance, if text is usually shown with black letters on a white background, reverse video would have white letters on a black background. See also article 5.8.
Small Computer Systems Interface, a standard interface for disk and tape devices now used on many UNIX (and non-UNIX) systems.
A list of directories that the shell searches to find the program file you want to execute. See also articles 6.4 and 8.7.
A program that reads and interprets command lines and also runs those programs. See also articles 8.5 and 44.3.
A signal from a shell (when it's used interactively) that the shell is
ready to read a command line.
By default, the percent sign (
%) is the C shell prompt and
the dollar sign (
$) is the Bourne shell prompt.
It separates elements in a pathname.
See also article
This isn't the same as a backquote (
The single quote is used around a part of a UNIX command line where the shell
should do no interpretation (except history substitution in the C shell).
See also articles
An entity in the filesystem that accesses I/O devices. There is a special file for every terminal, every network controller, every partition of every disk drive, and every possible way of accessing every tape drive. See also article 1.29.
A sequence of characters. See also word.
A directory within a directory. See also articles 1.21 and 4.7.
A technique that the UNIX kernel uses to clean up physical memory. The kernel moves entire processes from memory to disk and then reassigns the memory to some other function. Processes that have been idle for more than a certain period may be removed from memory to save space. Swapping is also used to satisfy extreme memory shortages. When the system is extremely short of memory, active processes may be "swapped out."
See option switch.
The lowest-level access to the UNIX operating system. Everything else in UNIX is built on system calls. See also library function.
A version of UNIX from AT&T. The most recent Release of System V is Release 4, known as V.4 or SVR4.
A network protocol that is commonly used for communications via an Ethernet. TCP/IP is also called the "Internet protocol." It is also common to use TCP/IP over leased lines for long-distance communications.
Stands for terminal capabilities, an early (and still common) way to describe terminals to UNIX. See also article 41.11, terminfo.
A program that makes a computer display emulate (act like) a terminal. For example, many terminal emulator programs emulate the Digital Equipment Corporation VT100 terminal.
A newer way to describe terminal capabilities to UNIX. See also article 41.11, termcap.
A term for two particular networks: Usenet and Internet (1.33). For instance, "I read it on the Net" or "You can get that file on the Net."
The UNIX filesystem stores the times that each file was last modified, accessed, or had a change to its inode. These times - especially the modification time - are often called timestamps. See also article 21.13.
To cut, to shorten - for example, "truncate a file after line 10" means to remove all lines after line 10.
Utilities that encode files with binary (8-bit) characters into an ASCII (7-bit) format - and decode them back into the original binary format. This is used for transferring data across communications links that can't transfer binary (8-bit) data. See also article 19.5.
A popular computer operating system from the Digital Equipment Corporation.
A terminal or program is wedged when it's "frozen" or "stuck." The normal activity stops and often can't be restarted without resetting the terminal or killing the program.
A series of one or more space or TAB characters.
Similar to a word in a spoken language like English, a word is a unit made up of one or more characters. But unlike English, words in UNIX can contain white space; they can also have no characters (a zero-length word). See also argument.
One of the first versions of UNIX to run on IBM PCs, and one of the few that will run on 80286 systems. XENIX descends from Version 7 UNIX, a version developed by AT&T in the late 1970s. It has many resemblances to BSD UNIX. Over time, XENIX has been rewritten as a variant of System V.2.
Dead processes that have not yet been deleted from the process table. Zombies normally disappear almost immediately. However, at times it is impossible to delete a zombie from the process table, so it remains there (and in your ps output) until you reboot. Aside from their slot in the process table, zombies don't require any of the system's resources. See also article 38.16.