Man Pages

kibitz(1) - phpMan kibitz(1) - phpMan

Command: man perldoc info search(apropos)  


KIBITZ(1)                                                            KIBITZ(1)



NAME
       kibitz - allow two people to interact with one shell

SYNOPSIS
       kibitz [ kibitz-args ] user [ program program-args...  ]
       kibitz [ kibitz-args ] user@host [ program program-args...  ]

INTRODUCTION
       kibitz allows two (or more) people to interact with one shell (or any arbitrary program).  Uses include:

              ?   A  novice  user  can ask an expert user for help.  Using kibitz, the expert can see what the user is
                  doing, and offer advice or show how to do it right.

              ?   By running kibitz and then starting a full-screen editor,  people  may  carry  out  a  conversation,
                  retaining  the  ability  to scroll backwards, save the entire conversation, or even edit it while in
                  progress.

              ?   People can team up on games, document editing, or other cooperative  tasks  where  each  person  has
                  strengths and weaknesses that complement one another.

USAGE
       To start kibitz, user1 runs kibitz with the argument of the user to kibitz.  For example:

            kibitz user2

       kibitz starts a new shell (or another program, if given on the command line), while prompting user2 to run kib-
       itz.  If user2 runs kibitz as directed, the keystrokes of both users become the input of the shell.  Similarly,
       both users receive the output from the shell.

       To  terminate  kibitz it suffices to terminate the shell itself.  For example, if either user types ^D (and the
       shell accepts this to be EOF), the shell terminates followed by kibitz.

       Normally, all characters are passed uninterpreted.  However, if the escape  character  (described  when  kibitz
       starts)  is issued, the user may talk directly to the kibitz interpreter.  Any Expect(1) or Tcl(3) commands may
       be given.  Also, job control may be used while in the interpreter, to, for example, suspend or restart  kibitz.

       Various  processes  can  provide various effects.  For example, you can emulate a two-way write(1) session with
       the command:

            kibitz user2 sleep 1000000

ARGUMENTS
       kibitz takes arguments, these should also be separated by whitespace.

       The -noproc flag runs kibitz with no process underneath.  Characters are passed to the other kibitz.   This  is
       particularly  useful  for connecting multiple interactive processes together.  In this mode, characters are not
       echoed back to the typist.

       -noescape disables the escape character.

       -escape char sets the escape character.  The default escape character is ^].

       -silent turns off informational messages describing what kibitz is doing to initiate a connection.

       -tty ttyname defines the tty to which the invitation should be sent.

       If you start kibitz to user2 on a remote computer, kibitz performs a rlogin to the remote  computer  with  your
       current  username.  The  flag  -proxy username causes rlogin to use username for the remote login (e.g. if your
       account on the remote computer has a different username). If the -proxy flag is  not  given,  kibitz  tries  to
       determine  your current username by (in that order) inspecting the environment variables USER and LOGNAME, then
       by using the commands whoami and logname.

       The arguments -noescape and -escape can also be given by user2 when prompted to run kibitz.


MORE THAN TWO USERS
       The current implementation of kibitz explicitly understands only two users, however, it is nonetheless possible
       to  have  a  three (or more) -way kibitz, by kibitzing another kibitz.  For example, the following command runs
       kibitz with the current user, user2, and user3:

            % kibitz user2 kibitz user3

       Additional users may be added by simply appending more "kibitz user" commands.

       The xkibitz script is similar to kibitz but supports the ability to add additional users (and drop them) dynam-
       ically.

CAVEATS
       kibitz  assumes the 2nd user has the same terminal type and size as the 1st user.  If this assumption is incor-
       rect, graphical programs may display oddly.

       kibitz handles character graphics, but cannot handle bitmapped graphics.  Thus,

            % xterm -e kibitz    will work
            % kibitz xterm       will not work

       However, you can get the effect of the latter command by using xkibitz (see SEE ALSO below).  kibitz  uses  the
       same  permissions  as  used by rlogin, rsh, etc.  Thus, you can only kibitz to users at hosts for which you can
       rlogin.  Similarly, kibitz will prompt for a password on the remote host if rlogin would.

       If you kibitz to users at remote hosts, kibitz needs to distinguish your prompt from other things that may pre-
       cede  it  during  login.   (Ideally,  the  end of it is preferred but any part should suffice.)  If you have an
       unusual prompt, set the environment variable EXPECT_PROMPT to an egrep(1)-style regular  expression.   Brackets
       should  be  preceded  with  one  backslash  in ranges, and three backslashes for literal brackets.  The default
       prompt r.e. is "($|%|#) ".

       kibitz requires the kibitz program on both hosts.  kibitz requires expect(1).

       By comparison, the xkibitz script uses the X authorization mechanism for inter-host communication  so  it  does
       not  need  to login, recognize your prompt, or require kibitz on the remote host.  It does however need permis-
       sion to access the other X servers.

BUGS
       An early version of Sun's tmpfs had a bug in it that causes kibitz to blow up.  If kibitz reports "error flush-
       ing ...: Is a directory" ask Sun for patch #100174.

       If  your Expect is not compiled with multiple-process support (i.e., you do not have a working select or poll),
       you will not be able to run kibitz.

ENVIRONMENT
       The environment variable SHELL is used to determine the shell to start, if no other program  is  given  on  the
       command line.

       If  the environment variable EXPECT_PROMPT exists, it is taken as a regular expression which matches the end of
       your login prompt (but does not otherwise occur while logging in). See also CAVEATS above.

       If the environment variables USER or LOGNAME are defined, they are used to determine the current user name  for
       a kibitz to a remote computer. See description of the -proxy option in ARGUMENTS above.

SEE ALSO
       Tcl(3), libexpect(3), xkibitz(1)
       "Exploring  Expect:  A  Tcl-Based Toolkit for Automating Interactive Programs" by Don Libes, O'Reilly and Asso-
       ciates, January 1995.
       "Kibitz - Connecting Multiple Interactive Programs Together", by Don Libes, Software - Practice  &  Experience,
       John Wiley & Sons, West Sussex, England, Vol. 23, No. 5, May, 1993.

AUTHOR
       Don Libes, National Institute of Standards and Technology

       kibitz is in the public domain.  NIST and I would appreciate credit if this program or parts of it are used.



                                19 October 1994                      KIBITZ(1)