Zero or more characters passed to a program or function as a single
unit. The shell breaks a command line into arguments by cutting it at
unquoted whitespace.
array
An ordered collection of data items. An array has a single overall
name; each item in it is called an element or
member. For instance, the C shell stores its
command search path in an array named
path. The first array member is named
$path[1], the second is
$path[2], and so on. Some arrays are indexed from
zero (e.g., C, Perl).
ASCII text file
Formally, a text file containing only ASCII characters. More commonly
(in the U.S., 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.
backquote
The character `. Not the same as a single quote
('). Used in pairs, does command substitution.
backslash
The character \. In Unix, it changes the
interpretation of the next character in some way. See
alsoSection 27.18.
batch queue
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.
bin directory
A directory for storing executable programs. See
alsoSection 7.4.
binaries, binary file
A file with nontext characters. Often, a directly executable file
that can be run as a program. Binary characters use all the bits in a
(8-bit) byte.
block size
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.
brain-damaged
How a program with poor design or other errors can be described.
BSD Unix
The versions of Unix developed at the University of California,
Berkeley. BSD (Berkeley Software Distribution) Unix has been dominant
in academia and has historically had some features more advanced than
System V: BSD introduced virtual memory, TCP/IP networking, and the
"fast filesystem" to the Unix
community. It is also the system on which Sun OS was based. System V
Release 4 and some vendors' earlier System V
versions also have Berkeley features.
buffer
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.
command line
The text you type at a shell prompt. A Unix shell reads the command
line, parses it to find the command name (which is usually the first
word on the command line, though it can be a variable assignment),
and executes the command. A command line may have more than one
command joined by operators such as semicolons
(;), pipes (|), or doubleampersands (&&).
control character
A character you make by holding down the keyboard CTRL (Control) key
while pressing a letter or another character key.
core file, core dump
The file made when a program terminates abnormally. The
core file can be used for debugging. This comes
from ancient "core" memory, where
the contents of memory were stored in a magnetized ferrite core.
See alsoSection 15.4.
A program that is invisible to users but provides important system
services. Daemons manage everything from paging to networking to
notification of incoming mail. See alsoSection 1.10.
data switch
Hardware that 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 to which
computer she wants a connection. A data switch is also called a
terminal multiplexor. Computers without data
switches usually have one terminal connected to each
tty port; characteristics like the terminal type
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.
default
In a program that gives you more than one choice, 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.
dot (.) files (.cshrc, .login, .profile)
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 alsoSection 3.6.
double quote
The " character. This isn't the
same as two single quotes ('') together. The
" 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 alsoSection 27.12
and Section 27.13.
escape
Using escape on a character or a string of
characters is a way to change how it is interpreted. This can take
away its special meaning, as in shell quoting; or it can add special meaning, as in terminal
escape sequences.
flag
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.
flame
A heated or irrational statement.
Free Software Foundation (FSF)
A group that develops the freely available GNU software. Their
address is: 675 Massachusetts Avenue, Cambridge, MA 02139 USA.
full-duplex
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.
GNU
Gnu's Not Unix, a system of software planned
eventually to be a freely available substitute for Unix.
gotcha
A "catch," difficulty, or surprise
in the way that a program works.
hardcoded
In general, a value that can't be changed. For
example, in a shell script with the command grep
jane, the value jane is hardcoded;
grep will always search for
jane. But in the command grep
$USER, the text that grep searches for
is not hardcoded; it's a variable value.
hash table
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 command rebuilds the hash
table after you add a new command.
I/O
Input/output of text from software or hardware.
inode
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.
i-number
A Unix file has a name (for people to identify it) and an i-number
(for Unix to identify it). Each file's i-number is
stored in a directory, along with the filename, to let Unix find the
file that you name.
job
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.
job number
Shells with job control assign a job number to every command that is
stopped or running in the background. 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
alsoSection 23.2.
kernel
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 alsoSection 1.10.
kludge
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.
library function
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.
load average
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 command shows the load
average.
.login file
See the "dot (.) files (.cshrc, .login, .profile)" entry in this glossary and
Section 3.4.
mode
In Unix, an octal number that describes what access a
file's owner, group, and others have to the file.
See alsoSection 1.17.
modulo
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 in 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."
NFS
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
alsoSection 1.21 and Section 44.9.
newline
The character that marks the end of a line of text in most Unix
files. (This is a convention, not a requirement.) Usually expressed
as "\n" or LF.
null
Empty, zero-length, with no characters -- for example, a
null string. This is not
the same as an ASCII NUL character.
octal number
The base 8 numbering system. Octal numbers are made with the digits 0
through 7,and begin with O. For example, the decimal (base 10) number
12 is the same as the octal number
14. ASCII character codes are often shown as octal
numbers.
option switch
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 settings: on or off, enabled or disabled, yes
or no, etc.
panic
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.
parse
To split into pieces and interpret.
partition
A portion of a disk drive. Unix disk drives typically have eight
partitions, although not all are in use.
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. System V and Sun OS also provide
"named pipes," which are FIFO
(first-in/first-out) buffers that have names and can be accessed via
the filesystem.
portable
A program that's portable can
be used on more than one version of Unix or with more than one
version of a command.
POSIX
POSIX is not an OS, but a standard for how Unix-like OSes should
behave at various levels. As an effort to counter the balkanization
of Unix from vendor to vendor, POSIX defines the ways in which
Unix-like OSes should expose their interfaces, from the kernel up to
program- and shell-argument level.
priority
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.
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 starts two or more
processes. See alsoSection 24.3.
process ID (PID)
Unix assigns every process an ID number (called a PID) when it
starts. See alsoSection 24.3. This number allows you to refer to a process
at a later time. If you need to kill a runaway program, you refer to it by
its process ID. The ps command displays process
IDs.
How a program asks you for information: by printing a short string
like Delete afile? to the terminal and waiting for
a response. See also "shell prompt" in this glossary.
pseudo-code
A way to write out program text, structured like a program, without
using the actual programming language. Pseudo-code usually explains a
program.
read-only filesystem
Filesystems are usually set up to allow write access to users who
have the proper permissions. The
system administrator can mount a filesystem
read-only; then no user can make changes to
files there.
recursive
A program or routine that re-executes itself or repeats an action
over and over. For example, the find program
moves through a directory tree recursively, doing something in each
directory.
reverse video
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.
SCSI
Small Computer Systems Interface, a standard interface for disk and
tape devices now used on many Unix (and non-Unix) systems.
search path
A list of directories that the shell searches to find the program
file you want to execute. See alsoSection 17.29 and Section 35.6.
shell
A program that reads and interprets command lines and also runs
programs. See alsoSection 27.3.
shell prompt
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 default C-shell prompt and
the dollar sign ($) is the default Bourne-shell
prompt. The default bash-shell prompt is also
the dollar sign ($).
slash
The character /. It separates elements in a
pathname. See alsoSection 1.16.
single quote
The ' character. 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 alsoSection 27.12 and Section 27.13.
special file
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 alsoSection 1.19.
A technique that the Unix kernel uses to clean up physical memory.
The kernel moves pages from memory to disk and then reassigns the
memory to some other function. Processes that have been idle for more
than a certain period of time 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."
system call
The lowest-level access to the Unix operating system. Everything else
in Unix is built on system calls.
System V Unix
A version of Unix from AT&T. The most recent Release of System V
is Release 4, known as V.4 or SVR4.
TCP/IP
Transmission Control Protocol/Internet Protocol. 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.
termcap
Stands for terminal
capabilities, an early (and still common) way to
describe terminals to Unix.
terminal emulator
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.
terminfo
A newer way to describe terminal capabilities to Unix.
the Net
A term for two particular networks: Usenet and Internet. For instance, "I read it on
the Net" or "You can get that file
on the Net."
timestamp
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.
truncate
To cut, to shorten -- for example, "truncate a
file after line 10" means to remove all lines after
line 10.
uuencode, uudecode
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 alsoSection 39.2.
VAX/VMS
A popular computer operating system from the Digital Equipment
Corporation.
wedged
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.
whitespace
A series of one or more space or TAB characters.
word
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 whitespace; they can also have no characters (a
zero-length word).
XENIX
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.
zombies
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 alsoSection 24.20.