COHERENT manpages

This page displays the COHERENT manpage for vsh [Interactive graphical shell].

List of available manpages
Index


vsh -- Command

Interactive graphical shell
vsh [-ddirectory] [-eirt]

vsh is  the COHERENT system's visual  shell.  With it, users  can use arrow
keys  or simple  keystrokes to  perform tasks under  the COHERENT,  such as
change  directories,  edit  files, and  execute  programs.   Each user  can
program a bank of up to  nine function keys to perform complex tasks with a
single keystroke.  With  vsh, a naive user can access  much of the power of
the COHERENT system without having to learn the details of sh or ksh.

Unlike  X  or  other windowing  systems,  vsh  works  on a  character-based
terminal and requires only a modest  amount of memory.  It does not require
a mouse.

Graphics Interface

vsh uses  the curses  library and terminfo  descriptions.  To use  vsh, you
must have  a terminfo description  installed for the device  upon which you
wish to run  it, and you must set the  environmental variable TERM to point
correctly to that description.  For  example, to run vsh from your console,
you should  set TERM to ansipc;  while to run it from a  PC that is plugged
into a serial port, you should  set TERM to vt100. You must have a terminfo
description  for the  device to  which  you set  TERM, or  vsh will  behave
bizarrely.  For  more information on devices  and how to set  them, see the
Lexicon entries for TERM and terminfo. For more information on terminals in
general, see the entries for terminal and console.

To  ensure that  TERM set  correctly,  you may  wish to  embed the  command
ttytype in  the file /etc/profile. For more details,  see the Lexicon entry
for ttytype.

If you  have a  non-standard terminal or  have trouble displaying  vsh, try
invoking it with  the options -e or -t.  All  of vsh's command-line options
are described below.

Main Screen

When you invoke vsh, you see a screen that appears as follows:

-------------------------------------------------------------------------------|
| File     Dir      Options  Install  Command  Refresh  Exit     Help          |
|------------------------------------------------------------------------------|
|/v                                   |>|                                      |
|------------------------------------------------------------------------------|
| [..]                     12:49  2-04-94 rwxr-xr-x ^ System:  lepanto         |
| [PostScript]             12:15 12-02-93 rwxrwxrwx # Line:    ttyp1           |
| [backup]                  9:39 10-05-93 rwxr-xr-x + Login:   fred            |
| [font]                   12:41 10-19-93 rwxr-xr-x + UID:     fred (10)       |
| [fwb]                    13:51  2-09-94 rwxr-xr-x + GID:     user (5)        |
| [gif]                     9:23  2-05-94 rwxrwxrwx + Date:    2-9-94          |
| [lost+found]             15:00 11-15-93 rwxrwxrwx + Time:    22:08           |
| [sounds]                 16:04  1-05-94 rwxr-xr-x + -------------------------|
| OLD.gtz            95868  9:30  1-29-94 rw-r--r-- + Files:               10  |
| mount.all            372 10:02  1-29-94 rwxr-xr-x + File size:        96240  |
|                                                   + Files tagged:         0  |
|                                                   + File size ta.:        0  |
|                                                   + File size ta.:        0  |
|                                                   + Dir. Stack:           0  |
|                                                   + Mail:              None  |
|                                                   + /usr/spool/mail/fred     |
|                                                   + you can get messages     |
|                                                   +                          |
|                                                   v                          |
|------------------------------------------------------------------------------|
1______  2______  3______  4______  5______  6______  7______  8______  9______

As  you can  see, the  screen  is divided  the following  six sections,  or
windows:

-> The first  window, the  Command Window, is  the narrow window  that runs
   across the top  of the screen.  This window lists  the commands that vsh
   can perform.   You will  enter this window  frequently as you  work with
   vsh.

-> The  second window,  the Current Directory  window, names  the directory
   that you are currently in.

-> The third  window, the Destination  Directory window, names  the default
   destination directory.

-> The fourth  window, the File Window,  extends down the left  side of the
   screen.  It lists the contents  of the current directory.  You will also
   work frequently in this window.

-> The fifth  window, the System Window,  is the upper window  on the right
   side of the screen.  It gives information about the system, that is, who
   is running  vsh, the device she  is running it on,  and the current date
   and time.  Your cursor never enters this window.

-> The last window, the Status Window, gives information about the work you
   have  performed under  vsh.  Again, your  cursor will  never enter  this
   window.

Across the bottom  of the screen are nine ``stubs,''  one each for function
keys  one through  nine.  The  stub's text indicates  the command  that vsh
executes when you press that key.

The following sections discuss each window in detail.

File Window

The file window  lists all of the files and  directories within the current
directory.  This is the default window for vsh; the cursor ordinarily rests
in this window, and you will do most of your work in it.

The leftmost  column in  the File  Window gives the  name of each  file and
directory.  Directories are given at the top of the list; they are enclosed
within brackets  `[ ]'.  The other columns give,  respectively the time the
file or directory  was last updated; the date it  was last updated; and its
permissions.  For  information on how to  interpret the permissions string,
see the Lexicon entry for the command ls.

The top  listing in the  File Window is  always [..], which  represents the
current directory's parent directory.

The  top listing  in this  list is  highlighted by  being shown  in reverse
video.  To  move the highlighting bar  up and down the  list, use the arrow
keys.  If you  press the arrow keys on your  keyboard's number pad, be sure
to  turn the  <NumLock> key  off, or  the keys will  not work  as you
expect.  If you  press the v key, the bar  shifts down one row on the list.
Pressing the ^ key moves the bar up one row.

You  can  page  up  or  page  down  by  pressing,  respectively,  the  keys
<PgUp> and <PgDn>. The key <Home> moves the cursor to the
top of the list, and <End>  moves it to the bottom.  If your terminal
does  not  implement  these   keys,  you  can  use  the  following  control
characters:

    <ctrl-N>  Next page (like <PgDn>)
    <ctrl-P>  Previous page (like <PgUp>)
    <ctrl-A>  Beginning (top) of list (like <Home>)
    <ctrl-E>  End (bottom) of list (like <End>)

Note that if the list of files and directories is too large to fit into the
window, moving  the bar  to the  bottom of the  window and pressing  v will
scroll the  list.  If you press  the <End> key, the  row moves to the
last row in the list; and if you press <Home>, it moves to the top of
the list.

A scroll bar runs down the right side of the File Window.  As you scroll up
and down this window, the scroll  bar moves.  Note that the position of the
scroll bar  is proportional to the highlighting  bar's position in relation
to the  entire list of files,  not just to its  current position within the
File Window.  This  gives you an easy way to  see just where you are in the
entire file list.

If you position the highlighting bar over the name of a directory and press
<return>,  vsh names  that directory  in the  Current Directory  Window and
displays its contents in the File Window.  For example, if you position the
highlighting bar over the entry for directory [letters] and press <return>,
vsh displays the contents of directory letters in the File Window.  (If you
are familiar  with the Bourne  or Korn shell,  this has the  same effect as
typing the  command cd letters.)  To return to  the directory you  had just
been displaying  (that is, the parent directory of  letters), use the arrow
keys to move  the highlighting bar to the entry  [..]; then press <return>.
vsh changes the  contents of the Current Directory Window,  and in the File
Window  erases the  contents of  letters and displays  the contents  of its
parent directory.

If you press  <return> while a file is highlighted  instead of a directory,
vsh does the following:

1. If the file is executable, vsh executes it.

2. If the  file matches a  pattern from the file-action  list, vsh executes
   the action from  the list with the file as  input.  The file-action list
   is in file $HOME/.vsh; it looks like:

       [Mm]akefile:make
       *.mk:make -f %F
       *.sh:sh %F
       *.c:cc -c -O %F
       *.sc:sc %F
       *.a:ar tv %F | more
       *.[1-9]:nroff -man %F | more
       *.tar.F:fcat %F | tar xvf -
       *.F:fcat %F | more
       *.tar.Z:zcat %F | tar xvf -
       *.Z:zcat %F | more

   vsh recognizes most common wildcard characters; for a table of these and
   their  meaning, see  the  Lexicon entries  for wildcards.  The token  %F
   stands for the file that  is currently highlighted.  For example, in the
   above example the entry *.Z:zcat %F means that if you select a file with
   the suffix .Z (which usually means  that a file has been compressed), it
   passes that file to zcat to uncompress and display it.  vsh defines many
   defaults  for you  when it  creates this  file, which you  can use  as a
   model.  To change the file-action list, use the File actions sub-command
   of the Install command, which is described below.

3. If the file appears to be ASCII vsh displays it with the default viewer.

While vsh  is working, it displays  a large letter `X'  in reverse video in
the lower  right corner of the  screen.  This shows that  vsh is doing some
internal task.  vsh cannot accept  any commands while the `X' is displayed,
so please be patient.

Also,  note that  vsh cannot  handle  more than  1,000 files  in any  given
directory.  If  a directory contains more than 1,000  files, only the first
thousand will be available for use.

System Window

The system window is the upper  of the two windows on the right side of the
screen.  The  cursor never enters  this window; rather,  this window simply
displays information about your  COHERENT system, and how you are currently
using it.  It contains the following entries:

System:
     This gives  the name of your  system, as you (or  your COHERENT system
     administrator)  has set  it in file  /etc/uucpname. See  the Lexicon's
     entry for  uucpname for more details on  proper naming conventions for
     COHERENT systems.

Line:
     This gives the device by which you are accessing your COHERENT system.
     If you  are working on  your system's console device,  then you should
     see console  on this line; whereas if you  are accessing your COHERENT
     via a  PC plugged into serial  port com1l, you should  see com1l here.
     If you are  using virtual consoles, the line is  shown as mono[0-8] or
     color[0-8].  See the  Lexicon  entries for  console and  asy for  more
     information about the devices  through which you can access a COHERENT
     system.

Login:
     This  gives  the  name under  which  you  logged  into COHERENT.   For
     example, if your login identifier is fred, then you should see fred on
     this line.

UID: This  shows your  user-identification number  (or  UID).  This  is the
     unique number by which your COHERENT  system knows you, as set in file
     /etc/passwd. For  information on the  UID and how  to set it,  see the
     Lexicon entries for passwd and setuid.

GID: This gives the number and name  of the user group to which you belong.
     Users on  a COHERENT system can be  organized into groups; permissions
     on files can be set to  include the members of your group, but exclude
     all others.   For information on  groups, see the  Lexicon entries for
     group and setgid.

Date:
     This gives  today's date (or rather, what  your COHERENT system thinks
     today's date is).

Time:
     This  gives what  your system  thinks  the current  time is.   If your
     system's time is not set correctly,  then the time shown here will not
     be correct.   For information on how  to set the system  time, see the
     Lexicon entries for the commands ATclock and date.

     The time  can also  vary depending upon  what time zone  your COHERENT
     system thinks  it's located in.  For information  on timezones and how
     to set them correctly, see the Lexicon entry for TIMEZONE.

Command Window

The Command Window is the top window, and stretches across the width of the
screen.  This window gives you  access to vsh's commands.  Some commands in
the command window actually open an entire menu of commands, with which you
can perform all manner of work.

The command  window contains the  following entries.  For  convenience, the
following displays the  entries vertically; the actual window displays them
horizontally:

    File
    Directory
    Options
    Install
    Command
    Refresh
    Exit
    Help

When the cursor  is in the File Window (which  is the default) and you wish
to execute  one of the  commands in the  Command Window, press  its initial
letter.  For example, to execute the Refresh command, press R.

Note  that the  commands on  this window  are in  two groups.   A command's
behavior differs, depending upon which group it belongs to.

The commands File, Directory, Options, and Install display a drop-down menu
when  you invoke  it.   That is  because  they have  more  than one  option
available under it.   If you do not wish to  invoke any of the sub-commands
on  that menu,  you  can do  either  of the  following: You  can press  the
<Esc> key,  which erases  the drop down-menu  and returns you  to the
File Window;  or you can  press the <-  or -> keys,  which move you  to the
command in this group that lies,  respectively, to the left or to the right
of the  current command.  For  example, suppose that  you were in  the File
Window, and you pressed F, to  invoke the File command.  vsh would move the
cursor into  the Command Window,  and display the  File Command's drop-down
window,  which  displays   its  sub-commands.   If  you  then  pressed  the
<Esc> key, vsh  would return you to the File  Window.  If you pressed
the  ->  key, vsh  would  erase  the File  command's  drop-down window  and
display,  instead, the  drop-down window  for  the Directory  command.  If,
however, you pressed  the <- key, vsh would erase  the File command's drop-
down  window  and  display, instead,  the  drop-down  window  for the  Help
command.  As  you can see, vsh ``wraps-around'' the  cursor -- it considers
the command  at the far right to  be to the left of the  command to the far
left, and vice versa.  This concept is a little difficult to grasp when you
read about it, but once you try it, it will quickly become clear.

Please note that vsh delays for  one second its reaction to the <esc>
key.  The  curses function  wgetch(), which is  used to read  the keyboard,
needs this delay so it can  distinguish between the <esc> key and the
other  function keys,  which all  of which start  with an  <esc>. So,
please be patient.

The other  group of commands  are the commands Command,  Refresh, Exit, and
Help each have only option, so  when you invoke one of them, it immediately
begins  to execute  that option.   When  you access  one of  these commands
through the ->  and <- keys, each displays a  drop-down menu that shows its
one option.

The following describes each command in detail.

File Pressing F  invokes the File command.  This  displays a drop-down menu
     that  lists  a  set  of  sub-commands.   These  sub-commands  let  you
     manipulate  files; with  them, you  can  edit a  file, create  a file,
     change its  permissions, rename  it, erase it,  print it, or  do other
     common tasks.

     To invoke a sub-command, you can do either of the following: Press the
     letter in the sub-command that is underlined (each sub-command has its
     own unique  letter with which you  can invoke it); or use  the ^ and v
     keys  to move  the highlighting  bar to that  command, and  then press
     <return>.

     The following discusses each sub-command in detail:

     Copy This sub-command copies a file.  Please note that the behavior of
          this subcommand depend upon whether you have tagged files.

          If you have  tagged one or more files, vsh  opens a pop-up window
          that  requests the  path name  of a  directory.  By  default, vsh
          displays the  destination directory, if  you have set  one.  When
          you enter  the path name, vsh copies every  tagged file into that
          directory.

          If you have not tagged any  files, vsh opens a pop-up window that
          requests that  you enter a file  name or a path  name.  Again, if
          you have  set a destination directory, the  window displays it by
          default.  If  you enter  only a file  name into this  window, vsh
          copies  the highlighted  file into  the newly  named file  in the
          current  directory;  if  you have  named  an  existing file,  vsh
          prompts you before it overwrites  that file.  If you enter a path
          name, vsh copies the highlighted file into the directory you have
          named; the  copied file retains  its current name.   If, however,
          you enter both  a file name and a path  name, then vsh copies the
          highlighted file  into the directory you named,  and gives it the
          file name that you entered.

          Note that this command will not  overwrite a file that you do not
          own; nor will it create a new file in a directory in which you do
          not have  write permission, or  copy a file  on which you  do not
          have  read permission.   For  more information  on copying  files
          under COHERENT, see the Lexicon entry for the command cp.

     Move This sub-command prompts you for  the name of a directory; if you
          have  set a  destination directory, vsh  displays it  by default.
          When you confirm the destination, vsh then moves all tagged files
          into it.  (If no files are tagged, vsh moves only the highlighted
          file.  For  more information  on tagging,  see the entry  for the
          sub-command Tag, below.) The  files retain their names in the new
          directory.

          This command does not move a  file for which you do not have read
          permission, or move a file into a directory into which you do not
          have  write permission;  nor  will it  move  a file  into a  non-
          existent directory (of course).  For details on moving files, see
          the Lexicon entry for the command mv.

     Delete
          This  sub-command deletes  the tagged  files.   (If no  files are
          tagged,  then it  deletes only  the  highlighted file.   For more
          information on  tagging, see the  entry for the  sub-command Tag,
          below.) It will prompt you to  confirm that you really do want to
          delete the  file or files  in question.  With regard  to the mass
          deletion  of  tagged  files,  this  sub-command lets  you  choose
          whether to do a mass deletion or delete files one at a time.

          Note that this sub-command will not delete a file that you do not
          own.  For  details on deleting  files, see the  Lexicon entry for
          the command rm.

     Rename
          This sub-command lets  you rename the highlighted file.  It opens
          a  pop-up window  that shows  the current name  of the  file, and
          prompts you  to type  the new  name.  Press <Esc>  to abort
          this sub-command, or type the new name and press <return>.

          It does not work with directories.   It will not let you rename a
          file that  you do not own.   For details on renaming  a file, see
          the Lexicon entry for the command mv.

     Execute
          This sub-command executes  the highlighted file.  vsh prompts you
          to type  the arguments you  wish to pass this  file, then invokes
          the file with those arguments.

          Note that vsh  will not execute a file for  which you do not have
          execute permission.

     Access
          This sub-command lets you change the manner in which every tagged
          file can  be accessed.  (If  no files are tagged,  the default is
          the  highlighted file.)  When  you invoke  it,  vsh displays  the
          following pop-up window for each tagged file:

              Change access f file filename

              Owner
              Read [x]       Write[x]        Execute[ ]

              Group
              Read [x]       Write[ ]        Execute[ ]

              World
              Read [x]       Write[ ]        Execute[ ]

              Special
              Set UID [ ]    Set GID [ ]     Set sticky[ ]


          An `x'  in a  field means  that that permission  is turned  on; a
          blank means that it is turned off.  Use the arrow keys to move to
          the cursor the field whose  status you wish to change, then enter
          a space or  `x' to, respectively, turn off or  turn on that given
          permission.  To abort this command, press <Esc>.

          For  information what  permission  fields mean,  see the  Lexicon
          entry for  ls. Note  that you can  reset permissions only  on the
          files you own.

     Owner
          This lets  you change the  owner and group that  owns each tagged
          file.   If no  files are  tagged, then this  applies only  to the
          highlighted file.  When  you invoke this sub-command, vsh opens a
          pop-up window that shows the user and group that own a file: type
          the name  of the  user or  group you want  to own the  file.  vsh
          repeats this  step for each tagged file.   To abort this command,
          press <Esc>.

          For  details on  changing ownership  of a  file, see  the Lexicon
          entries  for the  command  chown and  chgrp. Note  that only  the
          superuser root can run this command.

     Print
          This passes every tagged  file to the print spooler for printing.
          To change  the default print  spooler, use the  Install command's
          Print spooler sub-command.

          Note that vsh simply passes the file to the spooler for printing;
          you cannot use this to process a file before printing it.  If you
          try to  use this feature of  vsh to print a  file on a PostScript
          printer,  the printer  will hang.   We suggest  that you  use the
          Command feature to print a  file on a specialized printer; it's a
          little more difficult, but  it works.  Another approach is to use
          the spooler  lp and  prepare a special  backend script to  do the
          processing automatically.  For details on how to do that, see the
          Lexicon entries for lp and printer.

     View This  sub-command  invokes  the  default  viewer to  display  the
          contents of  every tagged file.  If you try  to view the contents
          of a binary file, the results may not be what you expect.

          Note that vsh  will not display a file for  which you do not have
          read permission.   To change the default  viewer, use the Install
          command's File viewer sub-command.

     Edit This  sub-command invokes  the text editor  to edit  every tagged
          file.  If  no files  are tagged,  then edit only  the highlighted
          file.

          The  default text  editor is  vi, which  can create  problems for
          persons who  do not  know how  to exit from  that editor.   For a
          quick brush-up on vi, see  the Lexicon entry for elvis. To change
          the default  text editor, use  the Install command's  Editor sub-
          command.  Note  that COHERENT  will not let  you edit a  file for
          which you do not have read permission.

     Edit new
          This sub-command  prompts you  to type the  name of a  file, then
          invokes the editor  for that file.  This can be  a new file (that
          is, one that  does not yet exist in the  current directory), or a
          file that already exists.

          Note  that if  you do  try to  edit a binary  file, you  may find
          yourself running into difficulties.

     Touch
          This ``touches''  every tagged  file --  that is, it  changes the
          date and time  that the file was last modified,  just the same as
          if you had just edited it.

          Note that you cannot touch a file for which you do not have write
          permission.   For more  information  on touching  files, see  the
          Lexicon entry for the command touch.

     Tag all
          This sub-command  ``tags'' every  file in the  current directory.
          This lets you do mass moves  or deletions of files.  When you tag
          a file, vsh updates the entries Files tagged and File size ta. in
          the Status  Window, to reflect  the number and total  size of the
          files you  have just tagged.  It also prints  an asterisk next to
          the tagged file.

          When the cursor is in the  File Window, you can toggle tagging on
          the highlighted  file by pressing  the space bar.   Note that the
          highlighted  file is  implicitly tagged,  whether an  as asterisk
          appears next to  it or not.  For details, see  the section on the
          Status Window, below.

     Untag all
          This sub-command untags all  files that are tagged in the current
          directory.  As  noted above,  you can  toggle the tagging  of the
          highlighted file by pressing the space bar.  This command updates
          the Status Window to reflect your changes.

     Select
          This  sub-command opens  a  pop-up window  and lets  you enter  a
          regular  expression;  it  then  tags  all  files that  match  the
          expression.  For example, if you enter *.c, then this sub-command
          tags all files that end in the string .c.

     File type
          This sub-command  prints a summary of  information about the type
          of the highlighted file.

     File info
          This  sub-command  opens   a  pop-up  window  that  displays  the
          following information about the highlighted file or directory:

              Filename
              Filetype
              I-Node
              Links
              Owner UID
              Owner GID
              access
              modification
              status changed

          Filename is  the name of  the file.  Filetype is  its type, e.g.,
          directory  or regular  file.   I-Node gives  the  number of  this
          file's  i-node; for  information on  what an  i-node is,  see its
          entry in  the Lexicon.   Links gives the  number of links  to the
          file.  For information on what a link is, see the Lexicon entries
          for ln and link(). Owner UID and Owner GID identify the owner and
          group that  own this file.   For information on what  the UID and
          GID are,  see the Lexicon entries for  setuid and setgid. access,
          modification, and status changed give, respectively, the date and
          time the  file was last accessed, last modified,  or last had its
          status changed.

Directory
     Pressing D  invokes the Directory command.   This displays a drop-down
     menu that  lists a  set of  sub-commands.  These sub-commands  let you
     manipulate directories; with  them, you can create a directory, remove
     a directory, change permissions, and other common tasks.  You can also
     manipulate a ``directory stack,'' which lets you jump quickly from one
     directory to another without having to retype its name.

     The following discusses each sub-command in detail:

     Change
          This lets you change the current directory.  When you invoke this
          subcommand, vsh displays the following pop-up window:


              Enter destination path


          Type the full  path name of the directory you  wish to enter.  If
          this directory  does not exist,  or if you cannot  access it, vsh
          leaves you  in the current directory; otherwise,  it moves you to
          the requested directory.

     Home This moves you to your home directory.

     User's Home
          This moves  you to the home directory of  another user.  When you
          invoke this sub-command, vsh asks you to name the user whose home
          directory you wish to enter.  To abort, press <Esc>. If the
          user you enter does not exist or if you do not have permission to
          read her home directory, vsh leaves you in the current directory;
          otherwise, vsh moves you into that user's home directory.

     Set dest
          Set the  destination directory.  This directory  is saved in your
          .vsh file, and is restored the next time you invoke vsh.

     Push The next  three sub-commands  makes it  easy for you  to maneuver
          your way around the COHERENT file system.  The work by using what
          is called a ``directory stack''.   In effect, you can tell vsh to
          remember the directory you are in (this is termed ``pushing'' the
          directory  onto  the  stack); then,  when  you  have switched  to
          another directory,  you can returned to  this directory simply by
          ``popping'' this pushed directory from the directory stack.  This
          lets you  move around among directories  without having to retype
          them continually.

          The  Push  sub-command  pushes  the  current directory  onto  the
          directory stack.   When you push a  directory, vsh increments the
          number next  to the entry Dir. Stack in  the Status Window.  This
          tells you how many directories you have pushed onto the directory
          stack.

     Pop &amp; cd
          This sub-command moves you  to the last directory you pushed onto
          the  directory  stack.   It  also  removes  that  directory  from
          directory  stack.  When  you pop a  directory from  the directory
          stack, vsh decrements the number  next to the entry Dir. Stack in
          the Status Window.  This tells you how many directories remain on
          the directory stack.

          Note that directories are  popped in the order opposite from that
          in which they were entered.  For example, if you pushed directory
          /usr/bin/sys   onto   the   directory   stack,   then   directory
          /usr/lib/mail,  then  /bin,  invoking  the Pop  sub-command  will
          return you to  directory /bin, then to /usr/lib/mail, and finally
          to directory /usr/include/sys.

     Switch
          This command switches the  current directory and the top entry in
          the directory stack.

     Copy This copies  the highlighted directory  plus all of  its contents
          into another directory whose  name you type into a pop-up window.
          It behaves much like the command cpdir.

     Delete
          This deletes  the highlighted directory.   It does not  work with
          files.  If the directory has files in it, vsh will prompt you and
          ask if you want the directory to vanish.  If you answer `Y', then
          vsh removes it, files and all  -- just as if you had executed the
          command rm -rf.

          vsh will not delete a directory that you do not own.

     Rename
          This sub-command renames  the highlighted directory.  vsh opens a
          pop-up  window  and prompts  you  to  type the  new  name of  the
          directory.   Press <Esc> to  abort this  sub-command.  Note
          that you  can rename  only directories  that you own.   This sub-
          command does not work with files.

     Create
          This  sub-command   creates  a  new  directory   in  the  current
          directory.  vsh  prompts you for  the name of  the new directory,
          and then  creates it.  Note that you can  create a directory only
          if you have write permission in the current directory.

     Access
          This  lets you  reset the  access  permission on  the highlighted
          directory.   This  is   the  directory  equivalent  of  the  File
          command's  Access sub-command.

     Owner
          This  lets  you  reset  the  user  and group  that  own  a  given
          directory.   This  is   the  directory  equivalent  of  the  File
          command's Owner  sub-command.  Note that only  the superuser root
          can run this command.

     Read new
          This tells vsh to  re-read the current directory.  vsh copies the
          contents of  the current directory  into memory for  its own use;
          thus, if other  people manipulated the directory and its contents
          after vsh read its contents, what you see in the File Window will
          not reflect the true state  of affairs in that directory.  If you
          are working with a directory  that is being manipulated by one or
          more other  people, you  should issue  this command from  time to
          time, to  ensure that you  are working with an  accurate image of
          the directory's contents.

     Switch CWD
          This  command switches  the  current working  directory with  the
          destination directory.

     Switch TOS
          This switches the destination directory with the directory on top
          of the stack.

     Info This  is the  same as  the File info  sub-command under  the File
          command, described above.

Options
     Pressing  O invokes  the Options  command.   Its sub-commands  let you
     perform common system tasks.  The following discusses each sub-command
     in detail:

     Shell
          This command  invokes an interactive  shell.  When you  exit from
          the shell (either by  typing exit or <ctrl-D>), you will be
          returned to vsh.

          By  default,  vsh invokes  the  Bourne shell  sh;  to change  the
          default  shell,  use  the  Shell  sub-command under  the  Install
          command, which is described below.

     Lock terminal
          This command  locks your terminal.  When  the terminal is locked,
          no command can entered into it; this lets you walk away from your
          terminal briefly without worrying whether anyone (e.g., your cat)
          will do anything untoward under your login.  The terminal remains
          locked until you retype the secret password that you entered when
          you invoked this sub-command

          When you  invoke this sub-command,  a pop-up window  appears with
          the following:

              Lock Enter Password


          vsh prints  a `#' to echo  each character that you  type.  If you
          wish to  abort the Lock sub-command,  press <Esc>. When you
          have finished  entering your password, press  <return>.  When you
          have entered the password, the following window appears:

              This Terminal is locked!

              Enter Password to unlock
              or hit return to logoff


          Type  the password  to return  to vsh. If  you (or  someone else)
          presses <return>, you will be logged out of COHERENT.

     Messages
          This sub-command lets  you receive or ignore messages.  A message
          can be sent to your  terminal by another user or another process;
          for example,  the mail command  may send a prompt  to your screen
          when new mail is received.

          When you invoke this sub-command, vsh displays the following pop-
          up window:


              Do you want to receive messages ?

                     Yes         No


          Use the -> and <- keys  to select the option you want, then press
          <return>.  When  you change your message  status, the information
          in the  Status Window  changes.  For  example, when you  turn off
          messaging,  the following  appears at  the  bottom of  the Status
          Window:

              You can't get messages

          For information on  how COHERENT sends messages to your terminal,
          see the Lexicon entry for  mesg. Also, see the description of the
          Status Window, below.

     Online manual
          This lets you select  an entry from the COHERENT system's on-line
          manual pages.  When you invoke this sub-command, vsh displays the
          following pop-up window:

              Enter topic, chapter is optional :

              Topic:

              Chapter:


          Type  the title  of  the Lexicon  entry that  interests you;  for
          example, to see the Lexicon  entry for the command vsh, enter vsh
          in the  Topic slot,  then type  <return>.  Do not  enter anything
          into  the  Chapter slot;  this  does not  apply  to the  COHERENT
          system.  You  will see on your screen the  Lexicon entry that you
          are now  reading.  If you change your  mind, press <Esc> to
          abort this command.

          Note that  if you did not install or  uncompress the manual pages
          when you  installed your  COHERENT system, this  sub-command will
          not work.  For more information on the COHERENT manual pages, see
          the Lexicon entries for the commands help and man.

     System news
          Display news about your current system.  By default, this invokes
          the COHERENT command msgs.

     Internet news
          Invoke  a reader  for Internet  news.   By default,  this command
          invokes rn, should you have it installed.

     Electronic mail
          Invoke your mail reader.  By default, this invokes mail.

Install
     Pressing  I invokes  the Install  command.   Its sub-commands  let you
     modify some  of vsh's  default behaviors;  in particular, it  lets you
     program your  function keys to execute some tasks  you select with one
     keystroke.  The following discusses each sub-command in detail:

     Display
          This  command lets  you  customize appearance  of  vsh. When  you
          invoke  this  sub-command,  vsh  displays  the  following  pop-up
          window:

              Display Attributes

              Menubar
              Menu color
              Menu attribute
              Dialog box


          The entry  Menubar lets you select the  display attribute for the
          menu bar, which can be one of bold, underline, or reverse.

          The entry  Menu color lets you  set the menu color,  which can be
          either normal  or reverse. (This may vary,  depending on the type
          of terminal you are using.)

          The entry  Menu attribute lets you set  the display attribute for
          pulldown menus,  which can  be one  of bold, underline,  bold, or
          normal.

          Finally, the entry Dialog  box lets you set the display attribute
          for dialogue boxes, which can be one of bold, underline, or both.

          The best  way to see what  these commands do is  to try them out.
          As  mentioned  above,  the behavior  may  change  from device  to
          device, depending upon the type of terminal that you are using.

     Function keys
          This lets  you ``program'' up  to nine function keys,  so you can
          invoke selected commands easily.  Each user can have her own list
          of programmed function keys.

          When  you invoke  this  sub-command, vsh  displays the  following
          drop-down menu:

              Function keys

              Function key 1
              Function key 2
                 ...
              Function key 9


          Press 1  through 9 to program the  corresponding function key (or
          use the  ^ and v keys  to move then highlighting  bar, then press
          <return>).  vsh asks you to  enter the label for the function key
          and the  command you want that function key  to invoke.  When you
          have  finished, the  new label will  appear in  the corresponding
          function-key tag at the bottom  of the screen; and when you press
          that function key, vsh executes the corresponding command.

          For  example, to  make the  game chase one  of your  function key
          entries, do  the following: First, press I  to invoke the Install
          command.  The  press k to  invoke the Function  keys sub-command.
          When  the  function-keys drop-down  menu  appears,  press 2,  for
          function-key F2.   When the label pop-window  appears, type chase
          into the  first slot, which holds the  label Press <Tab> to
          jump to the second slot, which holds the command to execute, then
          type /usr/games/chase. When you have done typing, press <return>.

          As you  can see, the  F2 stub at  the bottom of  the screen shows
          chase; and  when you press  F2, vsh launches you  into chase. You
          can program the first nine function keys to work in the same way.

          You can embed the token %F as a placeholder for the current file.
          For example,  to count the  number of lines in  the current file,
          put the following command into a function-key definition:

              wc -l %F

          Because some computers still do not have function keys (e.g., the
          NeXT  machine),  you can  also  use the  number  keys to  execute
          commands installed on the function keys.

          By the way, for information on the highly amusing game chase, see
          its entry in the Lexicon.

     Shell
          This sub-command  lets you  set the  default shell that  vsh runs
          when you  invoke its  Shell command.   When you invoke  this sub-
          command, vsh displays the following pop-up menu:

              Enter command to run a shell
              (Coherent default is '/bin/sh')

                  /bin/sh


          Type the  shell that  you want,  either /bin/sh or  /bin/ksh, and
          press <return>.  (You can  enter another program if you like, but
          you may  get some strange results if you  do.) For information on
          each shell, see its entry in the Lexicon.

     Editor
          This lets you set the editor that vsh invokes when you select the
          Edit  sub-command under  the File command.   When you  invoke the
          Editor sub-command, vsh displays the following pop-up window:

              Enter command to run an editor
              (Coherent default is 'vi')

                  vi


          Type the editor  that you want, one of ed,  me, or vi; then press
          <return>.  For  information on each editor, see  its entry in the
          Lexicon.

     Print spooler
          This lets  you set the  spooler that vsh invokes  when you select
          the Print  sub-command under the  File command.  When  you invoke
          the Print spooler  sub-command, vsh displays the following pop-up
          window:

              Enter command to run a print-spooler
              (Coherent default is 'lpr -B')

                  lpr -B


          Enter the  spooler that  you want.   For more information  on the
          spooling commands available under COHERENT, see the Lexicon entry
          printer.

          Beginning with release 2.7 of vsh, this feature works with pipes.
          vsh understands  that the token  %F represents the  current file.
          For  example, if  you have  a PostScript  printer, you  will want
          every file  to be processed by the command  prps before you print
          it.  Thus, enter the command:

              prps %F | hpr -B

          This  tells vsh  to filter  each file through  prps and  pipe the
          output to the laser-printer spooler hpr.

          Some of  this functionality may  not be necessary  under COHERENT
          release 4.2, which implements the System-V lp print spooler.  See
          the Lexicon article printer for details.

     File viewer
          This lets you set the viewer that vsh invokes when you select the
          View  sub-command under  the File command.   When you  invoke the
          File  viewer  sub-command,  vsh  displays  the  following  pop-up
          window:

              Enter command to run a file view utility
              (Coherent default is 'more')

                  more


          Enter one of more or  scat. For information on how these commands
          differ, see their entries in the Lexicon.

     File action
          As noted above,  vsh has a list of default  actions that it takes
          when you  select a  file of  a given type.   For example,  if you
          invoke the File command, move the highlighting bar to a file with
          the suffix  .c and press  <return>, vsh by default  invokes the C
          compiler cc to compile that file.

          vsh  stores  in  the file  $HOME/.vsh  the  list  of its  default
          actions.  The  File actions sub-command invokes  a special editor
          so you can edit this list.

          When you  invoke this option,  vsh displays the  following pop-up
          window:


              Edit actions list
              Configure action


          Use the ^ and v keys to move the highlighting bar to the item you
          want; then press <return>.

          When you select  Edit  actions list, vsh displays a pop-up window
          that  contains all  of the  default actions.   The syntax  of the
          default actions is described above.  Use the ^ and v keys to move
          the highlighting  bar to the  action you wish to  edit.  To erase
          the current line, press <ctrl-D>; to open a new line, press
          <ctrl-I>.

          To modify the line that is currently highlighted, press <return>.
          When  you do  so, the  highlighting bar  disappears and  a cursor
          appears.  Use the <- and ->  keys to move the cursor to the point
          you wish  to change;  typing inserts  new text into  the command,
          whereas  pressing <Backspace> erases  text.  When  you have
          finished modifying  the current  line, press <return>.   To abort
          modifying the current line, press <Esc>.

          When  you   have  finished  modifying  the   action  list,  press
          <Esc>. vsh  records your changes into  file $HOME/.vsh, and
          returns you to the File window.

          When  you select  the  option Configure  action,  vsh displays  a
          window with the prompt

              Show file actions before execution ?

          The cursor is  under the response y, for yes.  If you accept this
          option,  vsh will  prompt  you for  your  confirmation before  it
          performs a  default action.  If  you want vsh simply  to go ahead
          and perform  its default without asking  for your approval, press
          the -> key to move the  cursor to the option n, for no, and press
          <return>.

     Sys. news reader
          Tell  vsh what  system  news program  you  want it  to invoke  by
          default.

     Internet news
          Tell  vsh what  Internet news  reader  you want  it to  invoke by
          default.

     Electronic mail
          Tell vsh what mail reader you want it to invoke by default.

Command
     The command  Command lets  you send a  command directly to  a COHERENT
     shell.   This  lets  you  invoke  commands  that  ordinarily  are  not
     available through vsh.

     Suppose, for example, that you decided you wanted to play a session of
     the game tetris, and that you have not yet programmed tetris as one of
     your function  keys.  Press C to invoke Command.  vsh moves the cursor
     moves to  the bottom of the  screen, and erases the  row of boxes that
     describe the function keys.  You can now type the command you want, in
     this case  /usr/games/tetris. To run  the command, press  <return>; to
     abort entering a command and return to vsh, type <Esc>.

     When you  press <return>,  vsh runs the  command you typed.   When you
     have finished  playing tetris and have exited from  it, vsh clears the
     screen and displays the message:

         Hit any key to continue ...

     When you  press a key, vsh  redraws itself on your  screen and returns
     the cursor to the File Window.

     (By the  way, the COHERENT version  of tetris is available  as part of
     COHware volumes  2 and 3.   For information on  obtaining COHware, see
     the release notes that came with your copy of COHERENT.)

     Command  remembers the  last  40 commands  that you  have issued.   To
     invoke a command that you previous issued through Command, press the ^
     key.  The last command you issued will appear in the command slot.  If
     you continue  to press the  ^ key, others commands  appear, in reverse
     order from  when you issued  them.  If you overshoot  the command that
     you want  to re-run,  press the v  key to walk  back down the  list of
     previously  issued  commands.  When  you  find  the previously  issued
     command that  you wish to rerun,  just press <return> and  vsh runs it
     again.

     You can  also edit a  previously issued command.   The following gives
     lists the available editing commands:

          <-        Move the cursor one character to the left
          ->        Move the cursor one character to the right
          <del>Delete the character to the left
          <backspace>Delete the character to the left
          <ctrl-D>Delete the character over the cursor
          <ctrl-P>Go to last character of the command
          <ctrl-N>Go to first character of the command

     A command  can use  environmental variables,  such as $HOME.  vsh will
     expand  all  environmental  variables  correctly  before it  tries  to
     execute the command.

     You can also embed the following tokens in a command:

         %F  Represent the currently highlighted file
         %T  Represent all tagged files
         %D  Represent the destination directory

     For example, the command

         cp %T %D

     copies all tagged files into the destination directory.

Refresh
     The command Refresh redraws the  screen.  It does no other work.  This
     is  helpful if  your screen  has become jumbled  or scrambled  for any
     reason -- such as a message  being written onto your screen by another
     user.

     To  invoke this  command, type  R. vsh pauses  very briefly,  then the
     screen flickers  as vsh redraws.  If the screen  had been confused for
     any reason, invoking this  command should restore to its proper state.
     If you  need to  refresh the  screen while a  pop-up menu or  a pop-up
     window is active, press <cntl-L>.

Exit The command  Exit exits you  from vsh. To  exit from vsh,  press E. In
     response, vsh pops the following window onto your screen:

         Do you really want to quit?

                Yes       No


     The  window is  in reverse  video,  for emphasis.   The option  Yes is
     underlined, to show  that it is the default choice.   If you really do
     wish to exit, press <return>; and vsh returns to the COHERENT shell.

     If you changed your mind, however,  and do not wish to exit, press the
     ->  key to  change the  option; this will  shift the  underlining from
     option Yes to  option No. Pressing enter at this  point selects the No
     option; vsh in response removes  the pop-up window from the screen and
     returns you to the File Window.

     If you  change your mind  again, though, and  really do wish  to exit,
     then press the <- key.  The underlining shifts back to the Yes option;
     and when you press <return> you exit from vsh and return to the shell.

Status Window

The Status Window is the lower window on the right side of the screen.  The
cursor  never enters  this window;  rather,  this window  gives information
about how  vsh is functioning, and  in particular about the  files that are
currently displayed in the File Window.

The Status Window contains the following entries:

Files
     This gives the number of files  being shown in File Window.  Note that
     this is  all files that can  be scrolled through that  window, not the
     files that are shown in that window at this moment.

File size
     This gives the total size, in bytes, of all files available through in
     the File Window.

Files tagged
     This  gives  the  number of  files  that  you  have  tagged.  See  the
     description of the File command, above, for details.

File size ta.
     This gives the total size of all tagged files.  See the description of
     the File command, above, for details.

Dir. Stack
     This  gives the  number of  directories that  currently reside  on the
     directory stack.   As noted above,  you can ``push''  directories onto
     the directory stack or ``pop'' them from it.  By doing so, you have an
     easy way  to jump about from one directory  to another, without having
     to type directory names  repeatedly.  See the above description of the
     Directory command for more details.

     You can have a maximum of ten directories on the stack.

Mail This line indicates whether you have  mail waiting to be read.  If you
     don't, this line will say

         None

     whereas if you do, the line will say

         Avail

     and flash at you.  If new mail arrives, vsh flashes

         New

     in that slot.

mailbox
     This line  gives the name  of your mailbox  -- that is,  the file that
     mail reads.

messages
     This  indicates whether  your terminal can  receive messages  -- e.g.,
     whether a  message will  pop up  on your screen  if someone  wishes to
     communicate with  you via the write command.   For more information on
     how to  change the  message status of  your terminal, see  the Lexicon
     entry for the command mesg.

Function Keys

The bottom of the screen show nine small boxes in reverse video.  These are
labelled F1 through F9. If you  have defined the key using the Function Key
command, vsh displays the box the tag that you gave that key.

For example, in  our above example we set key  F1 to run the command ps -a,
and gave  it the tag ps.  At the bottom of the screen,  the box labelled F1
should show ps.

For more details, see the description of the Function Key command, above.

Configuration File

vsh reads the file $HOME/.vsh to configure itself.

A typical .vsh file reads as follows:

    cwd=/v/fwb
    shell=/bin/ksh
    editor=me
    print-spooler=hpr -B
    view=more
    make=make
    me-disp-attr=reverse
    pd-disp-color=normal
    pd-disp-attr=bold
    se-disp-attr=underline
    pfkey1=  mail mail
    pfkey9=tetris /usr/games/tetris
    cmd=
        tetris
        tetris
        echo foo

cwd  points to  the current  working directory, that  is, the  directory in
which you have last worked with vsh. vsh returns you to that directory when
you next invoke the shell.

shell, editor, print-spooler, view, and make give, respectively, the shell,
editor, print-spooler, viewer, and  make utility that you selected with the
Install command.   If you change one  of these values, the  behavior of vsh
changes to reflect the change.  For example, if you change the line

    editor=me

to

    editor=ed

then vsh  will invoke ed the  next time you request  the File command' Edit
sub-command.

me-disp-attr,  pd-disp-color,  pd-disp-attr,   and  se-disp-attr  give  the
display features for, respectively, the  menu bar, the menu color, the menu
attribute, and the dialogue box.

The lines pfkey1 through pfkey9 set the behavior of the function keys.  The
first seven characters after the equal  sign `=' give the text that appears
in stub  at the  bottom of  the screen.  Everything  after the  first seven
characters  describes  the  command to  be  executed  when  you press  that
function key.

The  text that  follows the  line  cmd= lists  the commands  that you  have
executed with the command Command. You  can embed the following tokens in a
command:

    %F  Represent the currently highlighted file
    %T  Represent all tagged files
    %D  Represent the destination directory

These are used just as they are with the Command command, described above.

Command-line Options

vsh recognizes the following options:

-ddirectory
   Enter vsh and begin to work in directory. If no directory is named, then
   begin  work in  the current  directory vsh normally  begins in  the last
   directory used in your last vsh session.

-e Do  not  use  the  graphic  character  set.  This  option  coarsens  the
   appearance  of vsh,  but gives  it  a fighting  chance to  run on  cheap
   terminals that do not implement  the full alternate character set of the
   DEC VT-100 terminal.

-i Restrict the  user's ability to run the Install  command.  In this mode,
   vsh can be  used as a restricted shell, especially  if it is embedded in
   /etc/passwd.

-r Restrict the shell.  This option turns off the following:

       -> The command Command
       -> No interactive shell can be called from the Options menu
       -> Most options from the Directory menu
       -> Most options from the Install menu

   This lets the system administrator restrict the activity of users fairly
   strongly.

-t This command-line option tells  vsh to assume the entire VT-100 mapping.
   This is  useful with terminals whose  system definitions are incomplete,
   or the alternate character set is ignored.

Files

$HOME/.vsh -- Configuration file

See Also

commands,
ksh,
sh,
terminfo,
ttytype,
Using COHERENT

Notes

vsh was written by Udo Munk:

 --------------------------
 [At this point, this document displays an image from an encapsulated
  PostScript file.  Unfortuately, this cannot be displayed under nroff.
  Our apologies!]
 --------------------------


To reach Udo, send e-mail to udo@mwc.com.