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

COMMAND SELECTION GUIDE

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

Thaddeus H. Black <thb@debian.org>
Version 2.1.0, 4 January 2019

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
------------------------------------------------------------------------

Overview and Application
Scope
Construction and Use

THE COMMANDS

0100 BASH SHELL BUILTINS
0110 Bash Directory Specification
0120 Bash Parameter Handling and Variable Control
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 and Expression Evaluation
0190 Other Bash Shell Builtins

0200 BASH SHELL ELEMENTS AND OPERATORS
0210 Keypresses
0211   General Keys
0212   Basic Shell Keys
0213   Advanced Shell Keys
0214   Shell Word Keys
0215   Shell Expansion Keys
0216   Shell History Keys
0218   Console Keys
0220 Special Shell and Environment Variables
0221   Directory Variables
0222   Command-line Parameters
0223   Process Variables
0224   UID Variables
0229   Other Special Shell and Environment Variables
0230 Bash Variable Handling
0231   Bash Scalar Variable Handling
0232   Bash Array Handling
0240 Bash Jobspecs
0250 Bash Text Expansion
0251   Bash Quoting
0252   Advanced Bash Quoting
0253   Bash Character Escapes
0254   Bash Pattern Matching
0255   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 the test builtin)
0282   Bash String Tests (see the 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 and Naming
1116     File Copying
1120   Text Commands
1121     General Text Commands
1122     Text Scanning
1123     Text Filtering
1124     Text Formatting
1125     Text Sorting
1126     Text Comparison
1127     Misc Text Commands
1128     Internationalization, Localization and Unicode
1129     Byte Handling
1180   Date and Time
1181     General Date and Time
1185     Calendars
1190   Other General Commands
1194     Number and Sequence Commands
1197     Further General Commands
1200 Basic Tools
1210   Compression, Archival and Backup
1211     General Compression, Archival and Backup
1213     Gzip
1214     Bzip2
1216     Shar and Uuencode
1220   Tasking
1221     Execution Scheduling
1222     File Locking
1223     Kill and Nice
1224     Process Listing
1227     Other Tasking
1240   Pagers, Documentation Tools and Text Editors
1241     Man and Info
1242     Pagers
1243     Dictionaries and Other Natural-language Tools
1244     Vi
1246     Other Text Editors
1247     Other Documentation Tools
1250   Console and TTY
1251     Login
1252     Console
1253     Console Keyboard
1254     Console Characters
1255     TTY
1258     Screen-oriented Text I/O
1270   Other Basic Tools
1276     Gettext
1277     Further Basic Tools
1300 Programming
1310   Programming Foundation
1311     C
1312     C++
1313     Linking
1314     Assembly
1315     Make
1317     Library Handling
1318     Debugging
1319     Other Programming Foundation
1320   Lexing and Parsing
1350   Dbus
1360   Interpreters
1380   Revision Control
1390   Autotools
1400 General Administration (User Commands)
1420   User ID (User Commands)
1440   Filesystems and Disks (User Commands)
1450   The Kernel (User Commands)
1451     The Kernel and Central Hardware (User Commands)
1455     System Resources (User Commands)
1460   User Accounts (User Commands)
1461     Own User Account (User Commands)
1465     Other User Accounts (User Commands)
1470   Debian Packaging and Development (User Commands)
1471     Debtags (User Commands)
1472     Other Deb Scanning and Finding (User Commands)
1473     Dpkg (User Commands)
1474     APT (User Commands)
1475     Debian Package Development (User Commands)
1476     Official Debian CD Building (User Commands)
1490   Other General Administration (User Commands)
1600 Networking (User Commands)
1610   TCP/IP (User Commands)
1611     General TCP/IP (User Commands)
1615     Sockets (User Commands)
1616     TCP/IP Monitoring and Diagnostics (User Commands)
1620   Other Network Foundation (User Commands)
1622     DNS (User Commands)
1624     LDAP (User Commands)
1627     Further Network Foundation (User Commands)
1640   Network Clients
1641     General Network Clients
1642     FTP
1644     Telnet, Rsh and Ssh
1645     Mail
1646     Messaging
1647     Web
1700 Other
1710   Printing
1711     Print Dispatch and Basic Printing
1714     PDF
1718     Fonts
1720   Markup
1725     TeX
1726     XML/SGML
1727     Groff and Other Markup
1740   Image Filtration and Handling
1750   Mathematics, Physical Science and Cryptography
1751     Mathematics and Physical Science
1759     Random Numbers and Cryptography
1770   Further User Commands
1800 X
1810   X Foundation
1820   Basic X
1821     General Basic X
1822     X TTY
1824     X Fonts and Image Handling
1830   X Programming
1900 Audio

4000 DEVICES
4100 General Devices
4200 Console and TTY Devices
4400 Disk and Storage Devices
4700 Other Devices
4800 X Video Devices

5000 FILE FORMATS
5100 General and Documentation File Formats
5110   General File Formats
5140   Documentation and Natural-language File Formats
5160   Groff File Formats
5200 TTY- and Console-related File Formats
5300 Programming File Formats
5400 Administrative File Formats
5410   Boot-control File Formats
5420   User-ID File Formats
5430   Process-control File Formats
5440   Filesystem-control File Formats
5450   Kernel-interface File Formats
5460   User-account Administration File Formats
5461     General User-account Administration File Formats
5462     User-account Creation and Limitation File Formats
5470   Debian File Formats
5490   Other System-configuration File Formats
5600 Networking File Formats
5610   General Networking File Formats
5620   DNS File Formats
5640   Configuration of Network Clients and Servers
5650   Mail File Formats
5700 Other File Formats
5730   Printservice Configuration File Formats
5740   Image Formats
5770   Further File 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
7400 Debian Conventions and Miscellany
7600 Network Conventions and Miscellany
7610   Basic TCP/IP Conventions and Miscellany
7670   Further Network Conventions and Miscellany
7700 Other Conventions and Miscellany
7710   General Conventions and Miscellany
7770   Further Conventions and Miscellany
7800 X Conventions and Miscellany

8000 ADMINISTRATIVE AND PRIVILEGED COMMANDS
8100 General Administration
8110   Booting and OS Installation
8111     Init
8112     OS Installation
8117     Other Booting
8120   User ID
8130   Process Administration
8140   Filesystems and Disks
8141     Filesystem Mounting and General Control
8142     Filesystem Creation and Maintenance
8143     CD-ROMs
8148     Hard-disk Partitioning and Device Control
8150   The Kernel
8151     Kernel Control and Management of Central Hardware
8152     Kernel-module Control
8156     Kernel Tuning
8158     Expansion Busses and IRQs
8160   User Accounts
8161     General User-account Administration
8162     Creation and Limitation of User Accounts
8180   Console Control
8190   Other General Administration
8191     The Linker and Chroot
8193     Administrative Logging
8194     Man Administration
8196     Printer Administration
8197     Further General Administration
8198     Time-zone Administration
8200 Debian Installation, Packaging and Development
8210   Deb Installation
8211     Dpkg
8212     APT
8217     Other Deb Installation
8250   Debian Packaging and Development
8500 General Services
8600 Network Administration and Services
8610   Network Administration
8611     Network Interface Control
8612     Routing and Firewalling
8614     ICMP, Ping and Traceroute
8616     TCP/IP Monitoring and Diagnostics
8620   Other Network Administration
8640   Network Services

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

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

OVERVIEW AND APPLICATION

In English, commands consist of imperatives like "Wash the
dishes!", "Come here!" and "Stop!"  A computer running GNU/Linux does
not understand such natural-language verbs as "wash", "come" and "stop",
of course; but it does recognize its own powerful vocabulary of verbs,
verbs like ls(1), cp(1) and rm(1).  To run GNU/Linux effectively you
must know the verbs.

The Command Selection Guide identifies and ramifies several hundred of
the most important GNU/Linux commands, the basic verbs of GNU/Linux.
The user who wants to speak the language fluently will learn many or
most of the commands listed here.  This Guide imparts the essential
imperative vocabulary of GNU/Linux.

The author has written the Guide with reference to Debian GNU/Linux.
(Debian plays such a foundational role in the open-source software world
that for general vendor neutrality there seems no other obvious choice.)
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---and the basic commands don't change much
over time.  The Guide thus has general application.

The Guide covers few recent commands, but mostly proven commands which
have been in broad use since 2004 and earlier.  It has received minimal
attention since 2006.

SCOPE

The number of specialized, obscure or unproven commands found on (or
installable onto) a typical GNU/Linux system is bewilderingly large.
This Guide purposely limits its focus to well established commands of
general interest.  The author has applied his own experience and best
subjective judgment in the matter.

Conspicuously missing from the Guide are hundreds of possible additional
entries for X, graphics, sound and network service.  The Guide, quite
lengthy enough, does seek to obtain some useful degree of brevity; thus
the exclusions.  It has however 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.  A
beginning or intermediate user who wishes to grow into a GNU/Linux
expert would be well served to learn thoroughly first the text-driven
core of the system treated here.

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

CONSTRUCTION AND USE

Grouping related commands together for common reference as a university
library groups related books, this Guide ramifies GNU/Linux commands as
the now obsolete debram(1) once ramified Debian packages, numbering the
branches in a parallel way.  By such construction the Guide ameliorates
several problems for the user, including the problem of the one-way
manpage "See Also": where tree(1) refers to ls(1), for instance, while
ls(1) fails to refer to the newer tree(1).

Besides the commands proper (as in man sections 1 and 8), the Guide also
includes the devices (4), configuration files (5), and conventions and
miscellany (7) that have manpages and seem most significant and common.
It excludes system calls (2), library functions (3), and games (6).

The command descriptions, limited here to 49 characters, are very brief.
To learn more than the one-line summary the Guide gives each command,
you can type "man n command" (where n is the man section number 1, 4, 5,
7 or 8) or see the section "How To Learn More about a Specific Command"
at the end of the Guide.

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

THE COMMANDS

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

------------------------------------------------------------------------
0120 BASH PARAMETER HANDLING AND VARIABLE CONTROL
------------------------------------------------------------------------
shift      [builtin] - shift $2 to $1, $3 to $2, etc, discarding $1
getopts    [builtin] - parse positional parameters
declare    [builtin] - declare a variable and/or give it an attribute
readonly   [builtin] - protect a variable from subsequent assignment
local      [builtin] - create a variable local to a function

------------------------------------------------------------------------
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
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
wait       [builtin] - wait for the given proc; report its exit status
disown     [builtin] - remove a job from the table of active jobs
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

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

------------------------------------------------------------------------
0160 BASH SHELL CONTROL
------------------------------------------------------------------------
set        [builtin] - set shell flags
set -e     [builtin] - exit on an error; `set +e' countermands
logout     [builtin] - log out of a login shell (shortcut: ^D)
exit       [builtin] - exit the shell
exec       [builtin] - replace this shell with the specified program
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
------------------------------------------------------------------------
if         [builtin] - execute if exit status is zero
case       [builtin] - selectively execute commands
for        [builtin] - execute commands for each member in a list
while      [builtin] - execute while zero exit status
until      [builtin] - execute until zero exit status
continue   [builtin] - resume the next iteration of the enclosing loop
break      [builtin] - exit from within a for, while or until loop
function   [builtin] - create a simple command
return     [builtin] - exit a function with the return value specified

------------------------------------------------------------------------
0180 BASH CONDITION TESTING AND EXPRESSION EVALUATION
------------------------------------------------------------------------
[]         [builtin] - check file types & compare vals (same as `test')
[[]]       [builtin] - chain several `[]' tests, using C-style syntax
(())       [builtin] - evaluate arithmetically (same as `let')
test       [builtin] - check file types and compare values
let        [builtin] - evaluate arithmetically
true       [builtin] - return a successful result
false      [builtin] - return an unsuccessful result

------------------------------------------------------------------------
0190 OTHER BASH SHELL BUILTINS
------------------------------------------------------------------------
:          [builtin] - do nothing; this builtin has no effect
.          [builtin] - read and exec in current env (same as `source')
source     [builtin] - read and execute commands in the current environ
echo       [builtin] - display a line of text
printf     [builtin] - format and print (see also printf(3))
read       [builtin] - pause until the user presses enter
help       [builtin] - display helpful info about builtin commands

------------------------------------------------------------------------
0211 GENERAL KEYS
------------------------------------------------------------------------
^J or <Enter>        - '\n' newline: end and accept line (^J is Ctrl-J)
^M                   - '\r' carriage return (usually deprecated; see ^J)
^H or <Backspace>    - '\b' delete the character before the cursor
^D                   - end input or log out
^C                   - interrupt
^\                   - quit (but try ^C first)
^Z                   - suspend
<CapsLock>           - toggle: type letters capital by default
<ScrollLock>         - toggle: pause and unpause terminal I/O

------------------------------------------------------------------------
0212 BASIC SHELL KEYS
------------------------------------------------------------------------
^L                   - '\f' clear or redraw the screen
^D or <Delete>       - delete the character under the cursor
^B <Left>, ^F <Rt>   - move left (backwd) or right (forwd) a character
^A <Home>, ^E <End>  - move to the start or end of the line
^U or ^X<Backspace>  - kill text backward to the start of the line
^Y                   - yank text killed by ^U or ^W (but not ^X<BkSp>)
^K                   - kill text forward to the end of the line
^V                   - accept verbatim the next character typed
^V<Tab>              - type a real '\t' tab

------------------------------------------------------------------------
0213 ADVANCED SHELL KEYS
------------------------------------------------------------------------
^G                   - '\a' ring the bell
^T                   - transpose characters
^S, ^Q               - turn <ScrollLock> on and off
^@ or <Esc><Space>   - mark the cursor point
^X^X                 - go to the mark (swap the point and the mark)
^_                   - undo
<Esc>r               - revert: undo all
^]c, <Esc>^]c        - search forward or backward for the character c
<Esc>^Y              - yank the previous command's first argument
<Esc>n<Esc>^Y        - yank the previous command's nth argument
<Esc>. or <Esc>_     - yank the previous command's last argument
^X(, ^X)             - start and end the definition of a keyboard macro
^Xe                  - execute the keyboard macro

------------------------------------------------------------------------
0214 SHELL WORD KEYS
------------------------------------------------------------------------
<Esc>B, <Esc>F       - move backward or forward a word
^W or <Esc><Bksp>    - delete the word before the cursor
<Esc>D               - delete the word after the cursor
<Esc>\               - delete all spaces and tabs around the cursor
<Esc>T               - transpose words

------------------------------------------------------------------------
0215 SHELL EXPANSION KEYS
------------------------------------------------------------------------
^I or <Tab>          - '\t' complete the word automatically
<Esc>*, <Esc>?       - insert or list all possible word completions
<Esc>/, ^X/          - complete the filename or list poss completions
<Esc>!, ^X!          - complete the command or list possible completions
<Esc>^E              - expand the entire command line immediately

------------------------------------------------------------------------
0216 SHELL HISTORY KEYS
------------------------------------------------------------------------
<Esc><Tab>           - complete the line according to the history
^P or <Up>           - fetch the previous command from the history
^N or <Down>         - fetch the next command from the history
^O                   - accept the line and fetch the next from history
<Esc><, <Esc>>       - move to the start or end of the history
^R                   - search the history

------------------------------------------------------------------------
0218 CONSOLE KEYS
------------------------------------------------------------------------
Alt-^<Delete>        - control-alt-delete: shut down (see inittab(5))
Sh-<PgUp>, Sh-<PgDn> - scroll backward or forward
LAlt-nnn             - (enter a char's decimal ascii code on the keypad)
RAlt-xx              - (same, but hex: 0123456789<NumLock>/*-+<Enter>)
LAlt-<Fn>            - go to virtual console n (1 <= n <= 6)
LAlt-<Left>, -<Rt>   - go the the previous or next virtual console
LAlt-<F7>            - go to X(7)
LAlt-^<Fn>           - return from X(7) to virtual console n
LAlt-^<Backspace>    - shut X(7) down

------------------------------------------------------------------------
0221 DIRECTORY VARIABLES
------------------------------------------------------------------------
$PWD         [shell] - the present working directory
$OLDPWD      [shell] - the previous working directory
$HOME        [shell] - the user's home directory
$PATH        [shell] - the search path for commands
${DIRSTACK[@]}       - the directory stack

------------------------------------------------------------------------
0222 COMMAND-LINE PARAMETERS
------------------------------------------------------------------------
$0           [shell] - the name by which the shell script was invoked
$1 $2 ...    [shell] - positional parameters given by parent to shell
$@           [shell] - $1 $2 ...
$#           [shell] - the number of positional parameters remaining
$OPTIND      [shell] - the position of the next potential cmd-line opt
$OPTARG      [shell] - the argument to a command-line option

------------------------------------------------------------------------
0223 PROCESS VARIABLES
------------------------------------------------------------------------
$?           [shell] - the last command's exit status
$!           [shell] - the last background command's process ID
$$           [shell] - the shell's process ID
$PPID        [shell] - the shell's parent's process ID
${PIPESTATUS[@]}     - the exit status of each of the cmds in a pipeline

------------------------------------------------------------------------
0224 UID VARIABLES
------------------------------------------------------------------------
$UID         [shell] - the user ID
$EUID        [shell] - the effective user ID
$USER        [shell] - the user's username
$HOSTNAME    [shell] - the computer's name

------------------------------------------------------------------------
0229 OTHER SPECIAL SHELL AND ENVIRONMENT VARIABLES
------------------------------------------------------------------------
$LC_ALL      [shell] - the locale (LC_ALL=C implies the default locale)
$PS1         [shell] - string controlling the cmd prompt's appearance
$PS2         [shell] - string controlling the secondary prompt
$SHLVL       [shell] - shell level, incremented each time bash is nested
$COLUMNS     [shell] - how many columns of the display to use
$LINES       [shell] - how many lines of the display to use
$RANDOM      [shell] - a random integer between 0 and 32768

------------------------------------------------------------------------
0231 BASH SCALAR VARIABLE HANDLING
------------------------------------------------------------------------
$var         [shell] - evaluate the variable
${var}       [shell] - evaluate the variable (careful syntax)
${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 text in the variable

------------------------------------------------------------------------
0232 BASH ARRAY HANDLING
------------------------------------------------------------------------
${var[n]}    [shell] - evaluate the nth element of the array (n >= 0)
${var[@]}    [shell] - evaluate the whole array
${#var[@]}   [shell] - return the number of elements in the array
${var[@]:n}  [shell] - return the array's last part, from the nth elem
${var[@]:n:m}[shell] - return m elements, starting with the nth
var[n]=text  [shell] - store the text in the nth element of the array
var=(t0 t1)  [shell] - set the whole array at once

------------------------------------------------------------------------
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
$'text'      [shell] - accept the enclosed text, honoring escapes
$( cmd )     [shell] - accept the text the enclosed command produces
` cmd `      [shell] - (same as $( cmd ))
\char        [shell] - accept the character literally

------------------------------------------------------------------------
0252 ADVANCED BASH QUOTING
------------------------------------------------------------------------
$(< file )   [shell] - accept text from the file
$(( expr ))  [shell] - accept the evaluation of the arithmetic expressn
<( cmd )     [shell] - send cmd's output to a named pipe; accpt the name
<<delim      [shell] - feed the next sevral lines, until delim, to stdin
<<-delim     [shell] - same as <<delim, but strip leading tabs
<<<text      [shell] - interpolate the text and feed it to stdin

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

------------------------------------------------------------------------
0254 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

------------------------------------------------------------------------
0255 BASH PATHNAME EXPANSION
------------------------------------------------------------------------
. ~+         [shell] - the present working directory (see also $PWD)
..           [shell] - the present working directory's parent
~-           [shell] - the previous working directory (see also $OLDPWD)
~-n, ~+n     [shell] - the stack's nth oldest or nth newest dir (n >= 0)
~            [shell] - the user's home directory (see also $HOME)
~user        [shell] - the named user's home directory

------------------------------------------------------------------------
0271 BASH FLOW-CONTROL OPERATORS
------------------------------------------------------------------------
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] - logically invert the command's exit status
{ 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
cmd1 & cmd2  [shell] - start cmd1 in the bkgnd, then immediatly run cmd2
cmd & disown [shell] - run the command independently, immune to logout

------------------------------------------------------------------------
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 THE TEST BUILTIN)
------------------------------------------------------------------------
-e file      [shell] - true if file exists
-f file      [shell] - true if file exists and is a regular file
-d file      [shell] - true if file exists and is a directory
-p file      [shell] - true if file exists and is a named pipe
-h file      [shell] - true if file is a symbolic link
-O file      [shell] - true if file exists and is yours
-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 -ot f2    [shell] - true if file 1 is older than file 2
f1 -nt f2    [shell] - true if file 1 is newer than file 2

------------------------------------------------------------------------
0282 BASH STRING TESTS (SEE THE 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 are the same
t1 != t2     [shell] - true if text1 and text2 differ

------------------------------------------------------------------------
0290 OTHER BASH SHELL ELEMENTS AND OPERATORS
------------------------------------------------------------------------
# comment    [shell] - let the shell ignore the comment
\            [shell] - continue this line on the next line
var=text cmd [shell] - run cmd with var=text in its local environment
LC_ALL=C cmd [shell] - run cmd in the default locale

------------------------------------------------------------------------
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'
flow-control 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.

(The examples mostly control the `echo' builtin, but this is just for
illustration.  You can give any command or series of commands you want
in place of the `echo'.)

--------------------
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/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 rux

prints

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

------------------------------------------------------------------------
1010 SHELL INVOCATION AND RELATED COMMANDS
------------------------------------------------------------------------
bash (1)             - run the Bourne-Again SHell
bash -e (1)          - bash(1), but exit on an error
rbash (1)            - bash(1), restricted
sh (1)               - bash(1), almost as a basic POSIX shell
dash (1)             - run the basic POSIX shell
tcsh, csh (1)        - run the Tenex C SHell
getopt (1)           - parse command options (enhanced)

------------------------------------------------------------------------
1020 UNBUILTINS
------------------------------------------------------------------------
/bin/true (1)        - do nothing, successfully
/bin/false (1)       - do nothing, unsuccessfully
/bin/echo (1)        - display a line of text (unbuiltin)
/bin/kill (1)        - signal a process
/bin/pwd (1)         - print the name of the working dir (unbuiltin)
/usr/bin/test (1)    - check file types and compare values (unbuiltin)
/usr/bin/printf (1)  - format and print data
/usr/bin/time (1)    - run programs and summarize resource usage (unblt)

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

------------------------------------------------------------------------
1112 FILE LISTING AND FINDING
------------------------------------------------------------------------
find (1)             - search for files in a directory hierarchy
ls (1)               - list directory contents
dir (1)              - briefly ls(1)
vdir (1)             - verbosely ls(1)
dircolors (1)        - set up colors for ls(1)
limo, li (1)         - LIst files with Many Options
tree (1)             - list directories in a tree-like format
which (1)            - locate a command
whereis (1)          - locate a command's binary, source and manpage
locate (1)           - locate a file by looking it up in the filename db

------------------------------------------------------------------------
1113 SYMBOLIC LINKING
------------------------------------------------------------------------
ln (1)               - make links between files
mln (1)              - link multiple files by wildcard pattern
link (1)             - call the link function to create a link to a file
readlink (1)         - display the target of a symbolic link
namei (1)            - follow a symlink trail to its terminal point
chase (1)            - chase symbolic links
symlinks (1)         - maintain symbolic links

------------------------------------------------------------------------
1114 DIRECTORIES
------------------------------------------------------------------------
mkdir (1)            - make directories
rmdir (1)            - remove empty directories
dirname (1)          - strip the non-directory suffix from a filename
basename (1)         - strip the directory and suffix from a filename
realpath (1)         - return the canonicalized absolute pathname
mirrordir (1)        - copy directory trees via a minimal set of changes
dirsplit (1)         - split a directory into multiple with equal size

------------------------------------------------------------------------
1115 FILE MOVING AND NAMING
------------------------------------------------------------------------
rm (1)               - remove files or directories
unlink (1)           - call the unlink function to remove a file
mv (1)               - move (rename) files
mmv (1)              - move multiple files by wildcard pattern
pathchk (1)          - check whether file names are valid or portable

------------------------------------------------------------------------
1116 FILE COPYING
------------------------------------------------------------------------
cp (1)               - copy files and directories
mcp (1)              - copy multiple files by wildcard pattern
mad (1)              - append multiple files by wildcard pattern
install (1)          - copy files and set attributes
dd (1)               - convert and copy a file
sdd (1)              - dd(1) with reblocking
cstream (1)          - dd(1) with traditional syntax and bandwdth limits
cpbk (1)             - mirror and back up your files

------------------------------------------------------------------------
1121 GENERAL TEXT COMMANDS
------------------------------------------------------------------------
cat (1)              - concatenate files and print on standard output
dog (1)              - cat(1), improved
head (1)             - output the first parts of files
tail (1)             - output the last parts of files
line (1)             - read one line
tac (1)              - concatenate and print files in reverse
rev (1)              - reverse each line of a file
tee (1)              - read from stdin, write to stdout and to files
multitee (1)         - send multiple inputs to multiple outputs
xtail (1)            - watch the growth of files
since (1)            - display the tail a file has gaind since last time
split (1)            - split a file into pieces
safecat (1)          - safely write data to a file

------------------------------------------------------------------------
1122 TEXT SCANNING
------------------------------------------------------------------------
wc (1)               - count the bytes, words and lines in files
wc -L (1)            - print the length of the longest line
grep (1)             - print lines matching a pattern
egrep (1)            - grep(1) using extended regexes
rgrep (1)            - grep(1), scanning directories recursively
pcregrep (1)         - grep(1) using perl(1)-compatible regexes
sgrep (1)            - search a file for a structured pattern
look (1)             - display lines beginning with a given string
pv (1)               - monitor the progress of data through a pipe

------------------------------------------------------------------------
1123 TEXT FILTERING
------------------------------------------------------------------------
sed (1)              - edit in stream
expand, unexpand (1) - convert tabs to spaces, or the reverse
tr (1)               - translate or delete characters
colrm (1)            - remove columns from a file
csplit (1)           - split a file into sections by context lines
cut (1)              - remove sections from each line of files
paste (1)            - merge lines of files
join (1)             - join lines of two files on a common field
mawk, awk (1)        - scan patterns and process text

------------------------------------------------------------------------
1124 TEXT FORMATTING
------------------------------------------------------------------------
nl (1)               - number a file's lines
pr (1)               - convert text files for printing
column (1)           - columnate lists
fold (1)             - wrap each input line to fit in a specified width
fmt (1)              - format text simply and optimally
par (1)              - reformat paragraphs
indent (1)           - reformat a C program to a desired style
banner (1)           - print a large banner

------------------------------------------------------------------------
1125 TEXT SORTING
------------------------------------------------------------------------
uniq (1)             - remove duplicate lines from a sorted file
sort (1)             - sort lines of text files
rl (1)               - randomize lines
tsort (1)            - sort topologically
ptx (1)              - produce a permuted index of file contents

------------------------------------------------------------------------
1126 TEXT COMPARISON
------------------------------------------------------------------------
comm (1)             - compare two sorted files line by line
cmp (1)              - compare two files byte by byte
diff (1)             - compare two files line by line
patch (1)            - apply a diff(1) file to an original
diff3 (1)            - compare three files line by line
merge (1)            - merge three files
lsdiff (1)           - show which files a patch modifies
splitdiff (1)        - separate out incremental patches
combinediff (1)      - combine two incremental patches
filterdiff (1)       - extract or exclude diffs from a diff file
interdiff (1)        - show the differences between two diff files
rediff (1)           - fix offsets and counts of a hand-edited diff
grepdiff (1)         - show files modified by a diff containing a regex
sdiff (1)            - diff(1), showing differences side-by-side
wdiff (1)            - display word differences between text files
quilt (1)            - manage series of patches

------------------------------------------------------------------------
1127 MISC TEXT COMMANDS
------------------------------------------------------------------------
i, iprint (1)        - display a string's ascii codes, or the reverse
flip (1)             - convert between "\n" and "\r\n" newlines

------------------------------------------------------------------------
1128 INTERNATIONALIZATION, LOCALIZATION AND UNICODE
------------------------------------------------------------------------
locale (1)           - get locale-specific information
localedef (1)        - compile locale definition files
iconv (1)            - convert from one character encoding to another
unaccent (1)         - remove accents from an input stream or a string
recode (1)           - convert files between various character sets

------------------------------------------------------------------------
1129 BYTE HANDLING
------------------------------------------------------------------------
od (1)               - dump files in octal and other formats
hexdump (1)          - dump as ascii, decimal, hexadecimal or octal
hexcat (1)           - dump hex
xxd (1)              - dump hex or do the reverse
md5sum (1)           - generate or check MD5 message digests
md5sum.textutils (1) - compute and check MD5 message digest
cksum (1)            - checksum and count the bytes in a file
sum (1)              - checksum and count the blocks in a file
sha1sum (1)          - compute and check SHA1 message digest
fdupes (1)           - find duplicate files in a given set of dirs

------------------------------------------------------------------------
1181 GENERAL DATE AND TIME
------------------------------------------------------------------------
date (1)             - print or set the system date and time
822-date (1)         - print the date and time in RFC822 format
sleep (1)            - delay for a specified amount of time
sleepenh (1)         - sleep(1), accurate in aggregate over several runs
zdump (1)            - print the current time in each named time zone
tzselect (1)         - view time zones
datefudge (1)        - pretend the system time is different

------------------------------------------------------------------------
1185 CALENDARS
------------------------------------------------------------------------
cal (1)              - display a calendar and the date of Easter
gcal (1)             - calculate and print calendars
ccal (1)             - display a colored calendar
pal (1)              - display a calendar with events
leave (1)            - remind you when you have to leave
calendar (1)         - remind you of the events you have scheduled today
remind (1)           - invoke this sophisticated reminder service
rem (1)              - remind(1) with a default reminder file

------------------------------------------------------------------------
1194 NUMBER AND SEQUENCE COMMANDS
------------------------------------------------------------------------
seq (1)              - print a sequence of numbers
jot (1)              - print sequential or random data
expr (1)             - evaluate expressions
factor (1)           - factor numbers

------------------------------------------------------------------------
1197 FURTHER GENERAL COMMANDS
------------------------------------------------------------------------
printenv (1)         - print all or part of the environment
env (1)              - run a program in a modified environment
xargs (1)            - build and execute command lines from stdin
yes (1)              - output a string repeatedly until killed
buffer (1)           - reblock fast
bfr (1)              - buffer a pipe 8-bit-clean, without blocking
spell (1)            - check spelling
ispell (1)           - check spelling interactively

------------------------------------------------------------------------
1211 GENERAL COMPRESSION, ARCHIVAL AND BACKUP
------------------------------------------------------------------------
tar (1)              - archive files in the .tar format
tardy (1)            - post-process tar(1)
cpio (1)             - copy files to and from archives
afio (1)             - manipulate archives and files
ras (1)              - archive redundantly
lzop (1)             - compress or expand files

------------------------------------------------------------------------
1213 GZIP
------------------------------------------------------------------------
gzip (1)             - compress files
gunzip (1)           - expand files
zcat (1)             - expand files to stdout
zcmp (1)             - compare compressed files with cmp(1)
zdiff (1)            - compare compressed files with diff(1)
zgrep (1)            - grep(1) possibly compressed files
zegrep (1)           - egrep(1) possibly compressed files
zpcregrep (1)        - zgrep(1) with Perl-compatible regular expressions
gzexe (1)            - compress executable files in place
makeself (1)         - generate self-extractable archives

------------------------------------------------------------------------
1214 BZIP2
------------------------------------------------------------------------
bzip2 (1)            - compress files in the block-sorting .bz2 format
bunzip2 (1)          - decompress .bz2 files
bzcat (1)            - decompress .bz2 files to stdout
bzcmp (1)            - compare bzip2-compressed files with cmp(1)
bzdiff (1)           - compare bzip2-compressed files with diff(1)
bzgrep (1)           - grep(1) possibly bzip2-compressed files
bzegrep (1)          - egrep(1) possibly bzip2-compressed files
bzip2recover (1)     - recover data from damaged bzip2 files
bzexe (1)            - bz2-compress executable files in place

------------------------------------------------------------------------
1216 SHAR AND UUENCODE
------------------------------------------------------------------------
shar (1)             - create shell archives
unshar (1)           - unpack a shar file
uuencode, uudecode   - encode or decode a binary file
uuenview, uudeview   - encode or decode binary files
makedist (1)         - make a distribution kit

------------------------------------------------------------------------
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)          - execute scheduled commands
timeout (1)          - run a command with bounded time
watch (1)            - execute a program periodically, output fullscreen

------------------------------------------------------------------------
1222 FILE LOCKING
------------------------------------------------------------------------
mktemp (1)           - make a unique temporary file name
lockfile (1)         - conditionally create a semaphore file
dotlockfile (1)      - safely create, test and remove lockfiles
lockfile-create (1)  - (lockfile-progs) lock a given file
lockfile-touch (1)   - (lockfile-progs) touch the lock on a given file
lockfile-remove (1)  - (lockfile-progs) remove the lock on a given file
uuidgen (1)          - create a new universally unique identifier (UUID)

------------------------------------------------------------------------
1223 KILL AND NICE
------------------------------------------------------------------------
pkill (1)            - signal processes based on name and other attribs
skill (1)            - signal a process identified in one of sevral ways
killall (1)          - kill processes by name
slay (1)             - kill all processes belonging to a user
nice (1)             - run a program with a modified scheduling priority
snice (1)            - reprioritize a process
renice (1)           - alter the priorities of running processes
taskset (1)          - retrieve or set a process' CPU affinity
chrt (1)             - manipulate a process' real-time attributes
loadwatch (1)        - run a program when the machine is idle

------------------------------------------------------------------------
1224 PROCESS LISTING
------------------------------------------------------------------------
ps (1)               - report a snapshot of the current processes
pgrep (1)            - look up processes based on name and other attribs
pstree (1)           - display a tree of processes
top (1)              - rank the top processes by CPU loading, in real tm
htop (1)             - view processes interactively

------------------------------------------------------------------------
1227 OTHER TASKING
------------------------------------------------------------------------
fuser (1)            - identify processes using files or sockets
nohup (1)            - run a command immune to hangups, to a non-tty
dtach (1)            - run a command immune to hangups
launchtool (1)       - run a command, supervising its execution
attachtty, detachtty - run an interactive program with I/O to a socket
daemon (1)           - turn other processes into daemons
pmap (1)             - report a process' memory map

------------------------------------------------------------------------
1241 MAN AND INFO
------------------------------------------------------------------------
man (1)              - display the on-line reference manuals
whatis (1)           - display manual-page descriptions
apropos (1)          - search the manual-page names and descriptions
manpath (1)          - determine the search path for manual pages
zsoelim (1)          - satisfy .so requests in roff input
lexgrog (1)          - parse header information in man pages
col (1)              - filter reverse line feeds from input
col -b (1)           - degroffify a man page to plain ascii
ul (1)               - do underlining
info (1)             - read Info documents (introduction)
info-stnd (1)        - read Info documents

------------------------------------------------------------------------
1242 PAGERS
------------------------------------------------------------------------
more (1)             - peruse files
zmore (1)            - more(1) compressed text
bzmore (1)           - more(1) bzip2-compressed text
pg (1)               - browse pagewise through text files
less (1)             - peruse files, allowing backward movement
zless (1)            - less(1) compressed text
bzless (1)           - less(1) bzip2-compressed text
most (1)             - browse or page through a text file
sensible-pager (1)   - run a sensible text pager

------------------------------------------------------------------------
1243 DICTIONARIES AND OTHER NATURAL-LANGUAGE TOOLS
------------------------------------------------------------------------
dict (1)             - look words up in dictionary databases
wnintro (1)          - (introduction to the WordNet commands)
wn (1)               - look words up in the WordNet lexical database
rhyme (1)            - display list of rhymes

------------------------------------------------------------------------
1244 VI
------------------------------------------------------------------------
vim, vi (1)          - edit text with this Vi IMproved
view (1)             - view text
ex (1)               - edit text line by line
rvim, rview (1)      - vim(1) or view(1), restricted
evim, eview (1)      - vim(1) or view(1), easy
vimdiff (1)          - vim(1) two or three versions of a file at once
vimtutor (1)         - run this vim(1) tutor
nvi (1)              - edit text with this classic Vi text editor
nview (1)            - view text (via nvi(1))
nex (1)              - edit text line by line (via nvi(1))
ed (1)               - edit text line by line, the old-fashioned way
red (1)              - ed(1), restricted

------------------------------------------------------------------------
1246 OTHER TEXT EDITORS
------------------------------------------------------------------------
emacs (1)            - edit text with this extensible display editor
nano (1)             - edit text with this small, friendly editor
sensible-editor (1)  - run a sensible text editor
hexedit (1)          - view and edit files in hexadecimal or in ascii

------------------------------------------------------------------------
1247 OTHER DOCUMENTATION TOOLS
------------------------------------------------------------------------
ascii (1)            - report character aliases
dhelp (1)            - access Debian online help
iso3166 (1)          - find ISO 3166 country codes
bible (1)            - look words and verses up in the King James Bible
randverse (1)        - display a randomly selected verse from scripture

------------------------------------------------------------------------
1251 LOGIN
------------------------------------------------------------------------
login (1)            - begin a session on the system
vlock (1)            - lock the virtual console
away (1)             - lock the terminal

------------------------------------------------------------------------
1252 CONSOLE
------------------------------------------------------------------------
fgconsole (1)        - print the number of the active virtual terminal
chvt (1)             - change to another virtual terminal
openvt (1)           - start a program on a new virtual terminal
deallocvt (1)        - deallocate unused virtual terminals
screendump (1)       - dump the contents of a virtual console to stdout
vcstime (1)          - show the time in the console's upper right corner

------------------------------------------------------------------------
1253 CONSOLE KEYBOARD
------------------------------------------------------------------------
dumpkeys (1)         - dump keyboard translation tables
loadkeys (1)         - load keyboard translation tables
kbd_mode (1)         - report or set the keyboard mode
setleds (1)          - set the keyboard leds
setmetamode (1)      - print or set the keyboard metakey handling
showkey (1)          - examine the scan- and keycodes the keyboard sends
fix_bs_and_del (1)   - fix a console's delete and backspace keys

------------------------------------------------------------------------
1254 CONSOLE CHARACTERS
------------------------------------------------------------------------
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
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
charset (1)          - set an ACM for use as one of the G0/G1 charsets
font2psf (1)         - convert a 256-character font to PSF format
showcfont (1)        - display all chars in the current screen font
splitfont (1)        - extract characters from an ISO-type font
codepage (1)         - extract a codepage from a .cpi file

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

------------------------------------------------------------------------
1258 SCREEN-ORIENTED TEXT I/O
------------------------------------------------------------------------
whiptail (1)         - display dialog boxes from shell scripts
dialog (1)           - display dialog boxes from shell scripts, enhanced

------------------------------------------------------------------------
1276 GETTEXT
------------------------------------------------------------------------
gettext (1)          - translate a message
ngettext (1)         - translate a message and choose plural form
envsubst (1)         - substitute environ vars in shell format strings
gencat (1)           - generate a message catalog
msgcat (1)           - combine several message catalogs
msgconv (1)          - convert character sets in a message catalog
msggrep (1)          - match patterns on a message catalog
msgfilter (1)        - edit translations of a message catalog
msguniq (1)          - unify duplicate translations in a message catalog
msgcomm (1)          - match two message catalogs
msgcmp (1)           - compare a message catalog and a template
msgattrib (1)        - match attribs in and manipulate a message catalog
msgen (1)            - create an English message catalog
msgexec (1)          - process translations of a message catalog
msginit (1)          - initialize a message catalog
msgmerge (1)         - merge a message catalog and a template
msgfmt, msgunfmt (1) - compile a msg catalog to (or from) binary format

------------------------------------------------------------------------
1277 FURTHER BASIC TOOLS
------------------------------------------------------------------------
chkdupexe (1)        - find duplicate executables

------------------------------------------------------------------------
1311 C
------------------------------------------------------------------------
gcc, cc (1)          - compile C
cpp (1)              - preprocess C and C++
cproto (1)           - generate C function prototypes
ifnames (1)          - extract cpp(1) conditionals from a set of files
unifdef (1)          - remove preprocessor conditionals from code
rmccmt (1)           - remove comments from C and C++ programs
liwc (1)             - (programs to manipulate C source code)
cstr (1)             - print out string literals in C source code

------------------------------------------------------------------------
1312 C++
------------------------------------------------------------------------
g++, c++ (1)         - compile C++
c++filt (1)          - demangle C++ symbols
ccmtcnvt (1)         - convert C++ comments to C comments

------------------------------------------------------------------------
1313 LINKING
------------------------------------------------------------------------
ld (1)               - combine object files and tie up symbol references
nm (1)               - list symbols from object files
strip (1)            - discard symbols from object files
size (1)             - list section sizes and total size
objcopy (1)          - copy and translate object files
objdump (1)          - display information from object files
readelf (1)          - display information about an ELF file
lorder (1)           - list dependencies among object files
chrpath (1)          - change the rpath or runpath in binaries
strings (1)          - list the strings of printable chars in a file
elfsh (1)            - play with executables, shared libs and reloc objs

------------------------------------------------------------------------
1314 ASSEMBLY
------------------------------------------------------------------------
as (1)               - assemble GNU assembly lang into machine language
nasm (1)             - assemble 80x86 with the Netwide Assembler
ndisasm (1)          - disassemble 80x86 binary files (see nasm(1))
ldrdf (1)            - link RDOFF objects and libraries from rdflib(1)
rdflib (1)           - manage a library file for use with ldrdf(1)
rdx (1)              - load and execute an RDOFF object
rdfdump (1)          - dump an RDOFF object in human-readable form
rdf2bin (1)          - convert an RDOFF object file to a flat binary
intel2gas (1)        - convert between NASM and GNU assembly languages

------------------------------------------------------------------------
1315 MAKE
------------------------------------------------------------------------
make (1)             - maintain groups of programs
fastdep (1)          - generate C/C++ dependencies fast
jam (1)              - make(1) redux

------------------------------------------------------------------------
1317 LIBRARY HANDLING
------------------------------------------------------------------------
ar (1)               - archive subroutines to create a library
ranlib (1)           - generate an index to an ar(1) archive
ldd (1)              - print shared library dependencies
dlltool (1)          - create files needed to build and use DLLs

------------------------------------------------------------------------
1318 DEBUGGING
------------------------------------------------------------------------
gdb (1)              - debug a program by looking inside while it runs
cgdb (1)             - use this curses frontend to gdb(1)
addr2line (1)        - convert addresses into file names and line numbrs
mtrace (1)           - interpret output from MALLOC_TRACE
catchsegv (1)        - catch segmentation faults in programs
gcov (1)             - analyze a program to improve its efficiency
gprof (1)            - display call-graph profile data
strace (1)           - trace system calls and signals
cflow (1)            - print a function call hierarchy

------------------------------------------------------------------------
1319 OTHER PROGRAMMING FOUNDATION
------------------------------------------------------------------------
compile_et (1)       - compile a com_err table of error codes and msgs

------------------------------------------------------------------------
1320 LEXING AND PARSING
------------------------------------------------------------------------
flex (1)             - generate fast lexical analyzers (replaces lex(1))
bison (1)            - generate parsers (replaces yacc(1))

------------------------------------------------------------------------
1350 DBUS
------------------------------------------------------------------------
dbus-daemon-1 (1)    - run the message bus daemon
dbus-launch (1)      - start a message bus from a shell script
dbus-send (1)        - send a message to a message bus
dbus-cleanup-sockets - clean up leftover sockets in a directory
dbus-monitor (1)     - print message-bus messages for debugging

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

------------------------------------------------------------------------
1380 REVISION CONTROL
------------------------------------------------------------------------
rcsintro (1)         - (introduction to RCS commands)
ci (1)               - check in RCS revisions
co (1)               - check out RCS revisions
rcs (1)              - change RCS file attributes
rcsdiff (1)          - compare RCS revisions
rcsmerge (1)         - merge RCS revisions
rcsclean (1)         - clean up working files
rcsfreeze (1)        - freeze a config of sources checked in under RCS
rlog (1)             - print log messages and other info about RCS files
ident (1)            - identify RCS keyword strings in files
pat (1)              - (patch generator tools)
svn (1)              - control revs with this advanced rev ctrl system

------------------------------------------------------------------------
1390 AUTOTOOLS
------------------------------------------------------------------------
autoconf (1)         - generate configuration scripts
automake (1)         - automatically create Makefile.in from Makefile.am
libtool (1)          - generate both static and shared libraries
m4 (1)               - apply this macro processor
pkg-config (1)       - return metainformation about installed libraries

------------------------------------------------------------------------
1420 USER ID (USER COMMANDS)
------------------------------------------------------------------------
id (1)               - print the real and effective UIDs and GIDs
logname (1)          - print the user's login name
whoami (1)           - print the effective userid
chown (1)            - change file owner and group
chgrp (1)            - change group ownership
newgrp (1)           - log in to a new group
su (1)               - change user ID or become superuser
sg (1)               - execute command under a different group ID

------------------------------------------------------------------------
1440 FILESYSTEMS AND DISKS (USER COMMANDS)
------------------------------------------------------------------------
df (1)               - report filesystem disk space usage
di (1)               - display usage information on mounted filesystems
du (1)               - estimate file space usage
sync (1)             - flush filesystem buffers
mountpoint (1)       - see if a directory is a mountpoint
volname (1)          - return volume name
lsattr (1)           - list extended file attributes
chattr (1)           - change extended file attributes
cdrecord (1)         - record audio or data Compact Discs from a master
readcd (1)           - read or write data Compact Discs
growisofs (1)        - access mkisofs(8) or record a DVD
eject (1)            - eject removable media

------------------------------------------------------------------------
1451 THE KERNEL AND CENTRAL HARDWARE (USER COMMANDS)
------------------------------------------------------------------------
fakeroot (1)         - run a command in an environment faking root
logger (1)           - make entries in the system log
uname (1)            - print system information
kernelversion (1)    - report the kernel's major version
arch (1)             - print machine architecture
linuxinfo (1)        - display information about system
uptime (1)           - tell how long the system has been running
getconf (1)          - query system configuration variables
readprofile (1)      - read kernel profiling information
slabtop (1)          - display kernel slab cache info in real time
make-kpkg (1)        - build Debian kernel packages from kernel sources
lscpu (1)            - display information about the CPU architecture

------------------------------------------------------------------------
1455 SYSTEM RESOURCES (USER COMMANDS)
------------------------------------------------------------------------
free (1)             - display the amounts of free and used memory
memstat (1)          - identify what's using up virtual memory
mpstat (1)           - report processor-related statistics
iostat (1)           - report CPU and I/O statistics
cpuid (1)            - find the CPUID of Intel and AMD x86 processors
lshw (1)             - list hardware
sar (1)              - collect, report, or save system activity info
slmon (1)            - monitor the system performance in real time
tload (1)            - represent the system load average graphically

------------------------------------------------------------------------
1461 OWN USER ACCOUNT (USER COMMANDS)
------------------------------------------------------------------------
passwd (1)           - change user password
chage (1)            - change user password expiry information
chfn (1)             - change real user name and information
chsh (1)             - change login shell
mkpasswd (1)         - encrypt the given password using the given salt
expiry (1)           - check and enforce password expiration policy
quota (1)            - display disk usage and limits
groups (1)           - print the groups a user is in

------------------------------------------------------------------------
1465 OTHER USER ACCOUNTS (USER COMMANDS)
------------------------------------------------------------------------
members (1)          - output members of a group
gpasswd (1)          - administer the /etc/group file
last, lastb (1)      - list recent user logins and attempts
ui (1)               - show information about local users
users (1)            - print the usernames of users currently logged in
who (1)              - show who is logged in
w (1)                - show who is logged in and what they are doing

------------------------------------------------------------------------
1471 DEBTAGS (USER COMMANDS)
------------------------------------------------------------------------
debtags (1)          - manage package tag data in a Debian system
debtags-edit (1)     - search and categorize Debian packages
taggrep (1)          - print the matching parts of a tag collection
tagcoll (1)          - perform various operations on tagged collections
tagcolledit (1)      - edit tagged collections, GUI

------------------------------------------------------------------------
1472 OTHER DEB SCANNING AND FINDING (USER COMMANDS)
------------------------------------------------------------------------
grep-dctrl (1)       - grep(1) Debian control files
dglob (1)            - expand package names or files matching a pattern
dgrep (1)            - grep(1) through an installed package's files
dlocate (1)          - view Debian package information
dpigs (1)            - show which installed packages take the most space
deborphan (1)        - find orphaned libraries

------------------------------------------------------------------------
1473 DPKG (USER COMMANDS)
------------------------------------------------------------------------
dpkg-deb (1)         - manipulate Debian package archives (.deb)
dpkg-source (1)      - (Debian source package tools)
dpkg-buildpackage    - build Debian binary packages
dpkg-name (1)        - rename Debian packages to full package names
dpkg-scanpackages    - create Packages files
dpkg-scansources (1) - search for '.dsc' files and build 'Sources' index

------------------------------------------------------------------------
1474 APT (USER COMMANDS)
------------------------------------------------------------------------
debget (1)           - fetch a .deb for a package in apt(8)'s database
debman (1)           - read man pages from uninstalled packages
apt-sortpkgs (1)     - sort package apt(8) index files
apt-ftparchive (1)   - generate apt(8) index files
apt-extracttemplates - extract debconf(7) config and templates
apt-file (1)         - search packages, command-line interface

------------------------------------------------------------------------
1475 DEBIAN PACKAGE DEVELOPMENT (USER COMMANDS)
------------------------------------------------------------------------
lintian (1)          - check Debian packages
dpatch (1)           - apply the patch maintenance system for Debian
ucf, lcf (1)         - Update Config File: preserve user changes
d-devlibdeps (1)     - check and list dependencies of devel library pkgs
d-shlibmove (1)      - move shared library files around
dpkg-architecture    - set and determine architecture for pkg building
dpkg-checkbuilddeps  - check build dependencies and conflicts

------------------------------------------------------------------------
1476 OFFICIAL DEBIAN CD BUILDING (USER COMMANDS)
------------------------------------------------------------------------
jigdo-lite (1)       - download packages and make official Debian CDs

------------------------------------------------------------------------
1490 OTHER GENERAL ADMINISTRATION (USER COMMANDS)
------------------------------------------------------------------------
getent (1)           - get entries from an administrative database
mknod (1)            - make block or character special files
updatedb (1)         - update a filename database
chrootuid (1)        - run a command in a restricted environment
fakechroot (1)       - give a fake chroot(8) environment
libhid-detach-device - take HID control away from the kernel HID driver

------------------------------------------------------------------------
1611 GENERAL TCP/IP (USER COMMANDS)
------------------------------------------------------------------------
nc (1)               - create, control and use network connections
getpeername (1)      - get the name of a connected TCP/IP peer
openssl (1)          - use this SSL/TLS cryptography toolkit
mini-inetd (1)       - run this small TCP/IP connection dispatcher
netpipe (1)          - measure a network's performance, protocol indep
netselect (1)        - choose the fastest server automatically
pktstat (1)          - display packet activity on the console

------------------------------------------------------------------------
1615 SOCKETS (USER COMMANDS)
------------------------------------------------------------------------
tcpconnect (1)       - run this general TCP/IP client
tcplisten (1)        - run this general TCP/IP server
unixclient (1)       - run this UNIX domain socket client
unixserver (1)       - run this UNIX domain socket server
unixcat (1)          - print data from a UNIX domain socket
netpipes (1)         - manipulate BSD TCP/IP stream sockets

------------------------------------------------------------------------
1616 TCP/IP MONITORING AND DIAGNOSTICS (USER COMMANDS)
------------------------------------------------------------------------
sendip (1)           - send arbitrary IP packets
tcpflow (1)          - record TCP flows
tcptrace (1)         - analyze TCP connections
tcpreen (1)          - monitor TCP streams
tcpbug (1)           - bug a TCP/IP connection

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

------------------------------------------------------------------------
1624 LDAP (USER COMMANDS)
------------------------------------------------------------------------
ldapadd (1)          - add LDAP entries
ldapmodify (1)       - modify LDAP entries
ldapdelete (1)       - delete LDAP entries
ldapmodrdn (1)       - rename LDAP entries
ldapcompare (1)      - compare LDAP entries
ldapsearch (1)       - search for LDAP entries
ldappasswd (1)       - change the password of an LDAP entry
ldapwhoami (1)       - ask LDAP, "who am I?"

------------------------------------------------------------------------
1627 FURTHER NETWORK FOUNDATION (USER COMMANDS)
------------------------------------------------------------------------
rpcgen (1)           - compile an RPC protocol

------------------------------------------------------------------------
1641 GENERAL NETWORK CLIENTS
------------------------------------------------------------------------
finger (1)           - look user information up
pinky (1)            - finger(1), lightweight

------------------------------------------------------------------------
1642 FTP
------------------------------------------------------------------------
curl (1)             - transfer a URL
rsync (1)            - transfer just the diffs betw two sets of files
ftp (1)              - transfer files over the network
lftp (1)             - transfer files over the network, sophisticated
ncftp (1)            - transfer files over the network, full screen
weex (1)             - fast WEb EXchanger non-interactive FTP client
wput (1)             - upload FTP as wget(1)
fmirror (1)          - mirror directories from FTP servers

------------------------------------------------------------------------
1644 TELNET, RSH AND SSH
------------------------------------------------------------------------
ssh (1)              - log in to a remote machine and run commands there
scp (1)              - securely copy files remotely
sftp (1)             - transfer files securely
ssh-keygen (1)       - generate, manage and convert authentication keys
ssh-agent (1)        - run the SSH authentication agent
ssh-add (1)          - add RSA or DSA idents to the authentication agent
ssh-argv0 (1)        - ssh(1) with the hostname as argv[0] argument
telnet (1)           - log in to a remote machine (unencrypted)

------------------------------------------------------------------------
1645 MAIL
------------------------------------------------------------------------
from (1)             - print the names of those who have sent mail
lsmbox (1)           - count total, old, unread and new msgs in a mailbx
mboxgrep (1)         - grep(1) mail messages
formail (1)          - format or reformat mail
mutt (1)             - read mail
mutt_dotlock (1)     - lock mail spool files
mail (1)             - send and receive mail
vrfy (1)             - verify electronic mail addresses
procmail (1)         - process mail autonomously
fetchmail (1)        - fetch mail from a POP, IMAP or other mailbox srvr
mpack, munpack (1)   - pack or unpack a message in MIME format
run-mailcap (1)      - execute programs via entries in the mailcap file

------------------------------------------------------------------------
1646 MESSAGING
------------------------------------------------------------------------
wall (1)             - write a message to users
write (1)            - send a message to another user
mesg (1)             - control write access to your terminal
talk (1)             - talk to another user
irc (1)              - engage in Internet Relay Chat
epic4 (1)            - engage in IRC with this improved client

------------------------------------------------------------------------
1647 WEB
------------------------------------------------------------------------
lynx (1)             - browse the World Wide Web in text mode
w3m (1)              - browse the World Wide Web in text mode with mouse
sensible-browser (1) - run a sensible web browser
httping (1)          - ping(8), but for http-requests
wget (1)             - retrieve files from the world wide web
httrack (1)          - copy websites to a local directory
html2text (1)        - convert HTML to text
tidy (1)             - clean up and pretty print HTML/XHTML/XML

------------------------------------------------------------------------
1711 PRINT DISPATCH AND BASIC PRINTING
------------------------------------------------------------------------
paperconf (1)        - print paper configuration information

------------------------------------------------------------------------
1714 PDF
------------------------------------------------------------------------
pdfinfo (1)          - extract document information from PDF
pdfimages (1)        - extract images from PDF
pdftk (1)            - manipulate PDF
pdftotext (1)        - convert PDF to text

------------------------------------------------------------------------
1718 FONTS
------------------------------------------------------------------------
defoma (1)           - (Debian Font Manager: auto font config framework)
pdffonts (1)         - analyze the fonts in a PDF file

------------------------------------------------------------------------
1725 TEX
------------------------------------------------------------------------
tex (1)              - format and typeset text
latex (1)            - format and typeset structured text
pslatex (1)          - latex(1) with PS fonts
rubber (1)           - apply this building system for LaTeX documents
rubber-info (1)      - extract information from LaTeX documents
untex (1)            - remove LaTeX commands from input
amstex (1)           - format and typeset mathematical documents
bibtex (1)           - make a bibliography for (La)TeX
makeindex (1)        - process document indices
mf (1)               - apply Metafont, a lang for font and logo design
mpost (1)            - apply MetaPost, a system for drawing pictures
lilypond (1)         - format and typeset music
dvips (1)            - convert a TeX DVI file to PS
dvired (1)           - dvips(1) reduced: two pages per sheet
dvipdf (1)           - convert TeX DVI file to PDF by gs(1) and dvips(1)
makeinfo (1)         - translate texinfo documents
texindex (1)         - sort texinfo index files
texi2dvi (1)         - print texinfo documents
texi2pdf (1)         - create a PDF file from a texinfo file

------------------------------------------------------------------------
1726 XML/SGML
------------------------------------------------------------------------
nsgmls, onsgmls (1)  - parse and validate SGML
jade, openjade (1)   - interpret DSSSL
spent, ospent (1)    - print SGML entity on stdout
spam, ospam (1)      - stream-edit SGML
sgmlnorm, osgmlnorm  - normalize SGML documents
sgml2xml, osx (1)    - convert SGML to XML
ospcat (1)           - print system identifiers found in the catalogs
xsltproc (1)         - process XSLT

------------------------------------------------------------------------
1727 GROFF AND OTHER MARKUP
------------------------------------------------------------------------
groff (1)            - format documents through this general front end
nroff (1)            - format documents for typewriter-like devices
troff (1)            - format documents in the classic Unix way
eqn (1)              - format equations for troff(1)
tbl (1)              - format tables for troff(1)
pic (1)              - compile pictures for troff(1) or TeX
colcrt (1)           - filter nroff(1) output for CRT preview
soelim (1)           - interpret .so requests in groff(1) input
mmroff (1)           - preprocess groff_mm(7) references
deroff (1)           - remove roff and preprocessor constructs

------------------------------------------------------------------------
1740 IMAGE FILTRATION AND HANDLING
------------------------------------------------------------------------
netpbm (1)           - (graphics manipulation programs)
pbmfilters (1)       - (list of all programs in the `netpbm' package)
libgd-tools (1)      - convert between gd and other graphics formats
convert (1)          - convert an image or sequence of images
identify (1)         - describe an image or image sequence

------------------------------------------------------------------------
1751 MATHEMATICS AND PHYSICAL SCIENCE
------------------------------------------------------------------------
dc (1)               - calculate RPN-style with arbitrary precision
bc (1)               - calculate programmably with arbitrary precision
sc (1)               - calculate by spreadsheet
octave (1)           - compute interactively or programmably, high level
gnuplot (1)          - plot interactively
units (1)            - convert dimensions from one unit to another

------------------------------------------------------------------------
1759 RANDOM NUMBERS AND CRYPTOGRAPHY
------------------------------------------------------------------------
gpg (1)              - encrypt and sign files
gpgv (1)             - signature verification tool
mcrypt, mdecrypt (1) - encrypt or decrypt files
pwgen (1)            - generate pronounceable passwords
apg (1)              - generates several random passwords
gpw (1)              - generate pronounceable passwords by trigraph
mcookie (1)          - generate a 128-bit random hexadecimal number
rolldice (1)         - roll virtual dice

------------------------------------------------------------------------
1770 FURTHER USER COMMANDS
------------------------------------------------------------------------
mev (1)              - report mouse events

------------------------------------------------------------------------
1810 X FOUNDATION
------------------------------------------------------------------------
Xserver (1x)         - (X Window System display server)
XFree86 (1x)         - (X11R6 X server)
xinit (1x)           - initialize the X Window System
startx (1x)          - initialize an X session

------------------------------------------------------------------------
1821 GENERAL BASIC X
------------------------------------------------------------------------
xrdb (1x)            - run this X server resource database utility
xset (1x)            - run this X user-preference utility
xsetroot (1x)        - set X root window parameters
xstdcmap (1x)        - run this X standard-colormap utility
xwininfo (1x)        - run this window-information utility for X
xlsclients (1x)      - list client applications running on a display
xdpyinfo (1x)        - display information about an X server
xlsatoms (1x)        - list interned atoms defined on an X server
xprop (1x)           - display X properties
xon (1x)             - start an X program on a remote machine
xkill (1x)           - kill a client by its X resource
xrefresh (1x)        - refresh all or part of an X screen
xtoolwait (1x)       - start X client and wait for it to map a window
xrandr (1x)          - set size, orientation and reflection of outputs

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

------------------------------------------------------------------------
1824 X FONTS AND IMAGE HANDLING
------------------------------------------------------------------------
xwd, xwud (1x)       - dump or display an image on X
xwdtopnm (1x)        - convert an X11 window dump into a portable anymap
xloadimage (1x)      - load images into an X11 window or the root window
xlsfonts (1x)        - display the X server's font list
mkfontdir (1x)       - create an index of X font files in a directory
glxinfo (1x)         - show information about the GLX implementation

------------------------------------------------------------------------
1830 X PROGRAMMING
------------------------------------------------------------------------
mkdirhier (1x)       - make a directory hierarchy
lndir (1x)           - create a shadow dir of sym links to another tree
cleanlinks (1x)      - remove dangling symlinks and empty directories
revpath (1x)         - generate a relative path to later undo a `cd'
makedepend (1x)      - create dependencies in makefiles
ccmakedep (1x)       - create dependencies in makefiles using C compiler
gccmakedep (1x)      - create dependencies in makefiles using 'gcc -M'
imake (1x)           - run this C-preprocessor interface to make(1)
xmkmf (1x)           - create a Makefile from an Imakefile
makestrs (1x)        - make string-table C source and headers
mergelib (1x)        - merge one library into another
makeg (1x)           - make a debuggable executable

------------------------------------------------------------------------
1900 AUDIO
------------------------------------------------------------------------
amixer (1)           - mix ALSA audio from the command line
aplay (1)            - record and play sounds via ALSA from the cmd line
speaker-test (1)     - generate a speaker test tone via ALSA

------------------------------------------------------------------------
4100 GENERAL DEVICES
------------------------------------------------------------------------
null, zero (4)       - data sink
full (4)             - always-full device
stdin (4)            - stdin by the device /dev/stdin
stdout, stderr (4)   - stdout and stderr by /dev/stdout and /dev/stderr
fifo (4)             - first-in first-out special file; named pipe
mem (4)              - system memory
kmem (4)             - kernel memory
port (4)             - system I/O ports
random, urandom (4)  - kernel random number source devices
futex (4)            - fast userspace mutexes for locking and semaphores
epoll (4)            - I/O event notification facility

------------------------------------------------------------------------
4200 CONSOLE AND TTY DEVICES
------------------------------------------------------------------------
console (4)          - console terminal and virtual consoles
console_codes (4)    - Linux console escape and control sequences
console_ioctl (4)    - ioctl's for console terminal and virtual consoles
vcs, vcsa (4)        - virtual console memory and attributes
tty (4)              - controlling terminal
ttyS (4)             - serial terminal lines
tty_ioctl (4)        - ioctls for terminals and serial lines
ptmx, pts (4)        - pseudo-terminal master and slave

------------------------------------------------------------------------
4400 DISK AND STORAGE DEVICES
------------------------------------------------------------------------
hd (4)               - MFM/IDE hard disk devices
sd (4)               - SCSI disk drives
ram (4)              - ram disk device
initrd (4)           - boot-loader initialized RAM disk

------------------------------------------------------------------------
4700 OTHER DEVICES
------------------------------------------------------------------------
ipfw (4)             - IP firewall
lp (4)               - line printer devices
mouse (4)            - serial mice

------------------------------------------------------------------------
4800 X VIDEO DEVICES
------------------------------------------------------------------------
vesa (4x)            - generic VESA video driver
vga (4x)             - generic VGA video driver
i810, radeon, ...    - video drivers
fbdev (4x)           - video driver for framebuffer device
fbdevhw (4x)         - OS-specific submodule for framebuffer access
kbd (4x)             - keyboard input driver, new-style
keyboard (4x)        - keyboard input driver, old-style
mouse (4x)           - mouse input driver
void (4x)            - null input driver

------------------------------------------------------------------------
5110 GENERAL FILE FORMATS
------------------------------------------------------------------------
charmap (5)          - character symbols to define character encodings
dir_colors (5)       - configuration file for dircolors(1)

------------------------------------------------------------------------
5140 DOCUMENTATION AND NATURAL-LANGUAGE FILE FORMATS
------------------------------------------------------------------------
info (5)             - info(1) documentation format
texinfo (5)          - software documentation system
ispell (5)           - format of ispell(1) dictionaries and affix files
english (5)          - flag format for English ispell dictionaries
american-english (5) - a list of American English words
british-english (5)  - a list of British English words
wnintro (5)          - WordNet file formats

------------------------------------------------------------------------
5160 GROFF FILE FORMATS
------------------------------------------------------------------------
groff_tmac (5)       - macro files in the roff typesetting system
groff_out (5)        - groff intermediate output format
groff_font (5)       - format of groff device and font description files

------------------------------------------------------------------------
5200 TTY- AND CONSOLE-RELATED FILE FORMATS
------------------------------------------------------------------------
terminfo (5)         - terminal capability database
term (5)             - compiled term file format
issue (5)            - pre-login message and identification
motd (5)             - message of the day
securetty (5)        - the ttys from which root can log in
keymaps (5)          - keyboard table descriptions

------------------------------------------------------------------------
5300 PROGRAMMING FILE FORMATS
------------------------------------------------------------------------
locale (5)           - locale(7) definition file format
locale.alias (5)     - locale name alias database
elf (5)              - format of ELF executable binary files
rcsfile (5)          - RCS file format
complex (5)          - basics of complex mathematics

------------------------------------------------------------------------
5410 BOOT-CONTROL FILE FORMATS
------------------------------------------------------------------------
rcS (5)              - defaults used at boot time
inittab (5)          - format of the init(8) process' inittab file
initscript (5)       - script that executes inittab(5) commands
lilo.conf (5)        - lilo(8) configuration

------------------------------------------------------------------------
5420 USER-ID FILE FORMATS
------------------------------------------------------------------------
sudoers (5)          - which users may execute what

------------------------------------------------------------------------
5430 PROCESS-CONTROL FILE FORMATS
------------------------------------------------------------------------
proc (5)             - process-information pseudo-filesystem
ipc (5)              - (System V interprocess communication mechanisms)
crontab (5)          - tables for driving cron(8) and crontab(1)
anacrontab (5)       - anacron(8) configuration
acct (5)             - execution accounting file format

------------------------------------------------------------------------
5440 FILESYSTEM-CONTROL FILE FORMATS
------------------------------------------------------------------------
fstab (5)            - static information about the filesystems
fs (5)               - linux filesystem types: ext2; ext3; proc; etc.

------------------------------------------------------------------------
5450 KERNEL-INTERFACE FILE FORMATS
------------------------------------------------------------------------
modules (5)          - kernel modules to load at boot time
modules.modutils (5) - kernel modules to load at boot time (modutils)
modules.conf (5)     - kernel-module loading configuration
modules.dep (5)      - module dependencies
modprobe.conf (5)    - modprobe(8) configuration
sysctl.conf (5)      - sysctl(8) preload/configuration
slabinfo (5)         - kernel slab allocator statistics

------------------------------------------------------------------------
5461 GENERAL USER-ACCOUNT ADMINISTRATION FILE FORMATS
------------------------------------------------------------------------
passwd (5)           - password file format
group (5)            - user group file format
shadow (5)           - encrypted password file format
nologin (5)          - file to prevent non-root users from logging in
login.access (5)     - login access control table
login.defs (5)       - shadow password suite configuration
utmp, wtmp (5)       - login records
faillog (5)          - login failure log

------------------------------------------------------------------------
5462 USER-ACCOUNT CREATION AND LIMITATION FILE FORMATS
------------------------------------------------------------------------
adduser.conf (5)     - adduser(8) and addgroup(8) configuration
deluser.conf (5)     - deluser(8) and delgroup(8) configuration
shells (5)           - pathnames of valid login shells
limits.conf (5)      - resource limits definition
porttime (5)         - port access time file format
at.allow, at.deny    - who can and cannot submit at(1) jobs

------------------------------------------------------------------------
5470 DEBIAN FILE FORMATS
------------------------------------------------------------------------
sources.list (5)     - apt(8) package resource list
vendors.list (5)     - apt(8) security key configuration
apt.conf (5)         - apt(8) configuration
apt_preferences (5)  - apt(8) preference control
deb (5)              - Debian binary package format
deb-control (5)      - Debian packages' master control file format
dpkg.cfg (5)         - dpkg(8) configuration
debconf.conf (5)     - debconf(7) configuration
kernel-package (5)   - (a system for creating kernel-related packages)
ucf.conf (5)         - site-wide ucf(8) configuration

------------------------------------------------------------------------
5490 OTHER SYSTEM-CONFIGURATION FILE FORMATS
------------------------------------------------------------------------
locale.gen (5)       - locale-gen(8) configuration
syslog.conf (5)      - syslogd(8) configuration
manpath (5)          - man and cat path configuration
locatedb (5)         - front-compressed filename database
tzfile (5)           - time zone information

------------------------------------------------------------------------
5610 GENERAL NETWORKING FILE FORMATS
------------------------------------------------------------------------
interfaces (5)       - ifup(8)/ifdown(8) network-interface configuration
protocols (5)        - the protocols definition file
services (5)         - internet network services list
inetd.conf (5)       - internet servers database
rpc (5)              - RPC program number data base
ethers (5)           - ethernet address to IP number database
networks (5)         - network name information

------------------------------------------------------------------------
5620 DNS FILE FORMATS
------------------------------------------------------------------------
resolv.conf (5)      - hostname resolver configuration
host.conf (5)        - more hostname resolver configuration
hosts (5)            - the static table lookup for host names
hosts_access (5)     - host-access control file format
hosts_options (5)    - host-access control language extensions
hosts.equiv (5)      - hosts/users granted trusted command access
nsswitch.conf (5)    - system databases and name-service switch config

------------------------------------------------------------------------
5640 CONFIGURATION OF NETWORK CLIENTS AND SERVERS
------------------------------------------------------------------------
ssh_config (5)       - OpenSSH SSH client configuration files
sshd_config (5)      - OpenSSH SSH daemon configuration file
moduli (5)           - system moduli file for sshd(8)
netrc (5)            - user configuration for ftp(1)
rsyncd.conf (5)      - rysnc server configuration
ldap.conf (5)        - LDAP configuration file
ldif (5)             - LDAP Data Interchange Format

------------------------------------------------------------------------
5650 MAIL FILE FORMATS
------------------------------------------------------------------------
mailname (5)         - the visible mail name of the system
mbox (5)             - format for mail message storage
mailcap (5)          - metamail capabilities
mailcap.order (5)    - the mailcap ordering specifications
muttrc (5)           - mutt(1) mail user agent configuration
procmailrc (5)       - procmail(1) configuration
procmailex (5)       - procmail(1) configuration examples
procmailsc (5)       - procmail(1) weighted scoring technique
uuencode (5)         - the format of an encoded uuencode(1) file

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

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

------------------------------------------------------------------------
5770 FURTHER FILE FORMATS
------------------------------------------------------------------------
gpm.conf (5)         - startup configuration file for gpm(8)
magic (5)            - file(1)'s magic number file format

------------------------------------------------------------------------
5800 X-CONFIGURATION FILE FORMATS
------------------------------------------------------------------------
XF86Config-4 (5x)    - X server configuration
Xsession (5x)        - script to initialize an X session
Xsession.options     - configuration options for X sessions
Xwrapper.config (5x) - the X server wrapper configuration
menufile (5x)        - Debian menu-system entry format

------------------------------------------------------------------------
7100 SYSTEM CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
environ (7)          - user environment
signal (7)           - list of available signals
unix (7)             - sockets for local interprocess communication
capabilities (7)     - overview of Linux capabilities
netlink (7)          - communication between kernel and user
boot (7)             - a general description of the boot sequence
bootparam (7)        - intro to boot-time parameters of the Linux kernel

------------------------------------------------------------------------
7200 CHARACTER-SET CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
locale (7)           - multi-language support
charsets (7)         - programmer's view of character sets and i18n
ascii (7)            - the ascii character set in octal, decimal, & hex
utf-8 (7)            - an ASCII compatible multibyte unicode(7) encoding
unicode (7)          - the Universal Character Set
iso-8859-1, latin1   - iso-8859-1 character set in octal, decimal & hex

------------------------------------------------------------------------
7300 GROFF CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
man (7)              - macros to format man pages
roff (7)             - concepts and history of roff typesetting
groff (7)            - a short reference for the GNU roff language
ditroff (7)          - classical device independent roff
mdoc (7)             - quick reference guide for the -mdoc macro package
groff_mdoc (7)       - reference for groff(1)'s mdoc implementation
groff_man (7)        - groff(1) man macros to generate man pages
groff_me (7)         - troff(1) me macros for formatting papers
groff_ms (7)         - groff(1) ms macros for structuring documents
groff_mm (7)         - groff(1) mm macros
groff_mom (7)        - groff(1) mom typesetting and doc processng macros
groff_char (7)       - groff(1) character names
groff_diff (7)       - differences between GNU and classical troff(1)

------------------------------------------------------------------------
7400 DEBIAN CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
debhelper (7)        - tools to automate common aspects of pkg building
debconf (7)          - Debian package configuration system
debconf-devel (7)    - debconf(7) developer's guide
po-debconf (7)       - manage translatd debconf(7) files with gettext(1)
dbs (7)              - Debian Build System
dpatch (7)           - dpatch(1) patch-maintenance overview

------------------------------------------------------------------------
7610 BASIC TCP/IP CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
ip (7)               - Linux IPv4 protocol implementation
ipv6 (7)             - Linux IPv6 protocol implementation
tcp (7)              - TCP protocol
udp (7)              - User Datagram Protocol for IPv4
icmp (7)             - Linux IPv4 ICMP kernel module
packet (7)           - packet interface on device level
socket (7)           - Linux socket interface
raw (7)              - Linux IPv4 raw sockets
netdevice (7)        - low-level access to Linux network devices

------------------------------------------------------------------------
7670 FURTHER NETWORK CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
rtnetlink (7)        - Linux IPv4 routing socket
arp (7)              - Linux Address Resolution Protocol implementation
uri, url, urn (7)    - uniform resource identifier URI, incl URL and URN
mailaddr (7)         - mail addressing description
pam (7)              - Pluggable Authentication Modules for Linux

------------------------------------------------------------------------
7710 GENERAL CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
LDP (7)              - Linux Doc Project: HOWTOs, help, guides and docs
bash-builtins (7)    - bash built-in commands, see bash(1)
hier (7)             - description of the file system hierarchy
suffixes (7)         - list of file suffixes
glob (7)             - globbing pathnames
regex (7)            - POSIX 1003.2 regular expressions
operator (7)         - C operator precedence and order of evaluation
units (7)            - decimal and binary prefixes

------------------------------------------------------------------------
7770 FURTHER CONVENTIONS AND MISCELLANY
------------------------------------------------------------------------
gnupg (7)            - the GNU Privacy Guard suite of programs
wnintro (7)          - introduction to miscellaneous WordNet information
gpm-types (7)        - the types of mouse gpm(8) can manage
posixoptions (7)     - optional parts of the POSIX standard
term (7)             - conventions for naming terminal types
gpl (7)              - GNU General Public License

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

------------------------------------------------------------------------
8111 INIT
------------------------------------------------------------------------
init (8)             - initialize process control
telinit (8)          - signal init(8)
runlevel (8)         - find the current and previous system runlevel
halt (8)             - stop the system
reboot (8)           - stop the system and reboot
poweroff (8)         - stop the system and power down
shutdown (8)         - bring the system down
sulogin (8)          - login(1) in single-user mode
invoke-rc.d (8)      - execute System-V style init script actions
update-rc.d (8)      - install/remove System-V style init script links

------------------------------------------------------------------------
8112 OS INSTALLATION
------------------------------------------------------------------------
base-config (8)      - configure the base Debian system
lilo (8)             - install a boot loader
grub (8)             - enter the GRand Unified Bootloader shell

------------------------------------------------------------------------
8117 OTHER BOOTING
------------------------------------------------------------------------
dmesg (8)            - print or control the kernel ring buffer
getty (8)            - open tty and invoke login(1)

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

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

------------------------------------------------------------------------
8141 FILESYSTEM MOUNTING AND GENERAL CONTROL
------------------------------------------------------------------------
mount, umount (8)    - mount or unmount a file system
pivot_root (8)       - change the root file system
losetup (8)          - set up and control loop devices

------------------------------------------------------------------------
8142 FILESYSTEM CREATION AND MAINTENANCE
------------------------------------------------------------------------
mke2fs (8)           - create an ext2/ext3 filesystem
dumpe2fs (8)         - dump ext2/ext3 filesystem information
tune2fs (8)          - adjust tunable parameters on ext2/ext3 filesystms
e2fsck (8)           - check a Linux ext2/ext3 file system
e2label (8)          - change the label on an ext2/ext3 filesystem
debugfs (8)          - ext2/ext3 file system debugger
filefrag (8)         - report on file fragmentation
mklost+found (8)     - create a lost+found dir on a mounted filesystem
mkswap (8)           - set up a Linux swap area
swapon, swapoff (8)  - enable/disable devs & files for paging & swapping

------------------------------------------------------------------------
8143 CD-ROMS
------------------------------------------------------------------------
mkisofs (8)          - create an iso9660 filesystem
isoinfo (8)          - dump or verify iso9660 images
mkzftree (8)         - create a zisofs/rockridge compressed file tree
lsscsi (8)           - list all SCSI devices (or hosts) on the system
sginfo (8)           - access mode-page information for a SCSI device
sg_scan (8)          - scan sg SCSI generic devices
sg_dd (8)            - copy data to and from files and SCSI devices

------------------------------------------------------------------------
8148 HARD-DISK PARTITIONING AND DEVICE CONTROL
------------------------------------------------------------------------
fdisk (8)            - manipulate a partition table interactively
cfdisk (8)           - manipulate a partition table by curses interface
sfdisk (8)           - manipulate a partition table noninteractively
blockdev (8)         - call block device ioctls from the command line
blkid (8)            - locate/print block device attributes
elvtune (8)          - tune the I/O elevator

------------------------------------------------------------------------
8151 KERNEL CONTROL AND MANAGEMENT OF CENTRAL HARDWARE
------------------------------------------------------------------------
MAKEDEV (8)          - create devices
vmstat (8)           - report virtual memory statistics
rdev (8)             - query/set rootflags, swapdev, ramsize or vidmode
sysctl (8)           - configure kernel parameters at runtime
hwclock (8)          - query and set the hardware clock (RTC)
rdate (8)            - set the system's date from a remote host
syslogd-listfiles    - list system logfiles
ksymoops (8)         - a utility to decode Linux kernel Oops
lcap (8)             - remove Linux kernel capabilities
installkernel (8)    - install a new kernel image

------------------------------------------------------------------------
8152 KERNEL-MODULE CONTROL
------------------------------------------------------------------------
lsmod (8)            - show Linux kernel module status
lsmod.modutils (8)   - list loaded kernel modules
insmod (8)           - insert a module into the Linux kernel
insmod.modutils (8)  - install a loadable kernel module
rmmod (8)            - remove a module from the Linux kernel
rmmod.modutils (8)   - unload loadable kernel modules
depmod (8)           - generate modules.dep(5) and map files
depmod.modutils (8)  - handle kernel-module dependency descriptions
modinfo (8)          - show information about a Linux kernel module
modinfo.modutils (8) - display information about a kernel module
modprobe (8)         - add and remove modules from the Linux kernel
modprobe.modutils    - handle loadable kernel modules, high level
modclean (8)         - automatically unload loadable modules
genksyms (8)         - generate kernel symbol version information
ksyms.modutils (8)   - display exported kernel symbols
kallsyms.modutils    - extract all kernel symbols for debugging

------------------------------------------------------------------------
8156 KERNEL TUNING
------------------------------------------------------------------------
knl (8)              - query/set kernel image configuration parameters
systune (8)          - tune the kernel through the /proc filesystem
adjtimex (8)         - display or set the kernel time variables

------------------------------------------------------------------------
8158 EXPANSION BUSSES AND IRQS
------------------------------------------------------------------------
lspci (8)            - list all PCI devices
setpci (8)           - configure PCI devices
pcimodules (8)       - list the modules avail to drive installd PCI devs
lsusb (8)            - list USB devices
hotplug (8)          - notify software when the user plugs a USB dev in
usbmodules (8)       - list the modules avail to drive installd USB devs

------------------------------------------------------------------------
8161 GENERAL USER-ACCOUNT ADMINISTRATION
------------------------------------------------------------------------
pwck, grpck (8)      - verify the integrity of password and group files
update-passwd (8)    - safely update /etc/passwd, shadow and group
pwconv (8)           - convert to and from shadow passwords and groups
shadowconfig (8)     - toggle shadow(5) passwords on and off
lastlog (8)          - examine users' last logins
faillog (8)          - examine login failures and set limits thereto

------------------------------------------------------------------------
8162 CREATION AND LIMITATION OF USER ACCOUNTS
------------------------------------------------------------------------
adduser, addgroup    - add a user or group to the system
deluser, delgroup    - remove a user or group from the system
useradd, groupadd    - (adduser(8) and addgroup(8) are usu preferred)
userdel, groupdel    - (deluser(8) and delgroup(8) are usu preferred)
usermod, groupmod    - modify a user account or group
chpasswd (8)         - update password file in batch
newusers (8)         - update and create new users in batch

------------------------------------------------------------------------
8180 CONSOLE CONTROL
------------------------------------------------------------------------
consolechars (8)     - load a console font
getkeycodes (8)      - print kernel scancode-to-keycode mapping table
setkeycodes (8)      - load kernel scancode-to-keycode mapping table
install-keymap (8)   - expand a keymap and install it for boot
kbdconfig (8)        - configure the console keyboard
kbdrate (8)          - reset the keyboard repeat rate and delay time
mk_modmap (8)        - translate a Linux keytable file to an xmodmap
setlogcons (8)       - send kernel messages to console N
setvesablank (8)     - turn VESA screen blanking on or off
writevt (8)          - put text into the input buffer of a virtual term

------------------------------------------------------------------------
8191 THE LINKER AND CHROOT
------------------------------------------------------------------------
ld.so (8)            - load and link shared libs dynamically at runtime
ldconfig (8)         - configure dynamic linker run-time bindings
prelink (8)          - prelink shared libs and binaries to start faster
chroot (8)           - run command or shell with special root directory
makejail (8)         - help to create and maintain a chroot(8) jail

------------------------------------------------------------------------
8193 ADMINISTRATIVE LOGGING
------------------------------------------------------------------------
logsave (8)          - save the output of a command in a logfile
savelog (8)          - save a log file
logrotate (8)        - rotate, compress and mail system logs

------------------------------------------------------------------------
8194 MAN ADMINISTRATION
------------------------------------------------------------------------
mandb (8)            - create or update the manual-page index caches
accessdb (8)         - dump a man-db database in a human readable format
catman (8)           - create or update the pre-formatted manual pages

------------------------------------------------------------------------
8196 PRINTER ADMINISTRATION
------------------------------------------------------------------------
paperconfig (8)      - configure the system default paper size
lpc (8)              - control the printer
tunelp (8)           - set various parameters for the lp device

------------------------------------------------------------------------
8197 FURTHER GENERAL ADMINISTRATION
------------------------------------------------------------------------
run-parts (8)        - run scripts or programs in a directory
update-alternatives  - maintain symlinks determining default commands
raw (8)              - bind a Linux raw character device
locale-gen (8)       - generate localisation files from templates
iconvconfig (8)      - create a fast-loading iconv(1) module config

------------------------------------------------------------------------
8198 TIME-ZONE ADMINISTRATION
------------------------------------------------------------------------
tzconfig (8)         - set the local time zone
tzsetup (8)          - set the local time zone (enhanced)
tzselect (8)         - select a time zone
zic (8)              - compile a time-zone conversion information file

------------------------------------------------------------------------
8211 DPKG
------------------------------------------------------------------------
dpkg (8)             - manage Debian packages in a medium-level manner
dpkg -L (8)          - list all the files the given package owns
dpkg -s (8)          - summarize an installed package
dpkg-reconfigure (8) - reconfigure an already installed package
dpkg-query (8)       - query the dpkg(8) database
dpkg-divert (8)      - override a package's version of a file
dpkg-statoverride    - override files' ownership and mode
dpkg-split (8)       - split or join Debian package archives

------------------------------------------------------------------------
8212 APT
------------------------------------------------------------------------
apt (8)              - (Advanced Package Tool)
apt-get (8)          - handle packages from the command line
apt-cache (8)        - manipulate apt(8)'s cache
apt-cdrom (8)        - add a new CDROM to apt(8)'s list of avail sources
apt-setup (8)        - add apt(8) download sources
apt-rdepends (8)     - list dependencies recursively, like apt-cache(8)
apt-move (8)         - move a cache of packages into a mirror hierarchy

------------------------------------------------------------------------
8217 OTHER DEB INSTALLATION
------------------------------------------------------------------------
debfoster (8)        - weed unnecessary Debian packages
orphaner (8)         - interactively select packages for deborphan(1)
editkeep (8)         - interactively select packages never for deborphan
aptitude (8)         - manage packages, visual or command-line interface
dselect (8)          - manage Debian packages on the console

------------------------------------------------------------------------
8250 DEBIAN PACKAGING AND DEVELOPMENT
------------------------------------------------------------------------
pbuilder (8)         - personal package builder
install-docs (8)     - manage online Debian documentation
install-info (8)     - create or update entry in the Info directory
cleanup-info (8)     - clean up the mess left by a bogus install-info
update-mime (8)      - create or update MIME information
dpkg-preconfigure    - let packages ask questions prior to installation
dh_make (8)          - Debianize a regular source archive

------------------------------------------------------------------------
8500 GENERAL SERVICES
------------------------------------------------------------------------
atd (8)              - run jobs queued for later execution
cron (8)             - execute scheduled commands (daemon)
anacron (8)          - run commands periodically
syslogd (8)          - support system logging and kernel msg trapping
klogd (8)            - intercept and log Linux kernel messages
bootlogd (8)         - record boot messages
rngd (8)             - feed the kernel entropy pool from the HW rand gen
lpd (8)              - spool print jobs
dictd (8)            - serve dict(1) dictionary databases
gpm (8)              - enable mouse cut-and-paste on the console

------------------------------------------------------------------------
8611 NETWORK INTERFACE CONTROL
------------------------------------------------------------------------
ifup, ifdown (8)     - bring a network interface up or take it down
ifconfig (8)         - configure a network interface [see also ip(8)]
arp (8)              - manipulate the system ARP cache
rarp (8)             - manipulate the system RARP table
nameif (8)           - name network interfaces based on MAC addresses
slattach (8)         - attach a network interface to a serial line
mii-tool (8)         - view, manipulate media-indep interface status

------------------------------------------------------------------------
8612 ROUTING AND FIREWALLING
------------------------------------------------------------------------
iptables (8)         - administer IPv4 packet filtering and NAT
ipfwadm (8)          - administer and account for ipfw(4) IP firewalls
route (8)            - show/manipulate the IP routing table
ip (8)               - show/manipulate routing, devices and tunnels
tc (8)               - show/manipulate traffic control settings
ikeygen (8)          - generate a random DES key for use with identd(8)

------------------------------------------------------------------------
8614 ICMP, PING AND TRACEROUTE
------------------------------------------------------------------------
ping (8)             - send ICMP ECHO_REQUEST packets to network hosts
fping (8)            - ping(8), for use in scripts
bing (8)             - determine the bandwidth on a point-to-point link
traceroute (8)       - print the route packets take to network host
traceroute6 (8)      - traceroute(8) for IPv6
tracepath (8)        - trace the path to a network host, discovering MTU
tracepath6 (8)       - tracepath(8) for IPv6
mtr (8)              - traceroute(8) and ping(8), combined

------------------------------------------------------------------------
8616 TCP/IP MONITORING AND DIAGNOSTICS
------------------------------------------------------------------------
netstat (8)          - print network connections, routing tables, stats
tcpdump (8)          - dump traffic on a network
iftop (8)            - display bandwidth usage on an interface by host
ipgrab (8)           - sniff packets verbosely
packit (8)           - analyze and inject packets

------------------------------------------------------------------------
8620 OTHER NETWORK ADMINISTRATION
------------------------------------------------------------------------
dnstracer (8)        - trace a chain of DNS servers to the source
nsupdate (8)         - update Dynamic DNS
rpcinfo (8)          - report RPC information
pmap_set, pmap_dump  - set or print the list of registered RPC programs

------------------------------------------------------------------------
8640 NETWORK SERVICES
------------------------------------------------------------------------
tcpd (8)             - control access to internet services
portmap (8)          - DARPA port to RPC program number mapper
sshd (8)             - run the SSH secure shell daemon
identd (8)           - run the TCP/IP ident protocol server
in.identtestd (8)    - test identd(8)
inetd (8)            - run the internet super-server
update-inetd (8)     - create, remove or disable in /etc/inetd.conf(5)
exim4 (8)            - run this mail-transfer agent
named (8)            - serve domain names
slapd (8)            - serve LDAP
talkd (8)            - serve remote user communications

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

HOW TO LEARN MORE ABOUT A SPECIFIC COMMAND

To learn more about a specific command, try

    man command
    man [n] command  (where [n] is the one-digit man section number)
    man -a command
    info command     (GNU commands and some others)
    help command     (bash(1) builtins)
    man 1 bash       (bash(1) builtins, elements and operators)
    command --help
    command -h
    command -?
    command -help
    locate command
    whereis command
    which 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

(If the output scrolls off the screen, cature it with less(1) as
described under "How To Find Other Commands" below.)

When all else fails, the ultimate way to learn all about any command is
to read its source code.  A bit desperate?  Perhaps!  Even GNU/Linux
experts do not resort to such measures often.  However, very
occasionally reading a bit of the source is precisely what the situation
calls for.  Free software includes the source, so if you feel up to the
challenge, why not read it?  (And if you don't yet feel up to the
challenge but would like to someday, why, to learn the commands in this
Guide should help you significantly along the 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.  In the
Debian archive (usually found online at your nearest Debian mirror), see
dists/stable/main/Contents-* to identify the package in which the
desired command may be found.

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/bin/X11
    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'.)

THE RAMIFICATION NUMBERING SYSTEM

The Guide's branches are numbered as much like the branches in the main
Debian Ramification as is practical.  However, packages and commands are
different kinds of things, so the same numbering system does not always
make sense for the both.  Where it does not make sense, the two systems
do diverge.

The numbers have four digits because three are not enough, because four
are fairly easy to read at a glance and because the four seem to suit
the need, allowing room for future growth.  Old numbers, the Guide tries
not to reuse for new purposes.  However, we want no more than four
digits if we can help it, so within the four-digit limit the Guide does
retain the option to reassign numbers when and where needed.  In and
after version 1.0, non-experimental versions of the Guide which reassign
numbers will at least increment the minor version number, as from 1.0
to 1.1, but no further guarantee is offered other than that the author
won't disrupt established numbers without cause.  Regarding the idea of
a really permanent numbering scheme, the idea is fundamentally sound,
but free-software development in the current era goes too fast for it.
Someday the torrid development pace may settle.  Then we'll increment
the major version number and look at a freeze.

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,
new commands appear frequently, a few of which eventually prove
significant enough to enter the Guide.  Infrequently, the Guide should
be updated accordingly.

Although this Guide tells the general GNU/Linux user what commands to
use, it would be better yet if it told Debian users which package to
install to implement each command.  Usually this is not a practical
problem for the user, but occasionally a desired command can be hard to
find.  As it happens, the Debian Project's well engineered release
practices are optimized to produce the best possible operating system
rather than to make this particular document easy to maintain.  If
mandb(8) worked like dpkg(8), there would be no problem; but it doesn't,
so there is.  The author needs more volunteer help to index the commands
to their packages for each Debian release in a timely fashion.  Until
then, the index must lag.

When a command you want is not installed and it is not obvious which
package installs it, you can

    (a) use the old index for the previous Debian release (chances
    are pretty good that the package name will be the same or nearly
    the same, so this usually works);

    (b) download and use the current dists/stable/Contents-i386 (or
    other Contents-<arch>) file from the Debian FTP archive (this
    almost always works, but the file is very large);

    (c) build your own Contents file with apt-move(8) and use it
    (this is a bit tricky to do, but again it almost always works;
    of course you have to install the `apt-move' package first);

    (d) wait for the author to produce an index for the current
    Debian stable release (but this will necessarily take a long
    time---maybe a year---and it doesn't work if the author happens
    to be hit by a bus);

    (e) study the matter, then if you feel up to it, volunteer to
    help the author so that we don't have this problem next time
    (the author prefers this option, but it's up to you); or

    (f) study the matter, be more clever than the author, think of a
    neat, reliable way to build the index automatically, and
    volunteer to help the author so that we don't have this problem
    next time (even better than option e).

(If you are familiar with the Contents file, then you may find curious
the implication of options b and c that the file almost but not quite
always points you to the right package.  The reason it's not quite
always is twofold.  First, some manpages---or rather, some whatis(1)
entries---exist neither as files nor as proper symlinks, but only as
internal references created by mandb(8) for itself.  Second, a very few
packages unfortunately generate manpage files or symlinks at
installation time rather than at build time.  Both kinds of manpage are
real in the sense that "man foo" displays them, but Debian's Contents
file has no practical way to track them.  However, the cases where this
is a practical problem are rare.  In practice, the Contents file almost
always reveals one or more packages which provide the desired command.)

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,
version 0.4 the following month, and version 0.5 in August 2004, made
little change to this document or to the Ramification itself.  The three
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; versions 0.4 and 0.5
looked forward to Debian sarge.  Version 0.5, published as a part of
Debian sarge, was the first to be included in an official stable Debian
release.

See `debram.txt' for further history.

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 the 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 master electrician's and professional engineer's licenses in
Virginia.  Making his living in the American construction industry,
Thaddeus is married since 1996 to the former Kristie Hancock.  Thaddeus
and Kristie have six children, Benjamin, Isaiah, Naomi, George, Cecil
Quintus and Eleanor.

COPYLEFT

Copyright (C) 2002-2019 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.  You
probably already have this license's complete text on your computer in
such a directory as `/usr/share/common-licenses/'; otherwise, you may
download the text, if you want it, from any of many sources on the
Internet, including (at the time of this writing)
[ftp://ftp.gnu.org/gnu/Licenses/].

