1KIBITZ(1) General Commands Manual KIBITZ(1)
2
3
4
6 kibitz - allow two people to interact with one shell
7
9 kibitz [ kibitz-args ] user [ program program-args... ]
10 kibitz [ kibitz-args ] user@host [ program program-args... ]
11
13 kibitz allows two (or more) people to interact with one shell (or any
14 arbitrary program). Uses include:
15
16 · A novice user can ask an expert user for help. Using kib‐
17 itz, the expert can see what the user is doing, and offer
18 advice or show how to do it right.
19
20 · By running kibitz and then starting a full-screen editor,
21 people may carry out a conversation, retaining the ability
22 to scroll backwards, save the entire conversation, or even
23 edit it while in progress.
24
25 · People can team up on games, document editing, or other
26 cooperative tasks where each person has strengths and weak‐
27 nesses that complement one another.
28
30 To start kibitz, user1 runs kibitz with the argument of the user to
31 kibitz. For example:
32
33 kibitz user2
34
35 kibitz starts a new shell (or another program, if given on the command
36 line), while prompting user2 to run kibitz. If user2 runs kibitz as
37 directed, the keystrokes of both users become the input of the shell.
38 Similarly, both users receive the output from the shell.
39
40 To terminate kibitz it suffices to terminate the shell itself. For
41 example, if either user types ^D (and the shell accepts this to be
42 EOF), the shell terminates followed by kibitz.
43
44 Normally, all characters are passed uninterpreted. However, if the
45 escape character (described when kibitz starts) is issued, the user may
46 talk directly to the kibitz interpreter. Any Expect(1) or Tcl(3) com‐
47 mands may be given. Also, job control may be used while in the inter‐
48 preter, to, for example, suspend or restart kibitz.
49
50 Various processes can provide various effects. For example, you can
51 emulate a two-way write(1) session with the command:
52
53 kibitz user2 sleep 1000000
54
56 kibitz takes arguments, these should also be separated by whitespace.
57
58 The -noproc flag runs kibitz with no process underneath. Characters
59 are passed to the other kibitz. This is particularly useful for con‐
60 necting multiple interactive processes together. In this mode, charac‐
61 ters are not echoed back to the typist.
62
63 -noescape disables the escape character.
64
65 -escape char sets the escape character. The default escape character
66 is ^].
67
68 -silent turns off informational messages describing what kibitz is
69 doing to initiate a connection.
70
71 -tty ttyname defines the tty to which the invitation should be sent.
72
73 If you start kibitz to user2 on a remote computer, kibitz performs a
74 rlogin to the remote computer with your current username. The flag
75 -proxy username causes rlogin to use username for the remote login
76 (e.g. if your account on the remote computer has a different username).
77 If the -proxy flag is not given, kibitz tries to determine your current
78 username by (in that order) inspecting the environment variables USER
79 and LOGNAME, then by using the commands whoami and logname.
80
81 The arguments -noescape and -escape can also be given by user2 when
82 prompted to run kibitz.
83
84
86 The current implementation of kibitz explicitly understands only two
87 users, however, it is nonetheless possible to have a three (or more)
88 -way kibitz, by kibitzing another kibitz. For example, the following
89 command runs kibitz with the current user, user2, and user3:
90
91 % kibitz user2 kibitz user3
92
93 Additional users may be added by simply appending more "kibitz user"
94 commands.
95
96 The xkibitz script is similar to kibitz but supports the ability to add
97 additional users (and drop them) dynamically.
98
100 kibitz assumes the 2nd user has the same terminal type and size as the
101 1st user. If this assumption is incorrect, graphical programs may dis‐
102 play oddly.
103
104 kibitz handles character graphics, but cannot handle bitmapped graph‐
105 ics. Thus,
106
107 % xterm -e kibitz will work
108 % kibitz xterm will not work
109
110 However, you can get the effect of the latter command by using xkibitz
111 (see SEE ALSO below). kibitz uses the same permissions as used by
112 rlogin, rsh, etc. Thus, you can only kibitz to users at hosts for
113 which you can rlogin. Similarly, kibitz will prompt for a password on
114 the remote host if rlogin would.
115
116 If you kibitz to users at remote hosts, kibitz needs to distinguish
117 your prompt from other things that may precede it during login. (Ide‐
118 ally, the end of it is preferred but any part should suffice.) If you
119 have an unusual prompt, set the environment variable EXPECT_PROMPT to
120 an egrep(1)-style regular expression. Brackets should be preceded with
121 one backslash in ranges, and three backslashes for literal brackets.
122 The default prompt r.e. is "($|%|#) ".
123
124 kibitz requires the kibitz program on both hosts. kibitz requires
125 expect(1).
126
127 By comparison, the xkibitz script uses the X authorization mechanism
128 for inter-host communication so it does not need to login, recognize
129 your prompt, or require kibitz on the remote host. It does however
130 need permission to access the other X servers.
131
133 An early version of Sun's tmpfs had a bug in it that causes kibitz to
134 blow up. If kibitz reports "error flushing ...: Is a directory" ask
135 Sun for patch #100174.
136
137 If your Expect is not compiled with multiple-process support (i.e., you
138 do not have a working select or poll), you will not be able to run kib‐
139 itz.
140
142 The environment variable SHELL is used to determine the shell to start,
143 if no other program is given on the command line.
144
145 If the environment variable EXPECT_PROMPT exists, it is taken as a reg‐
146 ular expression which matches the end of your login prompt (but does
147 not otherwise occur while logging in). See also CAVEATS above.
148
149 If the environment variables USER or LOGNAME are defined, they are used
150 to determine the current user name for a kibitz to a remote computer.
151 See description of the -proxy option in ARGUMENTS above.
152
154 Tcl(3), libexpect(3), xkibitz(1)
155 "Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Pro‐
156 grams" by Don Libes, O'Reilly and Associates, January 1995.
157 "Kibitz - Connecting Multiple Interactive Programs Together", by Don
158 Libes, Software - Practice & Experience, John Wiley & Sons, West Sus‐
159 sex, England, Vol. 23, No. 5, May, 1993.
160
162 Don Libes, National Institute of Standards and Technology
163
164 kibitz is in the public domain. NIST and I would appreciate credit if
165 this program or parts of it are used.
166
167
168
169 19 October 1994 KIBITZ(1)