shl(1) DG/UX 5.4R3.00 shl(1)
NAME
shl - shell layer manager
SYNOPSIS
shl
DESCRIPTION
Shl lets a user 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 can receive input from the keyboard. Other layers
trying to read from the keyboard are blocked. Output from multiple
layers is multiplexed onto the terminal. To block the output of a
layer when it is not current, set the stty option loblk within the
layer.
The stty character swtch (set to ^Z if NUL) switches 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/ttyp??). The virtual device can be manipulated like a real tty
device using stty(1) and ioctl(2). 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
You can issue the following commands 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 a digit (1,2...7) bound to the layer.
The shell prompt variable PS1 is set to the name of the layer
followed by 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 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.
Licensed material--property of copyright holder(s) 1
shl(1) DG/UX 5.4R3.00 shl(1)
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.
Using shl with the C Shell
If you are using the csh(1), which by default uses Ctrl-Z as the
suspend character, and you want to reset the switch character for
shl, you can create an alias such as the following:
alias shl 'stty old; stty swtch \^g; stty line 1; /usr/bin/shl'
International Features
shells managed with shl provide the same functionality with
characters from supplementary code sets as the current shell.
Layer names must be specified using ASCII characters only.
FILES
/dev/ttyp?? Virtual tty devices
$SHELL Variable containing pathname of the shell to use
(default is /bin/sh).
SEE ALSO
sh(1), stty(1).
ioctl(2), signal(2)
pty(7)
NOTES
If you are using shl from an xterm window (TERM=xterm), then shl will
not be able to pass window size information down to each layer. This
may cause problems when using utilities such as vi(1) and more(1). To
resolve this, execute the resize(1) command in each layer.
Licensed material--property of copyright holder(s) 2