SHL(C) XENIX System V SHL(C)
Name
shl - Shell layer manager
Syntax
shl
Description
shl allows a user to interact with more than one shell from
a single terminal. The user controls these shells, known as
layers, using the commands described below.
The current layer is the layer that can receive input from
the keyboard. Other layers attempting to read from the
keyboard are blocked. Output from multiple layers is
multiplexed onto the terminal. To have the output of a
layer blocked when it is not current, the stty(C) option
loblk may be set within the layer.
The stty character swtch (set to ^Z if NUL) is used to
switch control to shl from a layer. shl has its own prompt,
>>>, to help distinguish it from a layer.
A layer is a shell that has been bound to a virtual tty
device (/dev/sxt???). The virtual device can be manipulated
like a real tty device using stty(C) and ioctl(S). Each
layer has its own process group id.
Definitions
A name is a sequence of characters delimited by a blank, tab
or new-line. Only the first eight characters are
significant. The names (1) through (7) cannot be used when
creating a layer. They are used by shl when no name is
supplied. They may be abbreviated to just the digit.
Commands
The following commands may be issued from the shl prompt
level. Any unique prefix is accepted.
create name
Create a layer called name and make it the current
layer. If no argument is given, a layer will be
created with a name of the form (#) where # is the last
digit of the virtual device bound to the layer. The
shell prompt variable PS1 is set to the name of the
layer followed by a space, or, if superuser, the name
followed by a sharp (#) and a space. A maximum of
seven layers can be created.
block name [ name ... ]
For each name, block the output of the corresponding
layer when it is not the current layer. This is
equivalent to setting the stty option loblk within the
Page 1 (printed 2/7/91)
SHL(C) XENIX System V SHL(C)
layer.
delete name name ...
For each name, delete the corresponding layer. All
processes in the process group of the layer are sent
the SIGHUP signal (see signal(2)).
help (or ?)
Print the syntax of the shl commands.
layers -l name ...
For each name, list the layer name and its process
group. The -l option produces a ps(1)-like listing.
If no arguments are given, information is presented for
all existing layers.
resume name
Make the layer referenced by name the current layer.
If no argument is given, the last existing current
layer will be resumed.
toggle
Resume the layer that was current before the last
current layer.
unblock name [ name ... ]
For each name, do not block the output of the
corresponding layer when it is not the current layer.
This is equivalent to setting the stty option loblk
within the layer.
quit Exit shl. All layers are sent the SIGHUP signal.
name Make the layer referenced by name the current layer.
Files
/dev/sxt??? Virtual tty devices
$SHELL Variable containing path name of the shell
to use (default is /bin/sh).
See Also
ioctl(S), mkdev(ADM), sh(C), signal(S), stty(C), sxt(M)
Note
It is inadvisable to kill shl.
If shl does not run properly on a particular terminal, you
may have to set istrip for that terminal's line by entering
the following command at the terminal:
stty istrip
Page 2 (printed 2/7/91)
SHL(C) XENIX System V SHL(C)
By default, is configured for one shell layer session at a
time. To increase this single session limit, enter the
command:
mkdev shl
This executes a script which prompts you for the number of
sessions desired. The script also allows you to relink the
kernel. The new session limit becomes effective after the
kernel is rebooted. (For more information, see mkdev(ADM).)
Page 3 (printed 2/7/91)