File:  [MW Coherent from dump] / coherent / g / usr / bin / vsh / doc / vsh.coh.man.co
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed May 29 04:56:35 2019 UTC (7 years ago) by root
Branches: MarkWilliams, MAIN
CVS tags: relic, HEAD
coherent

vsh -- Command	(last revised: February	23, 1993)

vsh

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 in a
bizarre	manner.	 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 entry for	terminal.

To ensure that TERM set	correctly, may wish to embed the command ttytype in
your system's  /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 the following screen:

As you can see,	the screen is divided five 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 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 fourth  window, the System Window,  is the upper	window	on the left
   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.  You will never enter this	window.

-> The last window, the	Status Window, gives information about the work	you
   have	performed under	vsh. Again, you	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
<Enter>	(sometimes also	labeled	 <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  <Enter>,  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  display (that is, the parent
directory of letters),	use the	arrow keys to move  the	highlighting bar to
the entry [..];	then press <Enter>. 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/.udt; it looks like:
***um               ^^^^ release 2.8 now uses $HOME/.vsh

       [Mm]akefile:make
       *.Z:zcat	%F

***um
The default action list for release 2.8 is:
	[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
***um

   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,  you must use a  text editor to
   edit	file $HOME/.udt.

***um
Do not edit $HOME/.vsh from inside vsh, the file is written back from
memory if vsh terminates! An editor for the file action list is under
development.
***um

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  left	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 left	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:
    Line:
    Login:
    UID:
    GID:
    Date:
    Time:

The following discusses	each entry in detail:

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  com 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 second  window from the top, 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.  Note that the following
displays the  vertically for convenience;  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	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.

***um
From a discussion with Vladimir I think the following information should
be added here:
The reaction on the ESC key is delayed by one secound. The curses function
wgetch(), which is used to read from the keyboard, needs this delay to
differ between the ESC key and the other function keys, which all starts
with a ESC.
***um

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
     <Enter>.

     The following discusses each sub-command in detail:

     Copy This sub-command lets	you make a copy	of a file.  It opens a pop-
	  up window that  shows	the old	file name and  requests	a new name;
	  it then copies  the old file into the	new  one that you name.	 If
	  you type the name of an  existing file, vsh prompts you before it
	  overwrites that file.	 It repeats this procedure for every tagged
	  file.

***um
Changed in release 2.8.
A: No files tagged:
   vsh opens a pop-up window that request a filename and/or pathname.
   One may enter one or both of them and the following will happen:
   1. Filename only: 
      vsh coppies the file into the current directory with the new name.
   2. Path only:
      vsh coppies the file with the same name into the path.
   3. Both:
      vsh coppies the file into the given path with the given name.
B: With files tagged:
   vsh opens a pop-up window that requests a pathname. vsh coppies
   all tagged files with their name to the given path.
***um

	  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, then
	  moves	all tagged files into it.  (If no files	are tagged, then it
	  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.

	  Note that this command will not  copy	a file for which you do	not
	  have read permission,	or copy	 a file	into a directory into which
	  you do not have write	permission;  nor will it copy 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 <Enter>.

	  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
***um                 ^^^ this does not work, should x also work?
	  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	does not apply	a filter to a file; for	example, 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 Command to print a file on a specialized printer.
	  It's a little	more difficult,	but it works.

     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.

***um
Here the Select function is missing, which allows to select files to be
tagged with some sort of regular expressions.
***um

     File type
	  This 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.

     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 & 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 copy 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.

     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  <Enter>. 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 <Enter>, 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
	  <Enter>. 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	<Enter>. 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.

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
	  <Enter>). 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 <Enter>.

	  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	<Enter>.  (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
	  <Enter>. 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.1, 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.

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 <Enter>;	to abort entering a
command	and return to vsh, type	<Esc>.

When you  press	<Enter>,  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	 also 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 <Enter> and vsh runs it again.

Pressing <Home>	moves to the first  command in the command list	-- that	is,
the command you	issued first.  Pressing	 <End> moves to	the last command in
the list  -- that is, the  command you issued most  recently.  You can also

***um
No, Home and End moves to first/last character of the current command.
So they have the same function as PageUp anf PageDown. I think I should
change this in the next release, what do you think?
***um

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

Finally,  if you  embed	the  token  %F in  a command,  vsh substitutes	the
currently highlighted file for it.

***um
Also environment variables like $HOME may be used, they will be expanded.
Also the cd command may be typed here. Do not try to use ; as a separator
for another command, that does not work now with cd. All other commands
may be bundled exactely how the shells can do this. This is because a
shell is called to execute the command line entered.
***um

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.

***um
If you have a need for refreshing the screen while a pop-up menu or
a pop-up window is active, you can do so all the time with <cntl-L>.
***um

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 <Enter>; 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 <Enter> 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 appears as follows:

    Files:
    File size:
    Files tagged:
    File size ta.:
    Dir. Stack:
    Mail:
    mailbox
    You	can get	messages

The following discusses	each entry in detail.

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/.udt to  configure itself.  If you  wish, you	can
use a text editor to edit this file, and so modify the behavior	of vsh.

***um Not from inside vsh!!!

A typical .udt 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.

Command-line Options
vsh recognizes the following options:

-d Enter vsh  and begin	in the current directory.   Normally, vsh begins in
   the last directory used in your last	vsh session.
***um An additional directory name may be given to start from.

-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/.udt -- Configuration file

See Also
commands, ksh, sh, terminfo, ttytype

Notes
vsh was	written	by Udo Munk.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.