This is the command kibitz that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator
kibitz - allow two people to interact with one shell
kibitz [ kibitz-args ] user [ program program-args... ]
kibitz [ kibitz-args ] user@host [ program program-args... ]
kibitz allows two (or more) people to interact with one shell (or any arbitrary program).
· 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.
To start kibitz, user1 runs kibitz with the argument of the user to kibitz. For example:
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 directed, the keystrokes of both
users become the input of the shell. Similarly, both users receive the output from the
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
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
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
-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
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) dynamically.
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 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 permission to access the other X servers.
Use kibitz online using onworks.net services