Version 0 of man

Updated 2003-10-10 10:57:51

Unix Manual Pages

by Theo Verelst

   man [-k] [section] page

The man command on Linux, Unix, and under cygwin on all windows versions except the small portable ones, allows you to view manual pages for in principle all commands on the system. If we'd want to know what the command 'ps' (process status) works like, we'd type

   man ps

and get:

 PS(1)                               CYGWIN                               PS(1)

        ps [-aefls] [-u UID]

        -a, --all
               show processes of all users

        -e, --everyone
               show processes of all users

        -f, --full
               show process uids, ppids

        -h, --help
               output usage information and exit

        -l, --long
               show process uids, ppids, pgids, winpids

        -s, --summary
               show process summary

if we don't know the options and usage of a certain man version, we type on the target machine:

   man man

to get the manual page of man itself:

 man(1)                                                                  man(1)

        man - format and display the on-line manual pages
        manpath - determine user's search path for man pages

        man  [-acdfFhkKtwW]  [--path]  [-m system] [-p string] [-C config_file]
        [-M pathlist] [-P pager] [-S section_list] [section] name ...

        man formats and displays the on-line manual pages.  If you specify sec-
        tion,  man  only looks in that section of the manual.  name is normally
        the name of the manual page, which is typically the name of a  command,
        function,  or  file.   However,  if  name contains a slash (/) then man
        interprets it as a file specification, so that you can do  man  ./foo.5
        or even man /cd/foo/bar.1.gz.

        See  below  for  a  description  of where man looks for the manual page

        -C  config_file
               Specify  the  configuration  file  to  use;   the   default   is
  ... (etc)

A good manual page probably has:

   Section indication
   NAME of the command with description
   SYNOPSIS in generic format the possibly optional and symbolic or literal arguments and their order
   DESCRIPTION in human readable form, concise and short what the command does
   OPTIONS available, their exact form in a list, and short and concise description of each and the conbinations
   SEE ALSO cross reference to related commands

and possibly:

   BUGS obvioiusly: known bugs or limitations
   ENVIRONMENT VARIABLES the command uses or affects.

One can use

   man -k <keyword>

to search for keyword in all manual page headers and get a list of results per line. In such useage lines, it used to be standard to take <> as indicating literals, and as optional arguments, and ... as possible repetition.

To make this work, the whatis command must be initialized by updating the man database, probably with something like calling the script:


Under linux I guess that could be /sbin/makewhatis , probably only accessable by root.

Under cygwin on windows, where this all works, the tcl/tk manual pages are not automatically available if you installed you own TCL/TK. Cygwin currently has I think wish8.3 or so installed, and has possible manual pages for them, but that would not necessarily be for your version, which can be delusive.

Also, under windows XX, tcl/tk comes not with man formatted manual, only window help file compiled format (or something, which unfortunately cannot have its font size set seperately (annoying when running a 1600x1200 workstation like setup wanting some things smal as possible, and a manual page at a neatly readable non-eye-straining size).

One could get the Linux files for the same version, and install those under /cygdrive/c/cygwin/usr/man/mann or something.

Man is conceptually a concatenation of two programs, driven by a database, first a formatter, usually nroff (see manual page on unix/linux), and then a pager, usually a 'more' (or 'less') variation, which show its input text one terminal page at a time, paced by <space> for a new screen, <newline> to scroll one line, and <b> for one page back (when available, not possible on stream inputs):

   nroff -man /somepath/somemanualpage.n | more