Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
KIBITZ(1)		     General Commands Manual		       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 arbi-
     trary 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 coopera-
		tive  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 kibitz.  If user2 runs kibitz as di-
     rected, the keystrokes of both users become the input of the shell.   Simi-
     larly, both users receive the output from the shell.

     To  terminate  kibitz it suffices to terminate the shell itself.  For exam-
     ple, 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  di-
     rectly  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 ex-
     ample, suspend or restart kibitz.

     Various processes can provide various effects.  For example, you  can  emu-
     late 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  kib-
     itz with the current user, user2, and user3:

	  % kibitz user2 kibitz user3

     Additional  users	may be added by simply appending more "kibitz user" com-
     mands.

     The xkibitz script is similar to kibitz but supports the ability to add ad-
     ditional users (and drop them) dynamically.

CAVEATS
     kibitz assumes the 2nd user has the same terminal type and size as the  1st
     user.   If  this  assumption  is  incorrect, 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 precede it during login.   (Ideally,  the
     end  of  it  is preferred but any part should suffice.)  If you have an un-
     usual  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  de-
     fault prompt r.e. is "($|%|#) ".

     kibitz  requires  the  kibitz  program  on both hosts.  kibitz requires ex-
     pect(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 flushing ...: 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 other-
     wise 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 de-
     scription 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 Associates, 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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=expect_kibitz&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help