discuss: man pages


Previous by date: 17 May 2003 19:27:03 -0000 Re: Use for mini-HOWTOs (was: revival of the weekly news), Terrence Enger
Next by date: 17 May 2003 19:27:03 -0000 Re: Correctly referencing another author(s) in a document, David Lawyer
Previous in thread: 17 May 2003 19:27:03 -0000 Re: man pages, John Fleck
Next in thread: 17 May 2003 19:27:03 -0000 Re: man pages, David Lawyer

Subject: Re: man pages
From: Jesse Meyer ####@####.####
Date: 17 May 2003 19:27:03 -0000
Message-Id: <20030517192536.GA620@ping>

On Thu, 15 May 2003, Rahul Sundaram wrote:
> 	The GNU has been calling man pages outdated stuff and
> replaced them with info pages. Man pages cater to the
> expert who already knows what he deals. If I am a new
> user trying to learn say what ls does from the command
> line, the almost infinite number of options would
> scare me off Linux for the rest of my life.
> [ SNIP ]
> 
> An example would demonstrate my point 
> 
> This is the present form
> 
> ?
> Man less
> 
> Less- less is opposite of more. (supposed to be brief
> information)

Odd, here's my version:

       Less is a program similar to more (1),  but  which  allows
       backward movement in the file as well as forward movement.
       Also, less does not have to read  the  entire  input  file
       before  starting,  so  with large input files it starts up
       faster than text editors like vi (1).  Less  uses  termcap
       (or  terminfo on some systems), so it can run on a variety
       of terminals.  There is even limited support for  hardcopy
       terminals.  (On a hardcopy terminal, lines which should be
       printed at the top of  the  screen  are  prefixed  with  a
       caret.)

       Commands  are  based on both more and vi.  Commands may be
       preceded by a decimal number, called N in the descriptions
       below.  The number is used by some commands, as indicated.

(debian-woody, for the curious)

Remember, your distribution of linux is not everyone's distribution 
of linux.

You seem to be confusing "Redhat" or "Redhat-based" with linux.  

> [SNIP]
> For example,
> 
> The man page for cat says that it is used to
> concatinating files. This is definitely true but is it
> relevant to the user?
> 
> We all know that cat is more used for displaying files
> and also that the less command is more appropriate for
> that usually.

Now you seem to be confusing your limited usage of the 'cat' 
command with all of its usages.

The cat command is used for concatenating files, either from 
stdout, or from the files listed, and to stdout.

Lets say I want to take two log files and combine them into one 
log file.  A simple 'cat log1 log2 | sort > log3' works wonders, 
if each logfile is of the format "timestamp information".

I agree with you, cat is a horrible way to read all but the 
shortest files.  OTOH, cat does work very well for concatenating 
files.

> Let me know what you people think of all this.

When I first started using linux, I thought that the man pages 
sucked.  I looked online, bought a few books, read a few howtos, 
and basically avoided the man pages.

Now, I'm to the point where I find the man pages very useful, 
and those howtos and books seem rather limited.  I either use 
manpages for refreshing my memory, or to see if I can find 
some obscure option to do what I wish.

Your proposal seems to cater to the new users and penalizes the 
power users.  Lets keep the man pages clean and complete, excess 
information can either go into howtos or into the shared document 
directory, which is /usr/share/doc, on FHS-compliant systems, IIRC.

I agree, a lot of man pages need a rewrite, since man are out of 
date or a tad too sparse.  OTOH, I don't think linux needs to transform 
each and every man page into a hand-holding tutorial.

Just my $.02,

Jesse Meyer

-- 
        ...crying "Tekeli-li! Tekeli-li!"... ~ HPL
 icq : 34583382              |     === ascii ribbon campaign ===
 msn : ####@####.####    |  ()  - against html mail
 yim : tsunad                |  /\  - against proprietary attachments

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.5.2: /usr/bin/python
Sat May 18 23:04:25 2024

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /opt/ezmlm-browse-0.20/<string> in ()
 /opt/ezmlm-browse-0.20/main.py in main()
  424 
  425         if path is not None:
  426                 main_path(path)
  427         else:
  428                 main_form()
global main_form = <function main_form at 0x8af4c6c>
 /opt/ezmlm-browse-0.20/main.py in main_form()
  378         except ImportError:
  379                 die(ctxt, "Invalid command")
  380         module.do(ctxt)
  381 
  382 def main():
module = <module 'commands.showmsg' from '/opt/ezmlm-browse-0.20/commands/showmsg.pyc'>, module.do = <function do at 0x8b55bfc>, global ctxt = {'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}
 /opt/ezmlm-browse-0.20/commands/showmsg.py in do(ctxt={'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'})
   18         write(html('msg-pager') % ctxt)
   19         write('<hr>')
   20         sub_showmsg(ctxt, ctxt[MSGNUM])
   21         write('<hr>')
   22         write(html('msg-pager') % ctxt)
global sub_showmsg = <function sub_showmsg at 0x8af41ec>, ctxt = {'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, global MSGNUM = 'msgnum'
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showmsg(ctxt={'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msgnum=4437)
  229         format_timestamp(ctxt, ctxt)
  230         write(html('msg-header') % ctxt)
  231         rec_showpart(ctxt, msg, 0)
  232         write(html('msg-footer') % ctxt)
  233         ctxt.pop()
global rec_showpart = <function rec_showpart at 0x8af41b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msg = <email.message.Message instance at 0x8b7932c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x8b7932c>, partnum=1)
  205                 else:
  206                         for p in part.get_payload():
  207                                 partnum = rec_showpart(ctxt, p, partnum+1)
  208         else:
  209                 write(html('msg-sep') % ctxt)
partnum = 1, global rec_showpart = <function rec_showpart at 0x8af41b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, p = <email.message.Message instance at 0x8b7956c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x8b7956c>, partnum=2)
  208         else:
  209                 write(html('msg-sep') % ctxt)
  210                 sub_showpart(ctxt, part)
  211         return partnum
  212 
global sub_showpart = <function sub_showpart at 0x8af4144>, ctxt = {'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part = <email.message.Message instance at 0x8b7956c>
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 17, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x8b7956c>)
  164         type = ctxt[TYPE] = part.get_content_type()
  165         ctxt[FILENAME] = part.get_filename()
  166         template = html('msg-' + type.replace('/', '-'))
  167         if not template:
  168                 template = html('msg-' + type[:type.find('/')])
global template = <function template at 0x8aece9c>, global html = <function html at 0x8aeced4>, type = 'application/pgp-signature', type.replace = <built-in method replace of str object at 0x8b7a1e0>
 /opt/ezmlm-browse-0.20/globalfns.py in html(name='msg-application-pgp-signature')
   40 
   41 def html(name):
   42         return template(name + '.html')
   43 
   44 def xml(name):
global template = <function template at 0x8aece9c>, name = 'msg-application-pgp-signature'
 /opt/ezmlm-browse-0.20/globalfns.py in template(filename='msg-application-pgp-signature.html')
   31         except IOError:
   32                 if not _template_zipfile:
   33                         _template_zipfile = zipfile.ZipFile(sys.argv[0])
   34                 try:
   35                         f = _template_zipfile.open(n).read()
global _template_zipfile = None, global zipfile = <module 'zipfile' from '/usr/lib/python2.5/zipfile.pyc'>, zipfile.ZipFile = <class zipfile.ZipFile at 0x8a85a7c>, global sys = <module 'sys' (built-in)>, sys.argv = ['-c', '/opt/ezmlm-browse-0.20']
 /usr/lib/python2.5/zipfile.py in __init__(self=<zipfile.ZipFile instance at 0x8b0078c>, file='-c', mode='r', compression=0, allowZip64=False)
  337             self.filename = file
  338             modeDict = {'r' : 'rb', 'w': 'wb', 'a' : 'r+b'}
  339             self.fp = open(file, modeDict[mode])
  340         else:
  341             self._filePassed = 1
self = <zipfile.ZipFile instance at 0x8b0078c>, self.fp = None, builtin open = <built-in function open>, file = '-c', modeDict = {'a': 'r+b', 'r': 'rb', 'w': 'wb'}, mode = 'r'

<type 'exceptions.IOError'>: [Errno 2] No such file or directory: '-c'
      args = (2, 'No such file or directory')
      errno = 2
      filename = '-c'
      message = ''
      strerror = 'No such file or directory'