
========================================================================

COMMAND SELECTION GUIDE

========================================================================

Thaddeus H. Black <t@b-tk.org>
Version 0.4.1, 6 February 2004

A modern GNU/Linux system has hundreds or even daunting thousands of
available commands.  This Guide introduces and ramifies the commands
which seem to the author most significant and common.  If you know what
you want your computer to do, but do not yet know the right command to
give, you can find the command here.

------------------------------------------------------------------------
RAMIFICATION AND TABLE OF CONTENTS
------------------------------------------------------------------------

Application
Scope
Construction and Use

THE COMMANDS

0100 BASH SHELL BUILTINS
0110 Bash Directory Specification
0120 Bash Parameter Handling
0130 Bash Environment Management
0140 Bash Job Control
0150 Bash Command-line Control
0160 Bash Shell Control
0170 Bash Flow Control
0180 Bash Condition Testing
0190 Other Bash Shell Builtins

0200 BASH SHELL ELEMENTS AND OPERATORS
0220 Bash Shell Parameters
0230 Bash Shell Variable Handling
0240 Bash Jobspecs
0250 Bash Text Expansion
0251   Bash Quoting
0252   Bash Character Escapes
0253   Bash Pattern Matching
0254   Bash Pathname Expansion
0270 Bash Flow-control and Redirection
0271   Bash Flow-control Operators
0272   Bash Redirection
0280 Bash Tests
0281   Bash File Tests (see test builtin)
0282   Bash String Tests (see test builtin)
0290 Other Bash Shell Elements and Operators

**** Examples Illustrating Bash's Flow-control Builtins

1000 USER COMMANDS
1010 Shell Invocation and Related Commands
1020 Unbuiltins
1100 General Commands
1110   File Commands
1111     General File Commands
1112     File Listing and Finding
1113     Symbolic Linking
1114     Directories
1115     File Moving, Copying and Naming
1120   Text Commands
1121     General Text Commands
1122     Text Scanning and Filtering
1123     Text Formatting
1124     Text Sorting
1125     Text Comparison
1128     Byte Handling
1180   Date and Time
1190   Other General Commands
1200 Basic Tools
1210   Compression, Archival and Backup
1220   Tasking
1221     Execution Scheduling
1222     File Locking
1227     Other Tasking
1240   Pagers, Documentation Tools and Text Editors
1241     Pagers and Documentation Tools
1246     Text Editors
1250   Console and TTY
1251     Login
1252     Console
1253     TTY
1256     Screen-oriented Text I/O
1300 Programming
1310   Programming Foundation
1311     C
1312     C++
1313     Libraries and Linking
1314     Assembly
1315     Make
1316     Lexing and Parsing
1318     Debugging
1320   Revision Control
1330   Autoconf
1350   Interpreters
1410 General Administration (User Commands)
1420   User ID (User Commands)
1440   Filesystems and Disks (User Commands)
1450   The Kernel (User Commands)
1460   User Accounts (User Commands)
1480   Debian Packaging and Development (User Commands)
1490   Other General Administration (User Commands)
1600 Networking (User Commands)
1610   TCP/IP (User Commands)
1620   Other Network Foundation (User Commands)
1622     DNS (User Commands)
1626     Modem Control and Communications (User Commands)
1640   Network Clients
1641     General Network Clients
1642     FTP
1650   Mail
1700 Other
1710   Printing
1711     Print Dispatch and Basic Printing
1712     Postscript and PDF
1713     TeX
1715     Groff
1716     SGML / XML
1720   Mathematics
1721     Geometry
1727     Other Mathematics
1728     Plotting
1730   Cryptography
1740   Image Filtration and Handling
1800 X
1810   X Foundation
1820   Basic X
1821     General Basic X
1822     X TTY
1823     X Fonts
1824     X Image Handling
1830   X Programming
1840   X Applications
1900 Audio

4000 DEVICES

5000 FILE FORMATS
5100 General File Formats
5200 TTY- and Console-related File Formats
5300 Programming File Formats
5400 Administrative File Formats
5410   Boot-control File Formats
5430   Process-control File Formats
5440   Filesystem-control File Formats
5450   Kernel-interface File Formats
5460   User-account Administration File Formats
5480   Debian File Formats
5490   Other System-configuration File Formats
5600 Networking File Formats
5620   General Networking File Formats
5650   Mail File Formats
5700 Other File Formats
5710   Printservice Configuration File Formats
5740   Image Formats
5800 X-configuration File Formats

7000 CONVENTIONS AND MISCELLANY
7100 System Conventions and Miscellany
7200 Character-set Conventions and Miscellany
7300 Groff Conventions and Miscellany
7600 Network Conventions and Miscellany
7700 Other Conventions and Miscellany
7800 X Conventions and Miscellany

8000 ADMINISTRATIVE AND PRIVILEGED COMMANDS
8100 General Administration
8110   Booting and OS Installation
8120   User ID
8130   Process Administration
8140   Filesystems and Disks
8150   The Kernel
8151     Kernel Control and Management of Central Hardware
8156     Kernel-module Control
8157     Console Control
8160   User Accounts
8190   Other General Administration
8200 Debian Packaging and Development
8500 General Services
8600 Network Administration and Services
8620   Network Administration
8640   Network Services

How To Learn More about a Specific Command
How To Install a Missing Command
How To Find Other Commands
Work Still Needed
Document History
Acknowledgments
About the Author
Copyleft

------------------------------------------------------------------------

APPLICATION

The author has written this edition of the Guide mostly with reference
to Debian GNU/Linux 2.2r6 and 3.0r2.  Nevertheless, most of the useful
commands this Guide covers are found on most GNU/Linux systems
everywhere; many of them are even found on most Unix-type systems
everywhere.  This Guide thus has general application.

SCOPE

This edition of the Command Selection Guide identifies and ramifies 872
important GNU/Linux commands.

A large number of useful but specialized and obscure commands are
deliberately omitted.  New, less proven commands -- defined as commands
making their first Debian appearance in or after Debian GNU/Linux 3.0 --
are also generally omitted.  In some cases, even popular, well
established, generally useful alternatives exist which are not covered:
for example, although bash(1) is the only shell covered here, several
other good shells exist; similarly, many good text editors exist of
which this Guide covers only a few.  The reason for such extensive
omissions, of course, is to keep this Guide brief enough to be helpful
both to the experienced GNU/Linux veteran and to the newcomer who wishes
to grow into an experienced GNU/Linux veteran.  The author has applied
his own experience and his best subjective judgment in the matter.

Conspicuously missing from this Guide are hundreds of possible entries
for NFS, Gnome, KDE, Mesa, DRI, Rplay, ALSA, HTML conversion, SVGAlib
and the various X window managers.  This Guide, while quite long enough,
does seek to obtain some useful degree of brevity; thus the exclusions.
The Guide, however, has also a philosophical reason for many of the
exclusions: namely, that, when properly organized and used, GNU/Linux is
at heart a text-driven system; the graphics and sound are extra.  If you
want to become a GNU/Linux expert, it is more important that you first
learn well the text-driven core of the system than that you understand
the generally more complex graphical and audio additions.  Learn first
many or most of the commands in this Guide: to do so will serve you
well.

To obtain a more complete, less selective listing of available commands,
see the section "How To Find Other Commands" at the end of this Guide.

CONSTRUCTION AND USE

This Guide ramifies or classifies GNU/Linux commands similarly as
debram(1) does Debian packages, numbering the ramifications or branches
in essentially the same way.  It therefore groups related commands
together for common reference in a similar way as a city library or a
university library groups related books together, or as a university
department groups related courses together.  For example, the Guide
groups together, under ramification 1112, nine file-listing and -finding
commands, none of them new, all of them fairly important, and most of
them widely used; furthermore, it places the whole 1112 branch near
ramifications 1111, 1113, 1114 and 1115, which contain other file
commands.  One of the vexing problems of GNU/Linux manpages, after all,
has always been that, while they often each include a "See Also" section
referring to related commands, the "See Also" section frequently lacks
reference to several of the most important available related commands.
This is often simply because the related commands did not yet exist at
the time the manpage was written.  For example, while tree(1)'s manpage
does indeed refer to the venerable ls(1), ls(1)'s documentation never
refers to the newer tree(1); therefore, had you been using `ls -R' to
list directories' contents recursively, how would you ever even have
known that the fine tree(1) command were available for a similar
purpose?  With reference to this Command Selection Guide, you can know
of tree(1) and hundreds of other useful commands of which you might
never otherwise have known.

Besides the commands proper (as in man sections 1 and 8), this Guide
also includes the devices (4), configuration files (5), and conventions
and miscellany (7) that have man pages and seem most significant and
common.

To learn more than the one-line summary this Guide gives each command,
see the section "How To Learn More about a Specific Command" at the end
of this Guide.

------------------------------------------------------------------------

THE COMMANDS

------------------------------------------------------------------------
0110 BASH DIRECTORY SPECIFICATION
------------------------------------------------------------------------
cd         [builtin] - change the current directory
dirs       [builtin] - display the list of currently remembered dirs
popd       [builtin] - remove an entry from the directory stack
pushd      [builtin] - add a directory to the top of the directory stack
pwd        [builtin] - print name of current/working directory

------------------------------------------------------------------------
0120 BASH PARAMETER HANDLING
------------------------------------------------------------------------
getopts    [builtin] - parse positional parameters
shift      [builtin] - shift $2 to $1, $3 to $2, etc, discarding $1

------------------------------------------------------------------------
0130 BASH ENVIRONMENT MANAGEMENT
------------------------------------------------------------------------
export     [builtin] - prepare the environments of subsequent commands
umask      [builtin] - set the user file-creation mask
unset      [builtin] - remove the specified variable (or function)

------------------------------------------------------------------------
0140 BASH JOB CONTROL
------------------------------------------------------------------------
%          [builtin] - resume a stopped or background job
bg         [builtin] - place the specified job in the background
disown     [builtin] - remove a job from the table of active jobs
fg         [builtin] - place the specified job in the foreground
jobs       [builtin] - list the active jobs
kill       [builtin] - send the proc or job named the signal specified
time       [builtin] - run programs and summarize system resource usage
times      [builtin] - print a job's user- and system-time usage
ulimit     [builtin] - control resources avail to procs the shell starts
wait       [builtin] - wait for the given proc; report its exit status

------------------------------------------------------------------------
0150 BASH COMMAND-LINE CONTROL
------------------------------------------------------------------------
alias      [builtin] - define a command alias
history    [builtin] - display the history list with line numbers
set -o vi  [builtin] - use vi-style cmd line; `set -o emacs' countrmands
type       [builtin] - indicate how the given name would be interpreted
unalias    [builtin] - remove the specified names from the alias list

------------------------------------------------------------------------
0160 BASH SHELL CONTROL
------------------------------------------------------------------------
exec       [builtin] - replace this shell with the specified program
exit       [builtin] - exit the shell
logout     [builtin] - log out of a login shell (shortcut: ^D)
set        [builtin] - set shell flags
set -e     [builtin] - exit on an error; `set +e' countermands
shopt      [builtin] - toggle variables controlling optional behavior
suspend    [builtin] - suspend the execution of this shell until SIGCONT
trap       [builtin] - execute command when shell rcvs the given signal

------------------------------------------------------------------------
0170 BASH FLOW CONTROL
------------------------------------------------------------------------
break      [builtin] - exit from within a for, while or until loop
case       [builtin] - selectively execute commands
continue   [builtin] - resume the next iteration of the enclosing loop
for        [builtin] - execute commands for each member in a list
function   [builtin] - create a simple command
if         [builtin] - execute if exit status is zero
local      [builtin] - create a variable local to a function
return     [builtin] - exit a function with the return value specified
until      [builtin] - execute until zero exit status
while      [builtin] - execute while zero exit status

------------------------------------------------------------------------
0180 BASH CONDITION TESTING
------------------------------------------------------------------------
[]         [builtin] - check file types & compare vals (same as `test')
false      [builtin] - return an unsuccessful result
test       [builtin] - check file types and compare values
true       [builtin] - return a successful result

------------------------------------------------------------------------
0190 OTHER BASH SHELL BUILTINS
------------------------------------------------------------------------
.          [builtin] - read and execute commands in the current environ
:          [builtin] - do nothing; this builtin has no effect
echo       [builtin] - display a line of text
help       [builtin] - display helpful info about builtin commands
printf     [builtin] - format and print
source     [builtin] - read and execute commands in the current environ

------------------------------------------------------------------------
0220 BASH SHELL PARAMETERS
------------------------------------------------------------------------
$!           [shell] - the last background command's process ID
$#           [shell] - the number of positional parameters remaining
$$           [shell] - the shell's process ID
$*           [shell] - "$1 $2 ..."
$1 $2 ...    [shell] - positional parameters given by parent to shell
$?           [shell] - the last command's return status
$@           [shell] - "$1" "$2" ...
$HOME        [shell] - the user's home directory
$PATH        [shell] - the search path for commands
$PPID        [shell] - the shell's parent's process ID
$PS1         [shell] - string controlling the cmd prompt's appearance
$PWD         [shell] - the present working directory

------------------------------------------------------------------------
0230 BASH SHELL VARIABLE HANDLING
------------------------------------------------------------------------
$var         [shell] - evaluate the variable
${var}       [shell] - evaluate the variable
${var:-text} [shell] - evaluate the variable; return text if empty
${var:=text} [shell] - evaluate the variable; assign text if empty
var=text     [shell] - store the given text in the named shell variable
x=t1 y=t2 c  [shell] - run cmd c with environ vars x & y set to t1 & t2

------------------------------------------------------------------------
0240 BASH JOBSPECS
------------------------------------------------------------------------
%+ %% %      [shell] - the current job
%-           [shell] - the previous job
%n           [shell] - job number n
%jobname     [shell] - the named job

------------------------------------------------------------------------
0251 BASH QUOTING
------------------------------------------------------------------------
"text"       [shell] - accept the enclosed text with interpolation
'text'       [shell] - accept the enclosed text verbatim
` cmd `      [shell] - accept the text the enclosed command produces

------------------------------------------------------------------------
0252 BASH CHARACTER ESCAPES
------------------------------------------------------------------------
\nnn         [shell] - (three-digit octal character; see ascii(7))
\n           [shell] - (newline character)
\t           [shell] - (tab character)

------------------------------------------------------------------------
0253 BASH PATTERN MATCHING
------------------------------------------------------------------------
*            [shell] - any zero or more characters
?            [shell] - any one character
[chars]      [shell] - any one of the enclosed characters
[^chars]     [shell] - any character not enclosed
[A-Za-z]     [shell] - any character `A' through `Z' or `a' through `z'
{a1,a2,...}  [shell] - any one of the comma-separated alternatives

------------------------------------------------------------------------
0254 BASH PATHNAME EXPANSION
------------------------------------------------------------------------
.            [shell] - the present working directory
..           [shell] - the present working directory's parent
~            [shell] - the user's home directory
~-           [shell] - the previous directory
~user        [shell] - the named user's home directory

------------------------------------------------------------------------
0271 BASH FLOW-CONTROL OPERATORS
------------------------------------------------------------------------
! cmd        [shell] - logically invert the command's exit status
cmd  ;       [shell] - syntactically terminate the command
cmd1 ;  cmd2 [shell] - run the commands in sequence
cmd1 |  cmd2 [shell] - pipe one cmd's stdout directly to another's stdin
cmd1 && cmd2 [shell] - run cmd2 if and only if cmd1 succeeds
cmd1 || cmd2 [shell] - run cmd2 if and only if cmd1 fails
{ cmd ; }    [shell] - run the enclosed command in the current environ
{ c1 ; c2 ; }[shell] - run the enclosed cmds as a single cmd
( cmd )      [shell] - run the enclosed command in a subshell
( c1 ; c2 )  [shell] - run the enclosed cmds in subshell as a single cmd
cmd &        [shell] - run the command in the background

------------------------------------------------------------------------
0272 BASH REDIRECTION
------------------------------------------------------------------------
<   file     [shell] - let the named file provide stdin
>   file     [shell] - redirect stdout to the named file
>>  file     [shell] - append stdout to the named file
2>  file     [shell] - redirect stderr to the named file
2>> file     [shell] - append stderr to the named file
&>  file     [shell] - redirect both stdout and stderr to the named file
&>> file     [shell] - append both stdout and stderr to the named file
1>&2         [shell] - redirect stdout to stderr
2>&1         [shell] - redirect stderr to stdout

------------------------------------------------------------------------
0281 BASH FILE TESTS (SEE TEST BUILTIN)
------------------------------------------------------------------------
-O file      [shell] - true if file exists and is yours
-d file      [shell] - true if file exists and is a directory
-e file      [shell] - true if file exists
-f file      [shell] - true if file exists and is a regular file
-h file      [shell] - true if file is a symbolic link
-r file      [shell] - true if file exists and is readable
-w file      [shell] - true if file exists and is writable
-x file      [shell] - true if file exists and is executable
f1 -nt f2    [shell] - true if file 1 is newer than file 2
f1 -ot f2    [shell] - true if file 1 is older than file 2

------------------------------------------------------------------------
0282 BASH STRING TESTS (SEE TEST BUILTIN)
------------------------------------------------------------------------
-n text      [shell] - true if text has non-zero length
-z text      [shell] - true if text has zero length
t1 != t2     [shell] - true if text1 and text2 differ
t1 == t2     [shell] - true if text1 and text2 are the same

------------------------------------------------------------------------
0290 OTHER BASH SHELL ELEMENTS AND OPERATORS
------------------------------------------------------------------------
# comment    [shell] - let the shell ignore the comment
\            [shell] - continue this line on the next line

------------------------------------------------------------------------
EXAMPLES ILLUSTRATING BASH'S FLOW-CONTROL BUILTINS
------------------------------------------------------------------------

The several examples which follow suffice to illustrate the use of the
shell's important `if', `case', `for', `while', `until' and `function'
builtins.  Take some time to study the examples; even try them if needed
or desired.  Until you understand these basic examples, you probably
will not be able to understand much of what goes on when you use
GNU/Linux.

(Notice that, while the examples happen to demonstrate the conditional
execution of the `echo' builtin, you could equally well substitute for
the various `echo's any commands you wanted.)

--------------------
IF
--------------------

The shell command

    if   [ $A == foo ] ; then echo oof  ;
    elif [ $A == bar ] ; then echo rab  ;
    elif [ $A == baz ] ; then echo zab  ;
    else                      echo nile ;
    fi

prints

    oof

if $A is "foo"; prints

    rab

if $A is "bar"; prints

    zab

if $A is "baz"; and prints

    nile

if $A is anything else.  (To assign "foo" to $A before giving the `if'
command, first give the command "A=foo".)

--------------------
CASE
--------------------

The shell command

    case $A in
        foo | bar ) echo barfoo                ;;
        eb?z*     ) echo ebozbarren ; echo baz ;;
        *         ) echo default               ;;
    esac

prints

    barfoo

if $A is "foo" or "bar"; prints

    ebozbarren
    baz

if $A is "ebozbar", "ebazzy", or something similar; and prints

    default

if $A is anything else.

--------------------
FOR
--------------------

The shell command

    for X in foo bar baz ; do echo X is ; echo $X ; done

prints

    X is
    foo
    X is
    bar
    X is
    baz

--------------------
WHILE AND UNTIL
--------------------

The shell group command

    {
        rm -rf /tmp/foo # ensure that no /tmp/foo exists
        until echo bar ; test -f /tmp/foo ;
            do echo baz ; touch /tmp/foo ; echo qux ; done
        echo oooo
        while echo rab ; test -f /tmp/foo ;
            do echo zab ; rm    /tmp/foo ; echo xuq ; done
    }

prints

    bar
    baz
    qux
    bar
    oooo
    rab
    zab
    xuq
    rab

Notice that the `while' cycles until the command before its `do' fails
but the `until' cycles until the command before its `do' succeeds.  The
command happens to be "test -f /tmp/foo" in the example, but in general
it could be any GNU/Linux command.

When a GNU/Linux command fails, incidentally, it returns 1 or some other
"exit status" besides 0; when it succeeds, it returns 0 (which is
exactly opposite the way C operators work).  The shell does not normally
clutter the screen by showing you these exit-status numbers: to view the
last command's exit status, therefore, enter "echo $?".

--------------------
FUNCTION
--------------------

The shell command

    foo() {
        echo the third positional parameter is $3
        echo the first positional parameter is $1
        echo the positional parameters are $*
    }

defines a new shell function named `foo'.  After defining `foo', the
shell command

    foo bar baz qux quux

prints

    the third positional parameter is qux
    the first positional parameter is bar
    the positional parameters are bar baz qux quux

------------------------------------------------------------------------
1010 SHELL INVOCATION AND RELATED COMMANDS
------------------------------------------------------------------------
bash (1)             - run the Bourne-Again SHell
bash -e (1)          - bash(1), but exit on an error
builtins (1)         - (bash(1) built-in commands)
getopt (1)           - parse command options (enhanced)
rbash (1)            - run a restricted bash(1)
sh (1)               - run bash(1) like the old sh(1)

------------------------------------------------------------------------
1020 UNBUILTINS
------------------------------------------------------------------------
/bin/false (1)       - do nothing, unsuccessfully
/bin/kill (1)        - signal a process
/bin/pwd (1)         - print name of current/working directory
/bin/true (1)        - do nothing, successfully
/usr/bin/printf (1)  - format and print data
/usr/bin/test (1)    - check file types and compare values
/usr/bin/time (1)    - run programs and summarize system resource usage

------------------------------------------------------------------------
1111 GENERAL FILE COMMANDS
------------------------------------------------------------------------
chmod (1)            - change file access permissions
file (1)             - determine file type
mkfifo (1)           - make FIFOs (named pipes)
newer (1)            - compare file modification times
stat (1)             - display file or filesystem status
touch (1)            - change file timestamps

------------------------------------------------------------------------
1112 FILE LISTING AND FINDING
------------------------------------------------------------------------
dir (1)              - briefly ls(1)
find (1)             - search for files in a directory hierarchy
limo (1)             - LIst files with Many Options
locate (1)           - list files in databases that match a pattern
ls (1)               - list directory contents
tree (1)             - list directories in a tree-like format
vdir (1)             - verbosely ls(1)
whereis (1)          - locate a command's binary, source and manpage
which (1)            - locate a command

------------------------------------------------------------------------
1113 SYMBOLIC LINKING
------------------------------------------------------------------------
ln (1)               - make links between files
namei (1)            - follow a pathname until a terminal point is found
readlink (1)         - display target of symbolic link on std output
symlinks (1)         - maintain symbolic links

------------------------------------------------------------------------
1114 DIRECTORIES
------------------------------------------------------------------------
basename (1)         - strip directory and suffix from filenames
dirname (1)          - strip non-directory suffix from filename
mkdir (1)            - make directories
rmdir (1)            - remove empty directories

------------------------------------------------------------------------
1115 FILE MOVING, COPYING AND NAMING
------------------------------------------------------------------------
cp (1)               - copy files and directories
dd (1)               - convert and copy a file
install (1)          - copy files and set attributes
mmv (1)              - move/copy/append/link multiple files by wildcard
mv (1)               - move (rename) files
rm (1)               - remove files or directories

------------------------------------------------------------------------
1121 GENERAL TEXT COMMANDS
------------------------------------------------------------------------
cat (1)              - concatenate files and print on standard output
head (1)             - output the first part of files
multitee (1)         - send multiple inputs to multiple outputs
rev (1)              - reverse lines of a file
split (1)            - split a file into pieces
tac (1)              - concatenate and print files in reverse
tail (1)             - output the last part of files
tee (1)              - read from stdin and write to stdout and files

------------------------------------------------------------------------
1122 TEXT SCANNING AND FILTERING
------------------------------------------------------------------------
awk (1)              - (see mawk(1))
egrep (1)            - grep(1) using extended regexes
expand (1)           - convert tabs to spaces
grep (1)             - print lines matching a pattern
mawk (1)             - scan patterns and process text
pgrep (1)            - grep(1) using with perl(1)-compatible regexes
rgrep (1)            - grep(1), scanning directories recursively
sed (1)              - apply the Stream EDitor
wc (1)               - count the bytes, words and lines in files
wc -L (1)            - print the length of the longest line

------------------------------------------------------------------------
1123 TEXT FORMATTING
------------------------------------------------------------------------
column (1)           - columnate lists
fmt (1)              - format text simply and optimally
fold (1)             - wrap each input line to fit in specified width
nl (1)               - number lines of files
pr (1)               - convert text files for printing

------------------------------------------------------------------------
1124 TEXT SORTING
------------------------------------------------------------------------
sort (1)             - sort lines of text files
tsort (1)            - perform topological sort
uniq (1)             - remove duplicate lines from a sorted file

------------------------------------------------------------------------
1125 TEXT COMPARISON
------------------------------------------------------------------------
cmp (1)              - compare two files or byte ranges
comm (1)             - compare two sorted files line by line
diff (1)             - find differences between two files
diff3 (1)            - find differences between three files
merge (1)            - merge three files
patch (1)            - apply a diff file to an original

------------------------------------------------------------------------
1128 BYTE HANDLING
------------------------------------------------------------------------
cksum (1)            - checksum and count the bytes in a file
hexdump (1)          - dump as ascii, decimal, hexadecimal or octal
hextype (1)          - dump as hexadecimal
md5sum (1)           - generate or check MD5 message digests
od (1)               - dump files in octal and other formats
sum (1)              - checksum and count the blocks in a file
xxd (1)              - make a hexdump or do the reverse

------------------------------------------------------------------------
1180 DATE AND TIME
------------------------------------------------------------------------
822-date (1)         - print date and time in RFC822 format
cal (1)              - display a calendar
date (1)             - print or set the system date and time
gcal (1)             - display calendar sheets in many ways
tzselect (1)         - view timezones
tzwatch (1)          - display the time in user-specified timezones
zdump (1)            - print the current time in each named time zone

------------------------------------------------------------------------
1190 OTHER GENERAL COMMANDS
------------------------------------------------------------------------
env (1)              - run a program in a modified environment
ispell (1)           - check spelling interactively
nice (1)             - run a program with modified scheduling priority
printenv (1)         - print all or part of environment
seq (1)              - print a sequence of numbers
sleep (1)            - delay for a specified amount of time
xargs (1)            - build and execute command lines from stdin
yes (1)              - output a string repeatedly until killed

------------------------------------------------------------------------
1210 COMPRESSION, ARCHIVAL AND BACKUP
------------------------------------------------------------------------
bunzip2 (1)          - decompress .bz2 files
bzcat (1)            - decompress .bz2 files to stdout
bzip2 (1)            - compress files in the block-sorting .bz2 format
cpio (1)             - copy files to and from archives
gunzip (1)           - expand files
gzexe (1)            - compress executable files in place
gzip (1)             - compress files
makedist (1)         - make a distribution kit
ras (1)              - apply this redundant archive system
tar (1)              - archive files in the .tar format
zcat (1)             - expand files to stdout
zcmp (1)             - compare compressed files with cmp(1)
zdiff (1)            - compare compressed files with diff(1)
zegrep (1)           - egrep(1) possibly compressed files
zgrep (1)            - grep(1) possibly compressed files

------------------------------------------------------------------------
1221 EXECUTION SCHEDULING
------------------------------------------------------------------------
at (1)               - queue jobs for later execution
atq (1)              - examine jobs for later execution
atrm (1)             - delete jobs for later execution
batch (1)            - execute commands when system load levels permit
crontab (1)          - maintain crontab files for individual users

------------------------------------------------------------------------
1222 FILE LOCKING
------------------------------------------------------------------------
lockfile (1)         - conditionally create a semaphore file
mktemp (1)           - make a unique temporary file name
tempfile (1)         - create a temporary file in a safe manner
uuidgen (1)          - create a new universally unique identifier (UUID)

------------------------------------------------------------------------
1227 OTHER TASKING
------------------------------------------------------------------------
fuser (1)            - identify processes using files or sockets
killall (1)          - kill processes by name
nohup (1)            - run a command immune to hangups, to a non-tty
ps (1)               - report process status
pstree (1)           - display a tree of processes
renice (1)           - alter priority of running processes
setuid (1)           - run a command with a different uid
skill (1)            - signal a process identified in one of sevral ways
slay (1)             - kill all processes belonging to a user
snice (1)            - reprioritize a process
top (1)              - display top CPU processes
watch (1)            - execute a program periodically, output fullscreen

------------------------------------------------------------------------
1241 PAGERS AND DOCUMENTATION TOOLS
------------------------------------------------------------------------
apropos (1)          - search the manual-page names and descriptions
ascii (1)            - report character aliases
bible (1)            - look words and verses up in the Bible (KJV)
col (1)              - filter reverse line feeds from input
col -b (1)           - degroffify a man page to plain ascii
dict (1)             - run this dictionary database client
info (1)             - read Info documents
less (1)             - peruse files, allowing backward movement
man (1)              - display the on-line reference manuals
manpath (1)          - determine search path for manual pages
more (1)             - peruse files
most (1)             - browse or page through a text file
pinfo (1)            - curses based lynx(1)-style info browser
randverse (1)        - display a randomly selected verse from scripture
sensible-pager (1)   - run a sensible text pager
whatis (1)           - display manual-page descriptions
zless (1)            - less(1) compressed text
zmore (1)            - more(1) compressed text

------------------------------------------------------------------------
1246 TEXT EDITORS
------------------------------------------------------------------------
ed (1)               - edit text line by line
elvis (1)            - edit text with this ex/vi clone
emacs (1)            - edit text with this extensible display editor
hexedit (1)          - view and edit files in hexadecimal or in ascii
nano (1)             - edit text with this small, friendly editor
sensible-editor (1)  - run a sensible text editor
vi (1)               - edit text with this classic text editor
vim (1)              - edit text with this Vi IMproved

------------------------------------------------------------------------
1251 LOGIN
------------------------------------------------------------------------
login (1)            - begin session on the system
news (1)             - display system news
vlock (1)            - lock the virtual terminal (VT)

------------------------------------------------------------------------
1252 CONSOLE
------------------------------------------------------------------------
charset (1)          - set an ACM for use as one of the G0/G1 charsets
chvt (1)             - change foreground virtual terminal
deallocvt (1)        - deallocate unused virtual terminals
dumpkeys (1)         - dump keyboard translation tables
fgconsole (1)        - print the number of the active VT
font2psf (1)         - convert 256-character font to psf font
kbd_mode (1)         - report or set the keyboard mode
loadkeys (1)         - load keyboard translation tables
openvt (1)           - start a program on a new virtual terminal (VT)
psfaddtable (1)      - add a unicode character table to a console font
psfgettable (1)      - extract the unicode char tabl from a console font
psfstriptable (1)    - remove the unicode char table from a console font
setleds (1)          - set the keyboard leds
setmetamode (1)      - define the keyboard meta key handling
showcfont (1)        - display all chars in the current screen-font
showkey (1)          - examine scancodes and keycodes the keyboard sends
unicode_start (1)    - put the console in unicode mode
unicode_stop (1)     - return the console to 8-bit mode
vt-is-UTF8 (1)       - check whether current VT is in UTF8- or byte-mode

------------------------------------------------------------------------
1253 TTY
------------------------------------------------------------------------
clear (1)            - clear the terminal screen
infocmp (1)          - compare or print out terminfo descriptions
reset (1)            - initialize the terminal
script (1)           - make typescript of terminal session
setterm (1)          - set terminal attributes
splitvt (1)          - run two shells in a split window
stty (1)             - change and print terminal line settings
tic (1)              - compile terminfo entry descriptions
tput (1)             - initialize a terminal or query terminfo database
tset (1)             - initialize the terminal
tty (1)              - print the name of the terminal connected to stdin

------------------------------------------------------------------------
1256 SCREEN-ORIENTED TEXT I/O
------------------------------------------------------------------------
dialog (1)           - display dialog boxes from shell scripts
pdmenu (1)           - display full-screen menus
whiptail (1)         - display dialog boxes from shell scripts

------------------------------------------------------------------------
1311 C
------------------------------------------------------------------------
cc (1)               - (see gcc(1))
cpp (1)              - preprocess C and C++
gcc (1)              - complile C and C++
ifnames (1)          - print identifiers used in C preprocessr conditnls
untrigraph (1)       - remove trigraphs from C source code

------------------------------------------------------------------------
1312 C++
------------------------------------------------------------------------
c++filt (1)          - demangle C++ symbols
g++ (1)              - compile C++

------------------------------------------------------------------------
1313 LIBRARIES AND LINKING
------------------------------------------------------------------------
ar (1)               - archive subroutines to create a library
ld (1)               - combine object files and tie up symbol references
ldd (1)              - print shared library dependencies
libtool (1)          - generate both static and shared libraries
lorder (1)           - list dependencies among object files
nm (1)               - list symbols from object files
objcopy (1)          - copy and translate object files
objdump (1)          - display information from object files
ranlib (1)           - generate index to archive

------------------------------------------------------------------------
1314 ASSEMBLY
------------------------------------------------------------------------
as (1)               - assemble assembly language into machine language
as86 (1)             - assemble 8086 through 80386
gasp (1)             - preprocess assembly language
ld86 (1)             - link as does ld(1), but for as86(1)
nasm (1)             - assemble 80x86 with the Netwide Assembler
ndisasm (1)          - disassemble 80x86 binary files (see nasm(1))
readelf (1)          - preprocess assembly language; display ELF info
size (1)             - list section sizes and total size

------------------------------------------------------------------------
1315 MAKE
------------------------------------------------------------------------
make (1)             - maintain groups of programs

------------------------------------------------------------------------
1316 LEXING AND PARSING
------------------------------------------------------------------------
bison (1)            - generate parsers (replaces yacc(1))
flex (1)             - generate fast lexical analyzers (replaces lex(1))
yyextract (1)        - extract grammar rules from a yacc grammar

------------------------------------------------------------------------
1318 DEBUGGING
------------------------------------------------------------------------
addr2line (1)        - convert addresses into file names and line numbrs
gcov (1)             - test coverage program for GNU CC
gdb (1)              - debug a program by looking inside while it runs
gprof (1)            - display call-graph profile data
ltrace (1)           - trace library calls
strace (1)           - trace system calls and signals

------------------------------------------------------------------------
1320 REVISION CONTROL
------------------------------------------------------------------------
ci (1)               - check in RCS revisions
co (1)               - check out RCS revisions
cvs (1)              - apply the Concurrent Versions System
ident (1)            - identify RCS keyword strings in files
pat (1)              - (patch generator tools)
rcs (1)              - change RCS file attributes
rcsdiff (1)          - compare RCS revisions
rcsintro (1)         - (introduction to RCS commands)
rcsmerge (1)         - merge RCS revisions
rlog (1)             - print log messages and other info about RCS files

------------------------------------------------------------------------
1330 AUTOCONF
------------------------------------------------------------------------
aclocal (1)          - automatly generate aclocal.m4 from configure.in
autoconf (1)         - create scripts to config src pkgs using templates
autoheader (1)       - create template file of C #defines for configure
automake (1)         - automatically create Makefile.in from Makefile.am
autoscan (1)         - help to create a configure.in file
m4 (1)               - apply this macro processor

------------------------------------------------------------------------
1350 INTERPRETERS
------------------------------------------------------------------------
perl (1)             - apply the Practical Extraction & Report Language
python (1)           - apply this interpreted, interactv, OO prog lang

------------------------------------------------------------------------
1420 USER ID (USER COMMANDS)
------------------------------------------------------------------------
chown (1)            - change file owner and group
id (1)               - print real and effective UIDs and GIDs
logname (1)          - print user's login name
newgrp (1)           - change group ID
sg (1)               - execute command as different group ID
su (1)               - change user ID or become superuser
super (1)            - execute commands setuid root
whoami (1)           - print effective userid

------------------------------------------------------------------------
1440 FILESYSTEMS AND DISKS (USER COMMANDS)
------------------------------------------------------------------------
cdrecord (1)         - record audio or data Compact Discs from a master
chattr (1)           - change extended file attributes
df (1)               - report filesystem disk space usage
du (1)               - estimate file space usage
lsattr (1)           - list extended file attributes
sync (1)             - flush filesystem buffers

------------------------------------------------------------------------
1450 THE KERNEL (USER COMMANDS)
------------------------------------------------------------------------
fakeroot (1)         - run a command in an environment faking root
free (1)             - display amount of free and used memory
linuxinfo (1)        - display information about system
logger (1)           - make entries in the system log
make-kpkg (1)        - build Debian kernel packages from kernel sources
memstat (1)          - identify what's using up virtual memory
syslog-summary (1)   - summarize the contents of a syslog log file
uname (1)            - print system information
uptime (1)           - tell how long the system has been running

------------------------------------------------------------------------
1460 USER ACCOUNTS (USER COMMANDS)
------------------------------------------------------------------------
ac (1)               - print statistics about users' connect time
chfn (1)             - change user name and information
chsh (1)             - change login shell
gpasswd (1)          - administer the /etc/group file
groups (1)           - print the groups a user is in
last (1)             - show listing of last logged in users
lastcomm (1)         - print info out about previously executed commands
makepasswd (1)       - generate and/or encrypt passwords
mkpasswd (1)         - encrypt the given password using the given salt
passwd (1)           - change user password
quota (1)            - display disk usage and limits
users (1)            - print the user names of users currently logged in
w (1)                - show who is logged on and what they are doing
who (1)              - show who is logged on

------------------------------------------------------------------------
1480 DEBIAN PACKAGING AND DEVELOPMENT (USER COMMANDS)
------------------------------------------------------------------------
debhelper (1)        - (overview of the debhelper commands)
debram (1)           - look .debs up in the Debian Ramification
dpkg-repack (1)      - put an unpacked .deb file back together
dpkg-source (1)      - (Debian source package tools)
grep-dctrl (1)       - grep(1) Debian control files
lintian (1)          - check Debian packages
update-menus (1)     - generate Debian menu system

------------------------------------------------------------------------
1490 OTHER GENERAL ADMINISTRATION (USER COMMANDS)
------------------------------------------------------------------------
getent (1)           - get entries from administrative database
mknod (1)            - make block or character special files
slrnpull (1)         - download news into slrn(1) news spool
updatedb (1)         - update a filename database

------------------------------------------------------------------------
1610 TCP/IP (USER COMMANDS)
------------------------------------------------------------------------
getpeername (1)      - get name of connected TCP/IP peer
mini-inetd (1)       - run this small TCP/IP connection dispatcher
nc (1)               - create, control and use network connections
openssl (1)          - use this cryptography toolkit
sslwrap (1)          - encrypt TCP services through TLS/SSL
tcpbug (1)           - apply this TCP/IP connection-bugging device
tcpconnect (1)       - run this general TCP/IP client
tcplisten (1)        - run this general TCP/IP server

------------------------------------------------------------------------
1622 DNS (USER COMMANDS)
------------------------------------------------------------------------
dig (1)              - send domain name query packets to name servers
dnsdomainname (1)    - show the system's DNS domain name
host (1)             - query nameserver about domain names and zones
hostname (1)         - show or set the system's host name
nslookup (1)         - query internet name servers interactively
whois (1)            - access the Whois internet directory service
zone (1)             - query nameserver about domain names and zones

------------------------------------------------------------------------
1626 MODEM CONTROL AND COMMUNICATIONS (USER COMMANDS)
------------------------------------------------------------------------
minicom (1)          - control the modem interactively
plog (1)             - list the log of the PPP connection
poff (1)             - start up the PPP connection
pon (1)              - shut down the PPP connection
wvdial (1)           - apply this PPP dialer with built-in intelligence

------------------------------------------------------------------------
1641 GENERAL NETWORK CLIENTS
------------------------------------------------------------------------
finger (1)           - look user information up
ircII (1)            - engage in Internet Relay Chat
lynx (1)             - browse the World Wide Web
mesg (1)             - control write access to your terminal
nwrite (1)           - write(1), enhanced
slrn (1)             - read Usenet news
ssh (1)              - run this secure shell client (remote login prog)
stunnel (1)          - universal SSL tunnel
talk (1)             - talk to another user
telnet (1)           - communicate interactively with another host
wall (1)             - write a message to users
write (1)            - send a message to another user

------------------------------------------------------------------------
1642 FTP
------------------------------------------------------------------------
curl (1)             - get a file from an FTP or other server
ftp (1)              - transfer files over the network
lftp (1)             - run this sophisticated FTP program
lftpget (1)          - get files fast via FTP from the command line
mirrordir (1)        - mirror dir trees with min changes, locally or FTP
ncftp (1)            - run this internet file transfer program
rsync (1)            - transfer just the diffs betw two sets of files
wget (1)             - retrieve files from the world wide web

------------------------------------------------------------------------
1650 MAIL
------------------------------------------------------------------------
fetchmail (1)        - fetch mail from POP, IMAP, or ETRN-capable server
formail (1)          - format or reformat mail
from (1)             - print names of those who have sent mail
mpack (1)            - pack a file in MIME format
munpack (1)          - unpack messages in MIME or split-uuencode format
mutt (1)             - run this mail user agent
procmail (1)         - process mail autonomously
run-mailcap (1)      - execute programs via entries in the mailcap file
uudecode (1)         - decode a file created by uuencode(1)
uuencode (1)         - encode a binary file
vacation (1)         - return "I am not here" indication

------------------------------------------------------------------------
1711 PRINT DISPATCH AND BASIC PRINTING
------------------------------------------------------------------------
lpq (1)              - examine the line-printer spooling queue
lpr (1)              - print off-line
lprm (1)             - remove jobs from the line-printer spooling queue

------------------------------------------------------------------------
1712 POSTSCRIPT AND PDF
------------------------------------------------------------------------
a2ps (1)             - format files for printing on a PS printer
abc2ps (1)           - typeset an abc music score in PS
dvips (1)            - convert a TeX DVI file to PS
enscript (1)         - convert text files to PS
epstopdf (1)         - convert an EPS file to PDF
grops (1)            - filter groff to PS
gs (1)               - interpret/preview PS
lasergnu (1)         - send gnuplot(1) output to a printer
mpage (1)            - print multiple pages per sheet on PS printer
pcal (1)             - generate PS calendars
pdf2ps (1)           - translate PDF to PS
pdflatex (1)         - output PDF from LaTeX
pdftex (1)           - output PDF from TeX
pdiff (1)            - produce a pretty comparison between files
ps2ascii (1)         - translate PS or PDF to ascii
ps2pdf (1)           - translate PS to PDF
psbook (1)           - rearrange pages in PS file into signatures
psmerge (1)          - merge several PS files into one
psnup (1)            - put multiple pages per sheet
psresize (1)         - rescale & center a doc on differently sized paper
psselect (1)         - select pages from a PS file
pstops (1)           - shuffle pages in a PS file
pstotext (1)         - extract ascii text from a PS or PDF file

------------------------------------------------------------------------
1713 TEX
------------------------------------------------------------------------
amstex (1)           - format and typeset mathematical documents
bibtex (1)           - make a bibliography for (La)TeX
dvidvi (1)           - select and/or re-arrange pages in a TeX dvi file
dviselect (1)        - extract pages from DVI files
dvitype (1)          - translate a dvi file for humans
jadetex (1)          - process TeX files produced by jade(1)'s backend
latex (1)            - format and typeset structured text
makeindex (1)        - process document indices
makeinfo (1)         - translate Texinfo documents
mf (1)               - apply Metafont, a lang for font and logo design
mpost (1)            - apply MetaPost, a system for drawing pictures
omega (1)            - tex(1), extended for unicode
pic (1)              - compile pictures for troff or TeX
tex (1)              - format and typeset text
texconfig (1)        - configure teTeX
texi2dvi (1)         - print Texinfo documents

------------------------------------------------------------------------
1715 GROFF
------------------------------------------------------------------------
colcrt (1)           - filter nroff(1) output for CRT preview
eqn (1)              - format equations for troff(1)
groff (1)            - format documents through this general front end
nroff (1)            - format documents for typewriter-like devices
tbl (1)              - format tables for troff(1)
troff (1)            - format documents in the classic Unix way
troffcvt (1)         - convert troff(1) input into an intermediate form

------------------------------------------------------------------------
1716 SGML / XML
------------------------------------------------------------------------
debiandoc-sgml (1)   - (overview of the DebianDoc-SGML formatting tools)
jade (1)             - interpret DSSSL
nsgmls (1)           - parse and validate SGML
sgmlspl (1)          - apply this simple post-processor to nsgmls(1)
sgmltools (1)        - (SGML-tools translators to other markup langs)

------------------------------------------------------------------------
1721 GEOMETRY
------------------------------------------------------------------------
GMT (1)              - (the Generic Mapping Tools)
aspline (1)          - interpolate datasets using Akima splines
drawmap (1)          - draw customized maps, using raw USGS data files
gcb (1)              - calculate bearing and range to a location
geod (1)             - direct geodesic computations
proj (1)             - forward cartographic projection filter
spline (1)           - interpolate datasets using splines under tension

------------------------------------------------------------------------
1727 OTHER MATHEMATICS
------------------------------------------------------------------------
bc (1)               - apply this arbitrary-precision calculator lang
calc (1)             - use this C-style arbitrary-precision calculator
dc (1)               - use this RPN-style arbitrary precision calculator
felt (1)             - apply this cmd-line based Finite ELemenT engine
genesis (1)          - apply the GEneral NEural SImulation System
octave (1)           - apply this high-level interactive numerical lang
ode (1)              - solve ordinary differential equations numerically
units (1)            - convert dimensions from one unit to another

------------------------------------------------------------------------
1728 PLOTTING
------------------------------------------------------------------------
gnuplot (1)          - plot interactively
gri (1)              - apply this scientific graphics language
jgraph (1)           - plot graphs to PS
plotutils (1)        - (plotting utilities)
plplot (1)           - scientific plotting package ("info plplot")

------------------------------------------------------------------------
1730 CRYPTOGRAPHY
------------------------------------------------------------------------
gpg (1)              - encryption and signing tool
otp (1)              - generate one-time key pads or password lists
pwgen (1)            - generate pronounceable passwords

------------------------------------------------------------------------
1740 IMAGE FILTRATION AND HANDLING
------------------------------------------------------------------------
convert (1)          - convert between image formats
identify (1)         - describe an image's format and characteristics
pbmfilters (1)       - (list of all programs in the `netpbm' package)
zgv (1)              - view pictures via SVGA

------------------------------------------------------------------------
1810 X FOUNDATION
------------------------------------------------------------------------
XF86_SVGA (1x)       - (SVGA X Window System servers for Unix on x86)
XFree86 (1x)         - (X11R6 for Unix on x86 platforms)
Xserver (1x)         - (X Window System display server)
startx (1x)          - initialize an X session
xf86config (1x)      - generate an XF86Config file
xinit (1x)           - initialize the X Window System

------------------------------------------------------------------------
1821 GENERAL BASIC X
------------------------------------------------------------------------
xdpyinfo (1x)        - run this display-information utility for X
xkill (1x)           - kill a client by its X resource
xlsatoms (1x)        - list interned atoms defined on server
xlsclients (1x)      - list client applications running on a display
xprop (1x)           - display X properties
xrdb (1x)            - run this X server resource database utility
xrefresh (1x)        - refresh all or part of an X screen
xset (1x)            - run this X user-preference utility
xstdcmap (1x)        - run this X standard-colormap utility
xtoolwait (1x)       - start X client and wait for it to map a window
xtrlock (1x)         - lock X display until password supplied
xwininfo (1x)        - run this window-information utility for X

------------------------------------------------------------------------
1822 X TTY
------------------------------------------------------------------------
resize (1x)          - set TERMCAP & termnl to current xterm window size
rxvt (1x)            - xterm(1) lightly
xterm (1x)           - emulate a VT102 terminal on X
yudit (1x)           - edit unicode

------------------------------------------------------------------------
1823 X FONTS
------------------------------------------------------------------------
xfs (1x)             - run the X font server
xlsfonts (1x)        - display the X server's font list

------------------------------------------------------------------------
1824 X IMAGE HANDLING
------------------------------------------------------------------------
xli (1x)             - load images into an X11 window or root window
xloadimage (1x)      - load images into a window or onto the root window
xwd (1x)             - dump an image of an X window
xwdtopnm (1x)        - convert an X11 window dump into a portable anymap
xwud (1x)            - display images on X

------------------------------------------------------------------------
1830 X PROGRAMMING
------------------------------------------------------------------------
imake (1x)           - run this C-preprocessor interface to make(1)
lndir (1x)           - create a shadow dir of sym links to another tree
makedepend (1x)      - create dependencies in makefiles
mkdirhier (1x)       - make a directory hierarchy
xmkmf (1x)           - create a Makefile from an Imakefile

------------------------------------------------------------------------
1840 X APPLICATIONS
------------------------------------------------------------------------
gimp (1x)            - run this image-manipulation and paint program
gv (1x)              - preview PS and PDF output
gxditview (1x)       - display gtroff output files
oclock (1x)          - display this round X clock
xclock (1x)          - display this analog / digital X clock

------------------------------------------------------------------------
1900 AUDIO
------------------------------------------------------------------------
abc2midi (1)         - convert abc file to midi
mftext (1)           - dump a MIDI file as text
midi2abc (1)         - convert MIDI file to abc
play (1)             - play any sound file to audio device
playmidi (1)         - play midi files
sox (1)              - apply this universal sound-sample translator
timidity (1)         - convert midi to wav and play the wav

------------------------------------------------------------------------
4000 DEVICES
------------------------------------------------------------------------
console (4)          - console terminal and virtual consoles
console_codes (4)    - Linux console escape and control sequences
fd (4)               - floppy disk device
fifo (4)             - first-in first-out special file, named pipe
full (4)             - always-full device
hd (4)               - MFM/IDE hard disk devices
initrd (4)           - boot-loader initialized RAM disk
ipfw (4)             - IP firewall and accounting
ipfw_chains (4)      - IP firewall
lp (4)               - line printer devices
mem (4)              - system memory, kernel memory and system ports
mouse (4)            - serial mouse interface
null (4)             - data sink
ram (4)              - ram disk device
random (4)           - kernel random-number source devices
sd (4)               - driver for SCSI disk drives
tty (4)              - controlling terminal
ttys (4)             - serial terminal lines
urandom (4)          - weaker kernel random-number source device

------------------------------------------------------------------------
5100 GENERAL FILE FORMATS
------------------------------------------------------------------------
american-english (5) - a list of American English words
charmap (5)          - character symbols to define character encodings
english (5)          - a list of English words
info (5)             - readable online documentation
ispell (5)           - format of ispell(1) dictionaries and affix files
magic (5)            - file(1)'s magic number file
pdmenurc (5)         - menu definitions file for pdmenu(1)
texinfo (5)          - software documentation system

------------------------------------------------------------------------
5200 TTY- AND CONSOLE-RELATED FILE FORMATS
------------------------------------------------------------------------
fb.modes (5)         - framebuffer modes file
keymaps (5)          - keyboard table descriptions
securetty (5)        - file which lists ttys from which root can log in
term (5)             - format of compiled term file
terminfo (5)         - terminal capability database

------------------------------------------------------------------------
5300 PROGRAMMING FILE FORMATS
------------------------------------------------------------------------
cvs (5)              - Concurrent Versions System support files
locale (5)           - locale(7) definition file
rcsfile (5)          - format of RCS file

------------------------------------------------------------------------
5410 BOOT-CONTROL FILE FORMATS
------------------------------------------------------------------------
initscript (5)       - script that executes inittab commands
inittab (5)          - format of the init process' inittab file
issue (5)            - pre-login message and identification file
lilo.conf (5)        - configuration file for lilo(8)
login.defs (5)       - login configuration
motd (5)             - message of the day
rc.boot (5)          - directory for local or per-package boot scripts
rcS (5)              - defaults used at boot time

------------------------------------------------------------------------
5430 PROCESS-CONTROL FILE FORMATS
------------------------------------------------------------------------
anacrontab (5)       - configuration file for anacron(8)
crontab (5)          - tables for driving cron
proc (5)             - process information pseudo-filesystem

------------------------------------------------------------------------
5440 FILESYSTEM-CONTROL FILE FORMATS
------------------------------------------------------------------------
fstab (5)            - static information about the filesystems

------------------------------------------------------------------------
5450 KERNEL-INTERFACE FILE FORMATS
------------------------------------------------------------------------
acct (5)             - execution accounting file
modules (5)          - kernel modules to load at boot time
modules.conf (5)     - configuration file for loading kernel modules
sysctl.conf (5)      - sysctl(8) preload/configuration file

------------------------------------------------------------------------
5460 USER-ACCOUNT ADMINISTRATION FILE FORMATS
------------------------------------------------------------------------
at.allow (5)         - file determining who can submit at(1) jobs
at.deny (5)          - file determining who cannot submit at(1) jobs
group (5)            - user group file
nologin (5)          - file to prevent non-root users from logging in
passwd (5)           - the password file
shadow (5)           - encrypted password file
shells (5)           - pathnames of valid login shells
sudoers (5)          - list of which users may execute what
super.tab (5)        - database of restricted commands for super(1)
utmp (5)             - login records

------------------------------------------------------------------------
5480 DEBIAN FILE FORMATS
------------------------------------------------------------------------
apt.conf (5)         - configuration file for apt(8)
deb (5)              - Debian GNU/Linux binary package format
deb-control (5)      - Debian GNU/Linux pkgs' master control file format
kernel-package (5)   - (a system for creating kernel-related packages)
menufile (5)         - entry in the Debian menu system
sources.list (5)     - package resource list for apt(8)
syslog.conf (5)      - syslogd(8) configuration file

------------------------------------------------------------------------
5490 OTHER SYSTEM-CONFIGURATION FILE FORMATS
------------------------------------------------------------------------
manpath (5)          - format of the /etc/manpath.config file
tzfile (5)           - time zone information

------------------------------------------------------------------------
5620 GENERAL NETWORKING FILE FORMATS
------------------------------------------------------------------------
ethers (5)           - ethernet address to IP number database
gateways (5)         - file which lists gateways for routed(8)
host.conf (5)        - resolver configuration file
hosts (5)            - the static table lookup for host names
hosts_access (5)     - format of host access control files
hosts_options (5)    - host access control language extensions
inetd.conf (5)       - internet servers database
interfaces (5)       - network intrface config for ifup(8) and ifdown(8)
ipc (5)              - (System V interprocess communication mechanisms)
issue.net (5)        - identification file for telnet sessions
protocols (5)        - the protocols-definition file
resolver (5)         - resolver configuration file
rsyncd.conf (5)      - configuration file for rsync server
services (5)         - internet network services list
xferlog (5)          - FTP server logfile

------------------------------------------------------------------------
5650 MAIL FILE FORMATS
------------------------------------------------------------------------
mailcap.order (5)    - the mailcap MIME ordering specifications
muttrc (5)           - configuratn file for the mutt(1) mail user agent
procmailex (5)       - procmail(1) rcfile examples
procmailrc (5)       - procmail(1) rcfile
procmailsc (5)       - procmail(1) weighted scoring technique
uuencode (5)         - format of an encoded uuencode(1) file

------------------------------------------------------------------------
5710 PRINTSERVICE CONFIGURATION FILE FORMATS
------------------------------------------------------------------------
papersize (5)        - the preferred paper size
printcap (5)         - printer capability database

------------------------------------------------------------------------
5740 IMAGE FORMATS
------------------------------------------------------------------------
pbm (5)              - portable bitmap file format
pgm (5)              - portable graymap file format
png (5)              - Portable Network Graphics (PNG) format
pnm (5)              - portable anymap file format
ppm (5)              - portable pixmap file format

------------------------------------------------------------------------
5800 X-CONFIGURATION FILE FORMATS
------------------------------------------------------------------------
XF86Config (5x)      - configuration file for XFree86
Xsession.options     - configuration options for X sessions
xfs.options (5x)     - configuration options for X font server

------------------------------------------------------------------------
7100 SYSTEM CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
bootparam (7)        - intro to boot-time parameters of the Linux kernel
environ (7)          - user environment
signal (7)           - list of available signals
unix (7)             - sockets for local interprocess communication

------------------------------------------------------------------------
7200 CHARACTER-SET CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
ascii (7)            - the ascii character set in octal, decimal, & hex
charsets (7)         - programmer's view of character sets and i18n
iso_8859-1 (7)       - ISO 8859-1 character set in octal, decimal & hex
latin1 (7)           - (see iso_8859-1(7))
locale (7)           - description of multi-language support
unicode (7)          - the unified 16-bit super character set
utf-8 (7)            - an ASCII compatible multibyte unicode encoding

------------------------------------------------------------------------
7300 GROFF CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
groff_char (7)       - groff character names
groff_man (7)        - groff 'an' macros to generate man pages
groff_mdoc (7)       - quick reference guide for the -mdoc macro package
groff_me (7)         - troff macros for formatting papers
groff_mm (7)         - groff mm macros
groff_ms (7)         - groff ms macros
man (7)              - macros to format man pages

------------------------------------------------------------------------
7600 NETWORK CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
icmp (7)             - Linux IPv4 ICMP kernel module
ip (7)               - Linux IPv4 protocol implementation
mailaddr (7)         - mail addressing description
netdevice (7)        - low-level access to Linux network devices
packet (7)           - packet interface on device level
raw (7)              - Linux IPv4 raw sockets
socket (7)           - Linux socket interface
tcp (7)              - TCP protocol
udp (7)              - UDP protocol on top of IPv4
uri (7)              - uniform resource identifier (URI), incl URL/N

------------------------------------------------------------------------
7700 OTHER CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
dist (7)             - introduction to dist
glob (7)             - globbing pathnames
hier (7)             - description of the file system hierarchy
pcre (7)             - perl-compatible regular expressions
regex (7)            - POSIX 1003.2 regular expressions
suffixes (7)         - list of file suffixes
term (7)             - conventions for naming terminal types

------------------------------------------------------------------------
7800 X CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
X (7x)               - a portable, network-transparent window system

------------------------------------------------------------------------
8110 BOOTING AND OS INSTALLATION
------------------------------------------------------------------------
dmesg (8)            - print or control the kernel ring buffer
getty (8)            - open tty and invoke login(1)
halt (8)             - stop the system
init (8)             - initialize process control
lilo (8)             - install boot loader
poweroff (8)         - stop the system and power down
reboot (8)           - stop the system and reboot
runlevel (8)         - find the current and previous system runlevel
shutdown (8)         - bring the system down
sulogin (8)          - login(1) in single-user mode
telinit (8)          - signal init(8)
update-rc.d (8)      - install & remove System-V style init script links

------------------------------------------------------------------------
8120 USER ID
------------------------------------------------------------------------
sudo (8)             - execute a command as another user

------------------------------------------------------------------------
8130 PROCESS ADMINISTRATION
------------------------------------------------------------------------
accton (8)           - turn process accounting on or off
ipcrm (8)            - remove the specified IPC resources
ipcs (8)             - provide information on IPC facilities
killall5 (8)         - send a signal to all processes
lsof (8)             - list open files
pidof (8)            - find the process ID of a running program
sa (8)               - summarize accounting information
setsid (8)           - run a program in a new session
start-stop-daemon    - start and stop system daemon programs

------------------------------------------------------------------------
8140 FILESYSTEMS AND DISKS
------------------------------------------------------------------------
dump (8)             - back an ext2 filesystem up
e2fsck (8)           - check a Linux second extended file system
fdisk (8)            - manipulate a partition table interactively
mke2fs (8)           - create a Linux second extended file system
mkisofs (8)          - create a iso9660 filesystem
mklost+found (8)     - create a lost+found dir on a mounted filesystem
mkswap (8)           - set up a Linux swap area
mount (8)            - mount a file system
restore (8)          - restore files or file systems from dump backups
sfdisk (8)           - manipulate a partition table
swapon (8)           - enable/disable devs & files for paging & swapping
tmpreaper (8)        - remove files not accessed for a time
tune2fs (8)          - adjust tunable parameters on ext2 filesystems
umount (8)           - unmount a file system

------------------------------------------------------------------------
8151 KERNEL CONTROL AND MANAGEMENT OF CENTRAL HARDWARE
------------------------------------------------------------------------
MAKEDEV (8)          - create devices
chroot (8)           - run command or shell with special root directory
hwclock (8)          - query and set the hardware clock (RTC)
kbdrate (8)          - reset the keyboard repeat rate and delay time
ld.so (8)            - load and link shared libs dynamically at runtime
lsdev (8)            - display information about installed hardware
lspci (8)            - list all PCI devices
pnpdump (8)          - dump ISA (deprecated) plug-&-play dev resrc info
procinfo (8)         - display system status gathered from /proc
rdev (8)             - query/set rootflags, swapdev, ramsize or vidmode
setserial (8)        - get/set Linux serial-port information
sysctl (8)           - configure kernel parameters at runtime
syslogd-listfiles    - list system logfiles
vmstat (8)           - report virtual memory statistics

------------------------------------------------------------------------
8156 KERNEL-MODULE CONTROL
------------------------------------------------------------------------
depmod (8)           - handle loadable-kernel-module dependency descrips
insmod (8)           - install loadable kernel module
lsmod (8)            - list loaded modules
modconf (8)          - configure modules
modinfo (8)          - display information about a kernel module
modprobe (8)         - handle loadable modules in a high-level manner
rmmod (8)            - unload loadable modules

------------------------------------------------------------------------
8157 CONSOLE CONTROL
------------------------------------------------------------------------
consolechars (8)     - load console font
getkeycodes (8)      - print kernel scancode-to-keycode mapping table
setkeycodes (8)      - load kernel scancode-to-keycode mapping table

------------------------------------------------------------------------
8160 USER ACCOUNTS
------------------------------------------------------------------------
addgroup (8)         - add a group to the system
adduser (8)          - add a user to the system
edquota (8)          - edit user quotas
groupadd (8)         - create a new group (addgroup(8) is usu preferred)
groupdel (8)         - delete a group
groupmod (8)         - modify a group
lastlog (8)          - examine users' last logins
newaliases (8)       - update /etc/aliases database
quotacheck (8)       - scan a file system for disk usages
quotaoff (8)         - turn file system quotas on and off
quotaon (8)          - turn file system quotas on and off
repquota (8)         - summarize quotas for a file system
sac (8)              - perform system accounting
useradd (8)          - create a new user (adduser(8) is usu preferred)
userdel (8)          - delete a user account and related files
usermod (8)          - modify a user account

------------------------------------------------------------------------
8190 OTHER GENERAL ADMINISTRATION
------------------------------------------------------------------------
cleanup-info (8)     - clean up the mess left by a bogus install-info
install-info (8)     - create or update entry in Info directory
logrotate (8)        - rotate, compress and mail system logs
lpc (8)              - control the line printer
magicfilter (8)      - apply this automatic configurable printer filter
mandb (8)            - create or update the manual-page index caches
run-parts (8)        - run scripts or programs in a directory
savelog (8)          - save a log file
ttysnoop (8)         - snoop on a user's tty
update-alternatives  - maintain symlinks determining default commands
update-mime (8)      - create or update MIME information

------------------------------------------------------------------------
8200 DEBIAN PACKAGING AND DEVELOPMENT
------------------------------------------------------------------------
apt (8)              - (Advanced Package Tool)
apt-get (8)          - handle packages from the command line
cruft (8)            - check the filesys for missing & unexplained files
dpkg (8)             - manage Debian packages in a medium-level manner
dpkg-preconfigure    - let packages ask questions prior to installation
dpkg-reconfigure (8) - reconfigure an already installed package
dselect (8)          - run this console Debian package handling frontend
install-docs (8)     - manage online Debian documentation

------------------------------------------------------------------------
8500 GENERAL SERVICES
------------------------------------------------------------------------
anacron (8)          - run commands periodically
atd (8)              - run jobs queued for later execution
cron (8)             - daemon to execute scheduled commands
gpm (8)              - run this virtual-console paste util & mouse servr
klogd (8)            - kernel log daemon
lpd (8)              - line printer spooler daemon
sysklogd (8)         - Linux system logging utilities

------------------------------------------------------------------------
8620 NETWORK ADMINISTRATION
------------------------------------------------------------------------
arp (8)              - manipulate the system ARP cache
chat (8)             - engage the modem in an automated conversation
fping (8)            - send ICMP ECHO_REQUEST packets to network hosts
icmpinfo (8)         - interpret ICMP messages
ifconfig (8)         - configure a network interface
ifdown (8)           - take a network interface down
ifup (8)             - bring a network interface up
ipacset (8)          - set kernel ip accounting rules
ipchains (8)         - administer IP firewalls
ipchains-restore (8) - restore IP firewall chains from stdin
ipchains-save (8)    - save IP firewall chains to stdout
ipfwadm (8)          - administer and account for IP firewalls
netstat (8)          - display network status
ping (8)             - send ICMP ECHO_REQUEST packets to network hosts
route (8)            - show / manipulate the IP routing table
sniffit (8)          - monitor packets
tcpdump (8)          - dump traffic on a network
traceroute (8)       - print the route packets take to network host

------------------------------------------------------------------------
8640 NETWORK SERVICES
------------------------------------------------------------------------
apache (8)           - run this HTTP server
bind (8)             - (the Berkeley Internet Name Domain server)
exim (8)             - run this mail-transfer agent
ftpd (8)             - run the internet File Transfer Protocol server
identd (8)           - TCP/IP ident protocol server
in.fingerd (8)       - run this remote user-information server
in.talkd (8)         - run this remote user-communication server
in.telnetd (8)       - run the telnet-protocol server
inetd (8)            - run the internet super-server
ipopd (8)            - run the UW POP2 and POP3 servers
pppd (8)             - run the Point-to-Point Protocol daemon
rinetd (8)           - run the internet redirection server
routed (8)           - run the network routing daemon
sshd (8)             - run this secure shell daemon
tcpd (8)             - use this access-control facility for intrnet svcs

------------------------------------------------------------------------

HOW TO LEARN MORE ABOUT A SPECIFIC COMMAND

To learn more about a specific command, try

    man command
    info command  (GNU commands and some others)
    help command  (bash(1) builtins)
    command --help
    command -h
    command -?
    command -help
    locate command
    whereis command
    which command
    man -a command
    dpkg -S `which command`
    dpkg -L `dpkg -S \`which command\` | sed -e 's/:.*//'`
    ls -RC --co /usr/share/doc/command*
    ls -RC --co /usr/share/doc/HOWTO/en-txt

The ultimate way to learn all about any command, of course, is to read
its source code.  This is what GNU/Linux experts do when needed or
desired.  If you are not yet such an expert, yet would like someday to
become one, why, to learn the commands in this Guide should set you well
on your way.

HOW TO INSTALL A MISSING COMMAND

Most of the useful commands this Guide covers are found on most
GNU/Linux systems everywhere.  Nevertheless, you may occasionally find
that "man command" returns nothing and that the command is not installed
on your system.  If your system is a Debian system and you are logged in
as root,

    apt-get install package

installs the Debian package providing the desired command.  The file
/usr/share/doc/debram/cmdsel-debs.txt gives the needed Debian package
name for each of the Guide's commands.

HOW TO FIND OTHER COMMANDS

One may obtain at any time a more complete listing of available commands
by

    whatis -w '*'
    info
    help
    echo $PATH
    ls -RC --co /bin
    ls -RC --co /usr/bin
    ls -RC --co /usr/X11R6/bin
    ls -RC --co /sbin
    ls -RC --co /usr/sbin
    manpath
    ls -RC --co /usr/share/man/
    ls -RC --co /usr/X11R6/man/
    ls -RC --co /usr/share/info/

and so forth.  (If the output of any of the above commands scrolls off
the screen, capture it by appending a " | less -r" to the command.  For
example, "whatis -w '*' | less -r".  In `less', the <Up>, <Down>, <Page
Up> and <Page Down> keys work as expected.  To quit `less', press `q'.)

WORK STILL NEEDED

The nature of this Guide is such that its contents are nearly timeless:
it covers mostly only basic, classic GNU/Linux commands.  Nevertheless,
no general revision of the Guide has been undertaken since the days of
Debian 2.2.  Sooner or later such a revision will probably be wanted.

Some of the commands cataloged in this Guide do not yet have adequate
free documentation available.  A command's documentation may be
inadequate in any of six ways:

    1.  it may fail to cover some of the command's useful features;

    2.  it may cover all the features but lack an accessible
        introduction for beginners;

    3.  it may be written in a style which is too hard to read;

    4.  it may not be available in English;

    5.  it may not be free per the Debian Free Software
        Guidelines (DFSG); and/or

    6.  it may not exist.

Good free documentation is central to the institution and practice of
free software.  When you encounter a command whose documentation seems
inadequate, if you should by any means overcome the lack of adequate
documentation to master the command's application, then consider
improving the documentation or writing new documentation; and submitting
your work to the command's maintainer to be distributed with future
releases of the command's software.

DOCUMENT HISTORY

Having first installed Red Hat GNU/Linux 3.0.3 in 1996, the author found
himself daunted at the hundreds or even thousands of available GNU/Linux
commands.  He began to take summary notes on the commands he found most
interesting or used most often.  As the notes grew and, in 1998, as the
author migrated to Debian GNU/Linux 2.0, the author began categorizing
then subcategorizing the commands.  He added the four-digit
command-ramification system in 2002.

Having by 2002 received six years of iterative practice and refinement,
the document had, without ever quite intending to do so, grown into a
comprehensive, uniquely useful summary overview and classification of
the many hundreds of important available GNU/Linux commands.  Knowing of
no other such catalog in existence, the author released version 0.1
(covering GNU/Linux through Debian 2.2r6) to the public May 2002 under
the then-title Command Selection Howto.

The release of Debian 3.0 and its surging, muscular horde of eight
thousand software packages posed a growing administrative challenge to
Debian users everywhere: Debian had grown so vast that it threatened to
overrun its users in a chaotic sea of software.  You knew that the
package you wanted was in the horde somewhere, but how ever were you to
find it?  Seeing in this a larger problem related to the problem the
Command Selection Guide had already addressed, the author undertook to
bring order to the whole Debian horde by ramifying it, each package to
its proper branch.  The `debram' package and debram(1) resulted, and
Version 0.2 of the Guide found its new home there November 2003.  With
the move to `debram', the Guide's principal change from version 0.1 to
version 0.2 was to harmonize its own four-digit numbering system with
debram(1)'s.  It also dropped several obsolete commands, gained a very
few new ones, and added an example illustrating bash(1)'s `function'
builtin.

Although version 0.3 tracked Debian's 3.0r2 release December 2003, it
and version 0.4 the following month made little change to this document
or to the Ramification itself.  The two versions principally served to
update the debram(1) program and to improve the Debram's Debian
packaging.  Giacomo Catenazzi sponsored version 0.4 for the Debian
Project, making 0.4 the first to be uploaded to Debian's unstable
archive.  Version 0.3 was the last to be installable on a stable Debian
3.0 woody system; version 0.4 looked forward to Debian sarge.

ACKNOWLEDGMENTS

This Command Selection Guide's actual contents represent only a tiny
fraction of the total skill and effort which have made the document
useful.  The vast majority of the total effort and skill, in fact, are
found in the countless thousands of hours which many fine programmers,
some wholly unsung, have selflessly given in creating and documenting
the free programs which implement the hundreds of commands this Guide
covers.

Giacomo Catenazzi sponsored the author in introducing the `debram'
package to Debian and showed the author how to improve the package and
its contents in numerous ways.

ABOUT THE AUTHOR

Thaddeus H. Black holds Bachelor of Science and Master of Engineering
degrees in electrical engineering from the University of Idaho.  He also
holds an electrician journeyman's license in Virginia.  (Virginia and
Idaho are states of the USA.)  Having made his living in recent years as
a design and field engineer in the American construction industry,
Thaddeus is presently at Virginia Tech working on an electrical
engineering Ph.D..  He and his wife Kristie have two sons, Benjamin and
Isaiah.

COPYLEFT

Copyright (C) 2002-2004 Thaddeus H. Black.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU General Public License, Version 2.  Parallel
Permission is separately granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.1; with no Invariant Sections, no Front-Cover Texts and no
Back-Cover Texts.  You may choose either license; you need not adhere to
both.  You probably already have the licenses' complete texts on your
computer in such a directory as `/usr/share/common-licenses/';
otherwise, you may download the texts, if you want them, from any of
many sources on the Internet, including (at the time of this writing)
[ftp://ftp.gnu.org/gnu/Licenses/].

