|
|
1.1 root 1: vsh -- Command (last revised: February 23, 1993)
2:
3: vsh
4:
5: vsh is the COHERENT system's visual shell. With it, users can use arrow
6: keys or simple keystrokes to perform tasks under the COHERENT, such as
7: change directories, edit files, and execute programs. Each user can
8: program a bank of up to nine function keys to perform complex tasks with a
9: single keystroke. With vsh, a naive user can access much of the power of
10: the COHERENT system without having to learn the details of sh or ksh.
11:
12: Unlike X or other windowing systems, vsh works on a character-based
13: terminal and requires only a modest amount of memory. It does not require
14: a mouse.
15:
16: Graphics Interface
17: vsh uses the curses library and terminfo descriptions. To use vsh, you
18: must have a terminfo description installed for the device upon which you
19: wish to run it, and you must set the environmental variable TERM to point
20: correctly to that description. For example, to run vsh from your console,
21: you should set TERM to ansipc; while to run it from a PC that is plugged
22: into a serial port, you should set TERM to vt100. You must have a terminfo
23: description for the device to which you set TERM, or vsh will behave in a
24: bizarre manner. For more information on devices and how to set them, see
25: the Lexicon entries for TERM and terminfo. For more information on
26: terminals in general, see the entry for terminal.
27:
28: To ensure that TERM set correctly, may wish to embed the command ttytype in
29: your system's /etc/profile. For more details, see the Lexicon entry for
30: ttytype.
31:
32: If you have a non-standard terminal or have trouble displaying vsh, try
33: invoking it with the options -e or -t. All of vsh's command-line options
34: are described below.
35:
36: Main Screen
37: When you invoke vsh, you see the following screen:
38:
39: As you can see, the screen is divided five sections, or windows:
40:
41: -> The first window, the Command Window, is the narrow window that runs
42: across the top of the screen. This window lists the commands that vsh
43: can perform. You will enter this window frequently as you work with
44: vsh.
45:
46: -> The second window, the Current Directory window, names the directory
47: that you are currently in.
48:
49: -> The third window, the File Window, extends down the left side of the
50: screen. It lists the contents of the current directory. You will also
51: work frequently in this window.
52:
53: -> The fourth window, the System Window, is the upper window on the left
54: side of the screen. It gives information about the system, that is, who
55: is running vsh, the device she is running it on, and the current date
56: and time. You will never enter this window.
57:
58: -> The last window, the Status Window, gives information about the work you
59: have performed under vsh. Again, you will never enter this window.
60:
61: Across the bottom of the screen are nine ``stubs,'' one each for function
62: keys one through nine. The stub's text indicates the command that vsh
63: executes when you press that key.
64:
65: The following sections discuss each window in detail.
66:
67: File Window
68: The file window lists all of the files and directories within the current
69: directory. This is the default window for vsh; the cursor ordinarily rests
70: in this window, and you will do most of your work in it.
71:
72: The leftmost column in the File Window gives the name of each file and
73: directory. Directories are given at the top of the list; they are enclosed
74: within brackets `[ ]'. The other columns give, respectively the time the
75: file or directory was last updated; the date it was last updated; and its
76: permissions. For information on how to interpret the permissions string,
77: see the Lexicon entry for the command ls.
78:
79: The top listing in the File Window is always [..], which represents the
80: current directory's parent directory.
81:
82: The top listing in this list is highlighted by being shown in reverse
83: video. To move the highlighting bar up and down the list, use the arrow
84: keys. If you press the arrow keys on your keyboard's number pad, be sure
85: to turn the <NumLock> key off, or the keys will not work as you expect. If
86: you press the v key, the bar shifts down one row on the list. Pressing the
87: ^ key moves the bar up one row.
88:
89: You can page up or page down by pressing, respectively, the keys <PgUp> and
90: <PgDn>. The key <Home> moves the cursor to the top of the list, and <End>
91: moves it to the bottom. If your terminal does not implement these keys,
92: you can use the following control characters:
93:
94: <ctrl-N> Next page (like <PgDn>)
95: <ctrl-P> Previous page (like <PgUp>)
96: <ctrl-A> Beginning (top) of list (like <Home>)
97: <ctrl-E> End (bottom) of list (like <End>)
98:
99: Note that if the list of files and directories is too large to fit into the
100: window, moving the bar to the bottom of the window and pressing v will
101: scroll the list. If you press the <End> key, the row moves to the last row
102: in the list; and if you press <Home>, it moves to the top of the list.
103:
104: A scroll bar runs down the right side of the File Window. As you scroll up
105: and down this window, the scroll bar moves. Note that the position of the
106: scroll bar is proportional to the highlighting bar's position in relation
107: to the entire list of files, not just to its current position within the
108: File Window. This gives you an easy way to see just where you are in the
109: entire file list.
110:
111: If you position the highlighting bar over the name of a directory and press
112: <Enter> (sometimes also labeled <Return>), vsh names that directory in the
113: Current Directory Window, and displays its contents in the File Window.
114: For example, if you position the highlighting bar over the entry for
115: directory [letters] and press <Enter>, vsh displays the contents of
116: directory letters in the File Window. (If you are familiar with the Bourne
117: or Korn shell, this has the same effect as typing the command cd letters.)
118: To return to the directory you had just been display (that is, the parent
119: directory of letters), use the arrow keys to move the highlighting bar to
120: the entry [..]; then press <Enter>. vsh changes the contents of the Current
121: Directory Window, and in the File Window erases the contents of letters and
122: displays the contents of its parent directory.
123:
124: If you press <Return> while a file is highlighted instead of a directory,
125: vsh does the following:
126:
127: 1. If the file is executable, vsh executes it.
128:
129: 2. If the file matches a pattern from the file-action list, vsh executes
130: the action from the list with the file as input. The file-action list
131: is in file $HOME/.udt; it looks like:
132: ***um ^^^^ release 2.8 now uses $HOME/.vsh
133:
134: [Mm]akefile:make
135: *.Z:zcat %F
136:
137: ***um
138: The default action list for release 2.8 is:
139: [Mm]akefile:make
140: *.mk:make -f %F
141: *.sh:sh %F
142: *.c:cc -c -O %F
143: *.sc:sc %F
144: *.a:ar tv %F | more
145: *.[1-9]:nroff -man %F | more
146: *.tar.F:fcat %F | tar xvf -
147: *.F:fcat %F | more
148: *.tar.Z:zcat %F | tar xvf -
149: *.Z:zcat %F | more
150: ***um
151:
152: vsh recognizes most common wildcard characters; for a table of these and
153: their meaning, see the Lexicon entries for wildcards. The token %F
154: stands for the file that is currently highlighted. For example, in the
155: above example the entry *.Z:zcat %F means that if you select a file with
156: the suffix .Z (which usually means that a file has been compressed), it
157: passes that file to zcat to uncompress and display it. vsh defines many
158: defaults for you when it creates this file, which you can use as a
159: model. To change the file-action list, you must use a text editor to
160: edit file $HOME/.udt.
161:
162: ***um
163: Do not edit $HOME/.vsh from inside vsh, the file is written back from
164: memory if vsh terminates! An editor for the file action list is under
165: development.
166: ***um
167:
168: 3. If the file appears to be ASCII vsh displays it with the default viewer.
169:
170: While vsh is working, it displays a large letter `X' in reverse video in
171: the lower left corner of the screen. This shows that vsh is doing some
172: internal task. vsh cannot accept any commands while the `X' is displayed,
173: so please be patient.
174:
175: Also, note that vsh cannot handle more than 1,000 files in any given
176: directory. If a directory contains more than 1,000 files, only the first
177: thousand will be available for use.
178:
179: System Window
180: The system window is the upper of the two windows on the left side of the
181: screen. The cursor never enters this window; rather, this window simply
182: displays information about your COHERENT system, and how you are currently
183: using it. It contains the following entries:
184:
185: System:
186: Line:
187: Login:
188: UID:
189: GID:
190: Date:
191: Time:
192:
193: The following discusses each entry in detail:
194:
195: System:
196: This gives the name of your system, as you (or your COHERENT system
197: administrator) has set it in file /etc/uucpname. See the Lexicon's
198: entry for uucpname for more details on proper naming conventions for
199: COHERENT systems.
200:
201: Line:
202: This gives the device by which you are accessing your COHERENT system.
203: If you are working on your system's console device, then you should
204: see console on this line; whereas if you are accessing your COHERENT
205: via a PC plugged into serial port com1l, you should see com1l here.
206: If you are using virtual consoles, the line is shown as mono[0-8] or
207: color[0-8]. See the Lexicon entries for console and com for more
208: information about the devices through which you can access a COHERENT
209: system.
210:
211: Login:
212: This gives the name under which you logged into COHERENT. For
213: example, if your login identifier is fred, then you should see fred on
214: this line.
215:
216: UID: This shows your user-identification number (or UID). This is the
217: unique number by which your COHERENT system knows you, as set in file
218: /etc/passwd. For information on the UID and how to set it, see the
219: Lexicon entries for passwd and setuid.
220:
221: GID: This gives the number and name of the user group to which you belong.
222: Users on a COHERENT system can be organized into groups; permissions
223: on files can be set to include the members of your group, but exclude
224: all others. For information on groups, see the Lexicon entries for
225: group and setgid.
226:
227: Date:
228: This gives today's date (or rather, what your COHERENT system thinks
229: today's date is).
230:
231: Time:
232: This gives what your system thinks the current time is. If your
233: system's time is not set correctly, then the time shown here will not
234: be correct. For information on how to set the system time, see the
235: Lexicon entries for the commands ATclock and date.
236:
237: The time can also vary depending upon what time zone your COHERENT
238: system thinks it's located in. For information on timezones and how
239: to set them correctly, see the Lexicon entry for TIMEZONE.
240:
241: Command Window
242: The Command Window is the second window from the top, and stretches across
243: the width of the screen. This window gives you access to vsh's commands.
244: Some commands in the command window actually open an entire menu of
245: commands, with which you can perform all manner of work.
246:
247: The command window contains the following entries. Note that the following
248: displays the vertically for convenience; the actual window displays them
249: horizontally:
250:
251: File
252: Directory
253: Options
254: Install
255: Command
256: Refresh
257: Exit
258: Help
259:
260: When the cursor is in the File Window (which is the default) and you wish
261: to execute one of the commands in the Command Window, press its initial
262: letter. For example, to execute the Refresh command, press R.
263:
264: Note that the commands on this window are in two groups. A command's
265: behavior differs, depending upon which group it belongs to.
266:
267: The commands File, Directory, Options, and Install display a drop-down menu
268: when you invoke it. That is because they have more than one option
269: available under it. If you do not wish to invoke any of the sub-commands
270: on that menu, you can do either of the following: You can press the <Esc>
271: key, which erases the drop down-menu and returns you to the File Window; or
272: you can press the <- or -> keys, which move you to the command in this
273: group that lies, respectively, to the left or to the right of the current
274: command. For example, suppose that you were in the File Window, and you
275: pressed F, to invoke the File command. vsh would move the cursor into the
276: Command Window, and display the File Command's drop-down window, which
277: displays its sub-commands. If you then pressed the <Esc> key, vsh would
278: return you to the File Window. If you pressed the -> key, vsh would erase
279: the File command's drop-down window and display, instead, the drop-down
280: window for the Directory command. If, however, you pressed the <- key, vsh
281: would erase the File command's drop-down window and display, instead, the
282: drop-down window for the Help command. As you can see, vsh ``wraps-
283: around'' the cursor -- it considers the command at the far right to be to
284: the left of the command to the far left left, and vice versa. This concept
285: is a little difficult to grasp when you read about it, but once you try it,
286: it will quickly become clear.
287:
288: ***um
289: From a discussion with Vladimir I think the following information should
290: be added here:
291: The reaction on the ESC key is delayed by one secound. The curses function
292: wgetch(), which is used to read from the keyboard, needs this delay to
293: differ between the ESC key and the other function keys, which all starts
294: with a ESC.
295: ***um
296:
297: The other group of commands are the commands Command, Refresh, Exit, and
298: Help each have only option, so when you invoke one of them, it immediately
299: begins to execute that option. When you access one of these commands
300: through the -> and <- keys, each displays a drop-down menu that shows its
301: one option.
302:
303: The following describes each command in detail.
304:
305: File Pressing F invokes the File command. This displays a drop-down menu
306: that lists a set of sub-commands. These sub-commands let you
307: manipulate files; with them, you can edit a file, create a file,
308: change its permissions, rename it, erase it, print it, or do other
309: common tasks.
310:
311: To invoke a sub-command, you can do either of the following: Press the
312: letter in the sub-command that is underlined (each sub-command has its
313: own unique letter with which you can invoke it); or use the ^ and v
314: keys to move the highlighting bar to that command, and then press
315: <Enter>.
316:
317: The following discusses each sub-command in detail:
318:
319: Copy This sub-command lets you make a copy of a file. It opens a pop-
320: up window that shows the old file name and requests a new name;
321: it then copies the old file into the new one that you name. If
322: you type the name of an existing file, vsh prompts you before it
323: overwrites that file. It repeats this procedure for every tagged
324: file.
325:
326: ***um
327: Changed in release 2.8.
328: A: No files tagged:
329: vsh opens a pop-up window that request a filename and/or pathname.
330: One may enter one or both of them and the following will happen:
331: 1. Filename only:
332: vsh coppies the file into the current directory with the new name.
333: 2. Path only:
334: vsh coppies the file with the same name into the path.
335: 3. Both:
336: vsh coppies the file into the given path with the given name.
337: B: With files tagged:
338: vsh opens a pop-up window that requests a pathname. vsh coppies
339: all tagged files with their name to the given path.
340: ***um
341:
342: Note that this command will not overwrite a file that you do not
343: own; nor will it create a new file in a directory in which you do
344: not have write permission, or copy a file on which you do not
345: have read permission. For more information on copying files
346: under COHERENT, see the Lexicon entry for the command cp.
347:
348: Move This sub-command prompts you for the name of a directory, then
349: moves all tagged files into it. (If no files are tagged, then it
350: moves only the highlighted file. For more information on
351: tagging, see the entry for the sub-command Tag, below.) The files
352: retain their names in the new directory.
353:
354: Note that this command will not copy a file for which you do not
355: have read permission, or copy a file into a directory into which
356: you do not have write permission; nor will it copy a file into a
357: non-existent directory (of course). For details on moving files,
358: see the Lexicon entry for the command mv.
359:
360: Delete
361: This sub-command deletes the tagged files. (If no files are
362: tagged, then it deletes only the highlighted file. For more
363: information on tagging, see the entry for the sub-command Tag,
364: below.) It will prompt you to confirm that you really do want to
365: delete the file or files in question. With regard to the mass
366: deletion of tagged files, this sub-command lets you choose
367: whether to do a mass deletion or delete files one at a time.
368:
369: Note that this sub-command will not delete a file that you do not
370: own. For details on deleting files, see the Lexicon entry for
371: the command rm.
372:
373: Rename
374: This sub-command lets you rename the highlighted file. It opens
375: a pop-up window that shows the current name of the file, and
376: prompts you to type the new name. Press <Esc> to abort this sub-
377: command, or type the new name and press <Enter>.
378:
379: It does not work with directories. It will not let you rename a
380: file that you do not own. For details on renaming a file, see
381: the Lexicon entry for the command mv.
382:
383: Execute
384: This sub-command executes the highlighted file. vsh prompts you
385: to type the arguments you wish to pass this file, then invokes
386: the file with those arguments.
387:
388: Note that vsh will not execute a file for which you do not have
389: execute permission.
390:
391: Access
392: This sub-command lets you change the manner in which every tagged
393: file can be accessed. (If no files are tagged, the default is
394: the highlighted file.) When you invoke it, vsh displays the
395: following pop-up window for each tagged file:
396:
397: Change access f file filename
398:
399: Owner
400: Read [x] Write[x] Execute[ ]
401:
402: Group
403: Read [x] Write[ ] Execute[ ]
404:
405: World
406: Read [x] Write[ ] Execute[ ]
407:
408: Special
409: Set UID [ ] Set GID [ ] Set sticky[ ]
410:
411:
412: An `x' in a field means that that permission is turned on; a
413: blank means that it is turned off. Use the arrow keys to move to
414: the cursor the field whose status you wish to change, then enter
415: a space or `x' to, respectively, turn off or turn on that given
416: ***um ^^^ this does not work, should x also work?
417: permission. To abort this command, press <Esc>.
418:
419: For information what permission fields mean, see the Lexicon
420: entry for ls. Note that you can reset permissions only on the
421: files you own.
422:
423: Owner
424: This lets you change the owner and group that owns each tagged
425: file. If no files are tagged, then this applies only to the
426: highlighted file. When you invoke this sub-command, vsh opens a
427: pop-up window that shows the user and group that own a file: type
428: the name of the user or group you want to own the file. vsh
429: repeats this step for each tagged file. To abort this command,
430: press <Esc>.
431:
432: For details on changing ownership of a file, see the Lexicon
433: entries for the command chown and chgrp. Note that only the
434: superuser root can run this command.
435:
436: Print
437: This passes every tagged file to the print spooler for printing.
438: To change the default print spooler, use the Install command's
439: Print spooler sub-command.
440:
441: Note that vsh does not apply a filter to a file; for example, if
442: you try to use this feature of vsh to print a file on a
443: PostScript printer, the printer will hang. We suggest that you
444: use the command Command to print a file on a specialized printer.
445: It's a little more difficult, but it works.
446:
447: View This sub-command invokes the default viewer to display the
448: contents of every tagged file. If you try to view the contents
449: of a binary file, the results may not be what you expect.
450:
451: Note that vsh will not display a file for which you do not have
452: read permission. To change the default viewer, use the Install
453: command's File viewer sub-command.
454:
455: Edit This sub-command invokes the text editor to edit every tagged
456: file. If no files are tagged, then edit only the highlighted
457: file.
458:
459: The default text editor is vi, which can create problems for
460: persons who do not know how to exit from that editor. For a
461: quick brush-up on vi, see the Lexicon entry for elvis. To change
462: the default text editor, use the Install command's Editor sub-
463: command. Note that COHERENT will not let you edit a file for
464: which you do not have read permission.
465:
466: Edit new
467: This sub-command prompts you to type the name of a file, then
468: invokes the editor for that file. This can be a new file (that
469: is, one that does not yet exist in the current directory), or a
470: file that already exists.
471:
472: Note that if you do try to edit a binary file, you may find
473: yourself running into difficulties.
474:
475: Touch
476: This ``touches'' every tagged file -- that is, it changes the
477: date and time that the file was last modified, just the same as
478: if you had just edited it.
479:
480: Note that you cannot touch a file for which you do not have write
481: permission. For more information on touching files, see the
482: Lexicon entry for the command touch.
483:
484: Tag all
485: This sub-command ``tags'' every file in the current directory.
486: This lets you do mass moves or deletions of files. When you tag
487: a file, vsh updates the entries Files tagged and File size ta. in
488: the Status Window, to reflect the number and total size of the
489: files you have just tagged. It also prints an asterisk next to
490: the tagged file.
491:
492: When the cursor is in the File Window, you can toggle tagging on
493: the highlighted file by pressing the space bar. Note that the
494: highlighted file is implicitly tagged, whether an as asterisk
495: appears next to it or not. For details, see the section on the
496: Status Window, below.
497:
498: Untag all
499: This sub-command untags all files that are tagged in the current
500: directory. As noted above, you can toggle the tagging of the
501: highlighted file by pressing the space bar. This command updates
502: the Status Window to reflect your changes.
503:
504: ***um
505: Here the Select function is missing, which allows to select files to be
506: tagged with some sort of regular expressions.
507: ***um
508:
509: File type
510: This command prints a summary of information about the type of
511: the highlighted file.
512:
513: File info
514: This sub-command opens a pop-up window that displays the
515: following information about the highlighted file or directory:
516:
517: Filename
518: Filetype
519: I-Node
520: Links
521: Owner UID
522: Owner GID
523: access
524: modification
525: status changed
526:
527: Filename is the name of the file. Filetype is its type, e.g.,
528: directory or regular file. I-Node gives the number of this
529: file's i-node; for information on what an i-node is, see its
530: entry in the Lexicon. Links gives the number of links to the
531: file. For information on what a link is, see the Lexicon entries
532: for ln and link(). Owner UID and Owner GID identify the owner and
533: group that own this file. For information on what the UID and
534: GID are, see the Lexicon entries for setuid and setgid. access,
535: modification, and status changed give, respectively, the date and
536: time the file was last accessed, last modified, or last had its
537: status changed.
538:
539: Directory
540: Pressing D invokes the Directory command. This displays a drop-down
541: menu that lists a set of sub-commands. These sub-commands let you
542: manipulate directories; with them, you can create a directory, remove
543: a directory, change permissions, and other common tasks. You can also
544: manipulate a ``directory stack,'' which lets you jump quickly from one
545: directory to another without having to retype its name.
546:
547: The following discusses each sub-command in detail:
548:
549: Change
550: This lets you change the current directory. When you invoke this
551: subcommand, vsh displays the following pop-up window:
552:
553:
554: Enter destination path
555:
556:
557: Type the full path name of the directory you wish to enter. If
558: this directory does not exist, or if you cannot access it, vsh
559: leaves you in the current directory; otherwise, it moves you to
560: the requested directory.
561:
562: Home This moves you to your home directory.
563:
564: User's Home
565: This moves you to the home directory of another user. When you
566: invoke this sub-command, vsh asks you to name the user whose home
567: directory you wish to enter. To abort, press <Esc>. If the user
568: you enter does not exist or if you do not have permission to read
569: her home directory, vsh leaves you in the current directory;
570: otherwise, vsh moves you into that user's home directory.
571:
572: Push The next three sub-commands makes it easy for you to maneuver
573: your way around the COHERENT file system. The work by using what
574: is called a ``directory stack''. In effect, you can tell vsh to
575: remember the directory you are in (this is termed ``pushing'' the
576: directory onto the stack); then, when you have switched to
577: another directory, you can returned to this directory simply by
578: ``popping'' this pushed directory from the directory stack. This
579: lets you move around among directories without having to retype
580: them continually.
581:
582: The Push sub-command pushes the current directory onto the
583: directory stack. When you push a directory, vsh increments the
584: number next to the entry Dir. Stack in the Status Window. This
585: tells you how many directories you have pushed onto the directory
586: stack.
587:
588: Pop & cd
589: This sub-command moves you to the last directory you pushed onto
590: the directory stack. It also removes that directory from
591: directory stack. When you pop a directory from the directory
592: stack, vsh decrements the number next to the entry Dir. Stack in
593: the Status Window. This tells you how many directories remain on
594: the directory stack.
595:
596: Note that directories are popped in the order opposite from that
597: in which they were entered. For example, if you pushed directory
598: /usr/bin/sys onto the directory stack, then directory
599: /usr/lib/mail, then /bin, invoking the Pop sub-command will
600: return you to directory /bin, then to /usr/lib/mail, and finally
601: to directory /usr/include/sys.
602:
603: Switch
604: This command switches the current directory and the top entry in
605: the directory stack.
606:
607: Copy This copy the highlighted directory plus all of its contents into
608: another directory whose name you type into a pop-up window. It
609: behaves much like the command cpdir.
610:
611: Delete
612: This deletes the highlighted directory. It does not work with
613: files. If the directory has files in it, vsh will prompt you and
614: ask if you want the directory to vanish. If you answer `Y', then
615: vsh removes it, files and all -- just as if you had executed the
616: command rm -rf.
617:
618: vsh will not delete a directory that you do not own.
619:
620: Rename
621: This sub-command renames the highlighted directory. vsh opens a
622: pop-up window and prompts you to type the new name of the
623: directory. Press <Esc> to abort this sub-command. Note that you
624: can rename only directories that you own. This sub-command does
625: not work with files.
626:
627: Create
628: This sub-command creates a new directory in the current
629: directory. vsh prompts you for the name of the new directory,
630: and then creates it. Note that you can create a directory only
631: if you have write permission in the current directory.
632:
633: Access
634: This lets you reset the access permission on the highlighted
635: directory. This is the directory equivalent of the File
636: command's Access sub-command.
637:
638: Owner
639: This lets you reset the user and group that own a given
640: directory. This is the directory equivalent of the File
641: command's Owner sub-command. Note that only the superuser root
642: can run this command.
643:
644: Read new
645: This tells vsh to re-read the current directory. vsh copies the
646: contents of the current directory into memory for its own use;
647: thus, if other people manipulated the directory and its contents
648: after vsh read its contents, what you see in the File Window will
649: not reflect the true state of affairs in that directory. If you
650: are working with a directory that is being manipulated by one or
651: more other people, you should issue this command from time to
652: time, to ensure that you are working with an accurate image of
653: the directory's contents.
654:
655: Info This is the same as the File info sub-command under the File
656: command, described above.
657:
658: Options
659: Pressing O invokes the Options command. Its sub-commands let you
660: perform common system tasks The following discusses each sub-command
661: in detail:
662:
663: Shell
664: This command invokes an interactive shell. When you exit from
665: the shell (either by typing exit or <ctrl-D>), you will be
666: returned to vsh.
667:
668: By default, vsh invokes the Bourne shell sh; to change the
669: default shell, use the Shell sub-command under the Install
670: command, which is described below.
671:
672: Lock terminal
673: This command locks your terminal. When the terminal is locked,
674: no command can entered into it; this lets you walk away from your
675: terminal briefly without worrying whether anyone (e.g., your cat)
676: will do anything untoward under your login. The terminal remains
677: locked until you retype the secret password that you entered when
678: you invoked this sub-command
679:
680: When you invoke this sub-command, a pop-up window appears with
681: the following:
682:
683: Lock Enter Password
684:
685: vsh prints a `#' to echo each character that you type. If you
686: wish to abort the Lock sub-command, press <Esc>. When you have
687: finished entering your password, press <Enter>. When you have
688: entered the password, the following window appears:
689:
690: This Terminal is locked!
691:
692: Enter Password to unlock
693: or hit return to logoff
694:
695: Type the password to return to vsh. If you (or someone else)
696: presses <Enter>, you will be logged out of COHERENT.
697:
698: Messages
699: This sub-command lets you receive or ignore messages. A message
700: can be sent to your terminal by another user or another process;
701: for example, the mail command may send a prompt to your screen
702: when new mail is received.
703:
704: When you invoke this sub-command, vsh displays the following pop-
705: up window:
706:
707:
708: Do you want to receive messages ?
709:
710: Yes No
711:
712:
713: Use the -> and <- keys to select the option you want, then press
714: <Enter>. When you change your message status, the information in
715: the Status Window changes. For example, when you turn off
716: messaging, the following appears at the bottom of the Status
717: Window:
718:
719: You can't get messages
720:
721: For information on how COHERENT sends messages to your terminal,
722: see the Lexicon entry for mesg. Also, see the description of the
723: Status Window, below.
724:
725: Online manual
726: This lets you select an entry from the COHERENT system's on-line
727: manual pages. When you invoke this sub-command, vsh displays the
728: following pop-up window:
729:
730: Enter topic, chapter is optional :
731:
732: Topic:
733:
734: Chapter:
735:
736: Type the title of the Lexicon entry that interests you; for
737: example, to see the Lexicon entry for the command vsh, enter vsh
738: in the Topic slot, then type <Enter>. Do not enter anything into
739: the Chapter slot; this does not apply to the COHERENT system.
740: You will see on your screen the Lexicon entry that you are now
741: reading. If you change your mind, press <Esc> to abort this
742: command.
743:
744: Note that if you did not install or uncompress the manual pages
745: when you installed your COHERENT system, this sub-command will
746: not work. For more information on the COHERENT manual pages, see
747: the Lexicon entries for the commands help and man.
748:
749: Install
750: Pressing I invokes the Install command. Its sub-commands let you
751: modify some of vsh's default behaviors; in particular, it lets you
752: program your function keys to execute some tasks you select with one
753: keystroke. The following discusses each sub-command in detail:
754:
755: Display
756: This command lets you customize appearance of vsh. When you
757: invoke this sub-command, vsh displays the following pop-up
758: window:
759:
760: Display Attributes
761:
762: Menubar
763: Menu color
764: Menu attribute
765: Dialog box
766:
767: The entry Menubar lets you select the display attribute for the
768: menu bar, which can be one of bold, underline, or reverse.
769:
770: The entry Menu color lets you set the menu color, which can be
771: either normal or reverse. (This may vary, depending on the type
772: of terminal you are using.)
773:
774: The entry Menu attribute lets you set the display attribute for
775: pulldown menus, which can be one of bold, underline, bold, or
776: normal.
777:
778: Finally, the entry Dialog box lets you set the display attribute
779: for dialogue boxes, which can be one of bold, underline, or both.
780:
781: The best way to see what these commands do is to try them out.
782: As mentioned above, the behavior may change from device to
783: device, depending upon the type of terminal that you are using.
784:
785: Function keys
786: This lets you ``program'' up to nine function keys, so you can
787: invoke selected commands easily. Each user can have her own list
788: of programmed function keys.
789:
790: When you invoke this sub-command, vsh displays the following
791: drop-down menu:
792:
793: Function keys
794:
795: Function key 1
796: Function key 2
797: ...
798: Function key 9
799:
800: Press 1 through 9 to program the corresponding function key (or
801: use the ^ and v keys to move then highlighting bar, then press
802: <Enter>). vsh asks you to enter the label for the function key
803: and the command you want that function key to invoke. When you
804: have finished, the new label will appear in the corresponding
805: function-key tag at the bottom of the screen; and when you press
806: that function key, vsh executes the corresponding command.
807:
808: For example, to make the game chase one of your function key
809: entries, do the following: First, press I to invoke the Install
810: command. The press k to invoke the Function keys sub-command.
811: When the function-keys drop-down menu appears, press 2, for
812: function-key F2. When the label pop-window appears, type chase
813: into the first slot, which holds the label Press <Tab> to jump to
814: the second slot, which holds the command to execute, then type
815: /usr/games/chase. When you have done typing, press <Enter>.
816:
817: As you can see, the F2 stub at the bottom of the screen shows
818: chase; and when you press F2, vsh launches you into chase. You
819: can program the first nine function keys to work in the same way.
820:
821: You can embed the token %F as a placeholder for the current file.
822: For example, to count the number of lines in the current file,
823: put the following command into a function-key definition:
824:
825: wc -l %F
826:
827: Because some computers still do not have function keys (e.g., the
828: NeXT machine), you can also use the number keys to execute
829: commands installed on the function keys.
830:
831: By the way, for information on the highly amusing game chase, see
832: its entry in the Lexicon.
833:
834: Shell
835: This sub-command lets you set the default shell that vsh runs
836: when you invoke its Shell command. When you invoke this sub-
837: command, vsh displays the following pop-up menu:
838:
839: Enter command to run a shell
840: (Coherent default is '/bin/sh')
841:
842: /bin/sh
843:
844: Type the shell that you want, either /bin/sh or /bin/ksh, and
845: press <Enter>. (You can enter another program if you like, but
846: you may get some strange results if you do.) For information on
847: each shell, see its entry in the Lexicon.
848:
849: Editor
850: This lets you set the editor that vsh invokes when you select the
851: Edit sub-command under the File command. When you invoke the
852: Editor sub-command, vsh displays the following pop-up window:
853:
854: Enter command to run an editor
855: (Coherent default is 'vi')
856:
857: vi
858:
859: Type the editor that you want, one of ed, me, or vi; then press
860: <Enter>. For information on each editor, see its entry in the
861: Lexicon.
862:
863: Print spooler
864: This lets you set the spooler that vsh invokes when you select
865: the Print sub-command under the File command. When you invoke
866: the Print spooler sub-command, vsh displays the following pop-up
867: window:
868:
869: Enter command to run a print-spooler
870: (Coherent default is 'lpr -B')
871:
872: lpr -B
873:
874: Enter the spooler that you want. For more information on the
875: spooling commands available under COHERENT, see the Lexicon entry
876: printer.
877:
878: Beginning with release 2.7 of vsh, this feature works with pipes.
879: vsh understands that the token %F represents the current file.
880: For example, if you have a PostScript printer, you will want
881: every file to be processed by the command prps before you print
882: it. Thus, enter the command:
883:
884: prps %F | hpr -B
885:
886: This tells vsh to filter each file through prps and pipe the
887: output to the laser-printer spooler hpr.
888:
889: Some of this functionality may not be necessary under COHERENT
890: release 4.1, which implements the System-V lp print spooler. See
891: the Lexicon article printer for details.
892:
893: File viewer
894: This lets you set the viewer that vsh invokes when you select the
895: View sub-command under the File command. When you invoke the
896: File viewer sub-command, vsh displays the following pop-up
897: window:
898:
899: Enter command to run a file view utility
900: (Coherent default is 'more')
901:
902: more
903:
904: Enter one of more or scat. For information on how these commands
905: differ, see their entries in the Lexicon.
906:
907: Command
908: The command Command lets you send a command directly to a COHERENT
909: shell. This lets you invoke commands that ordinarily are not
910: available through vsh.
911:
912: Suppose, for example, that you decided you wanted to play a session of the
913: game tetris, and that you have not yet programmed tetris as one of your
914: function keys. Press C to invoke Command. vsh moves the cursor moves to
915: the bottom of the screen, and erases the row of boxes that describe the
916: function keys. You can now type the command you want, in this case
917: /usr/games/tetris. To run the command, press <Enter>; to abort entering a
918: command and return to vsh, type <Esc>.
919:
920: When you press <Enter>, vsh runs the command you typed. When you have
921: finished playing tetris and have exited from it, vsh clears the screen and
922: displays the message:
923:
924: Hit any key to continue ...
925:
926: When you press a key, vsh redraws itself on your screen and returns the
927: cursor to the File Window.
928:
929: (By the way, the COHERENT version of tetris is available as part of COHware
930: volumes 2 and 3. For information on obtaining COHware, see the release
931: notes that came with your copy of COHERENT.)
932:
933: Command also remembers the last 40 commands that you have issued. To
934: invoke a command that you previous issued through Command, press the ^ key.
935: The last command you issued will appear in the command slot. If you
936: continue to press the ^ key, others commands appear, in reverse order from
937: when you issued them. If you overshoot the command that you want to re-
938: run, press the v key to walk back down the list of previously issued
939: commands. When you find the previously issued command that you wish to
940: rerun, just press <Enter> and vsh runs it again.
941:
942: Pressing <Home> moves to the first command in the command list -- that is,
943: the command you issued first. Pressing <End> moves to the last command in
944: the list -- that is, the command you issued most recently. You can also
945:
946: ***um
947: No, Home and End moves to first/last character of the current command.
948: So they have the same function as PageUp anf PageDown. I think I should
949: change this in the next release, what do you think?
950: ***um
951:
952: edit a previously issued command. The following gives lists the available
953: editing commands:
954:
955: <- Move the cursor one character to the left
956: -> Move the cursor one character to the right
957: <del> Delete the character to the left
958: <backspace>Delete the character to the left
959: <ctrl-D> Delete the character over the cursor
960: <ctrl-P> Go to last character of the command
961: <ctrl-N> Go to first character of the command
962:
963: Finally, if you embed the token %F in a command, vsh substitutes the
964: currently highlighted file for it.
965:
966: ***um
967: Also environment variables like $HOME may be used, they will be expanded.
968: Also the cd command may be typed here. Do not try to use ; as a separator
969: for another command, that does not work now with cd. All other commands
970: may be bundled exactely how the shells can do this. This is because a
971: shell is called to execute the command line entered.
972: ***um
973:
974: Refresh
975: The command Refresh redraws the screen. It does no other work. This
976: is helpful if your screen has become jumbled or scrambled for any
977: reason -- such as a message being written onto your screen by another
978: user.
979:
980: To invoke this command, type R. vsh pauses very briefly, then the screen
981: flickers as vsh redraws. If the screen had been confused for any reason,
982: invoking this command should restore to its proper state.
983:
984: ***um
985: If you have a need for refreshing the screen while a pop-up menu or
986: a pop-up window is active, you can do so all the time with <cntl-L>.
987: ***um
988:
989: Exit The command Exit exits you from vsh. To exit from vsh, press E. In
990: response, vsh pops the following window onto your screen:
991:
992: Do you really want to quit?
993:
994: Yes No
995:
996: The window is in reverse video, for emphasis. The option Yes is
997: underlined, to show that it is the default choice. If you really do
998: wish to exit, press <Enter>; and vsh returns to the COHERENT shell.
999:
1000: If you changed your mind, however, and do not wish to exit, press the ->
1001: key to change the option; this will shift the underlining from option Yes
1002: to option No. Pressing enter at this point selects the No option; vsh in
1003: response removes the pop-up window from the screen and returns you to the
1004: File Window.
1005:
1006: If you change your mind again, though, and really do wish to exit, then
1007: press the <- key. The underlining shifts back to the Yes option; and when
1008: you press <Enter> you exit from vsh and return to the shell.
1009:
1010: Status Window
1011: The Status Window is the lower window on the right side of the screen. The
1012: cursor never enters this window; rather, this window gives information
1013: about how vsh is functioning, and in particular about the files that are
1014: currently displayed in the File Window.
1015:
1016: The Status Window appears as follows:
1017:
1018: Files:
1019: File size:
1020: Files tagged:
1021: File size ta.:
1022: Dir. Stack:
1023: Mail:
1024: mailbox
1025: You can get messages
1026:
1027: The following discusses each entry in detail.
1028:
1029: Files
1030: This gives the number of files being shown in File Window. Note that
1031: this is all files that can be scrolled through that window, not the
1032: files that are shown in that window at this moment.
1033:
1034: File size
1035: This gives the total size, in bytes, of all files available through in
1036: the File Window.
1037:
1038: Files tagged
1039: This gives the number of files that you have tagged. See the
1040: description of the File command, above, for details.
1041:
1042: File size ta.
1043: This gives the total size of all tagged files. See the description of
1044: the File command, above, for details.
1045:
1046: Dir. Stack
1047: This gives the number of directories that currently reside on the
1048: directory stack. As noted above, you can ``push'' directories onto
1049: the directory stack or ``pop'' them from it. By doing so, you have an
1050: easy way to jump about from one directory to another, without having
1051: to type directory names repeatedly. See the above description of the
1052: Directory command for more details.
1053:
1054: You can have a maximum of ten directories on the stack.
1055:
1056: Mail This line indicates whether you have mail waiting to be read. If you
1057: don't, this line will say
1058:
1059: None
1060:
1061: whereas if you do, the line will say
1062:
1063: Avail
1064:
1065: and flash at you. If new mail arrives, vsh flashes
1066:
1067: New
1068:
1069: in that slot.
1070:
1071: mailbox
1072: This line gives the name of your mailbox -- that is, the file that
1073: mail reads.
1074:
1075: messages
1076: This indicates whether your terminal can receive messages -- e.g.,
1077: whether a message will pop up on your screen if someone wishes to
1078: communicate with you via the write command. For more information on
1079: how to change the message status of your terminal, see the Lexicon
1080: entry for the command mesg.
1081:
1082: Function Keys
1083: The bottom of the screen show nine small boxes in reverse video. These are
1084: labelled F1 through F9. If you have defined the key using the Function Key
1085: command, vsh displays the box the tag that you gave that key.
1086:
1087: For example, in our above example we set key F1 to run the command ps -a,
1088: and gave it the tag ps. At the bottom of the screen, the box labelled F1
1089: should show ps.
1090:
1091: For more details, see the description of the Function Key command, above.
1092:
1093: Configuration File
1094: vsh reads the file $HOME/.udt to configure itself. If you wish, you can
1095: use a text editor to edit this file, and so modify the behavior of vsh.
1096:
1097: ***um Not from inside vsh!!!
1098:
1099: A typical .udt file reads as follows:
1100:
1101: cwd=/v/fwb
1102: shell=/bin/ksh
1103: editor=me
1104: print-spooler=hpr -B
1105: view=more
1106: make=make
1107: me-disp-attr=reverse
1108: pd-disp-color=normal
1109: pd-disp-attr=bold
1110: se-disp-attr=underline
1111: pfkey1= mail mail
1112: pfkey9=tetris /usr/games/tetris
1113: cmd=
1114: tetris
1115: tetris
1116: echo foo
1117:
1118: cwd points to the current working directory, that is, the directory in
1119: which you have last worked with vsh. vsh returns you to that directory when
1120: you next invoke the shell.
1121:
1122: shell, editor, print-spooler, view, and make give, respectively, the shell,
1123: editor, print-spooler, viewer, and make utility that you selected with the
1124: Install command. If you change one of these values, the behavior of vsh
1125: changes to reflect the change. For example, if you change the line
1126:
1127: editor=me
1128:
1129: to
1130:
1131: editor=ed
1132:
1133: then vsh will invoke ed the next time you request the File command' Edit
1134: sub-command.
1135:
1136: me-disp-attr, pd-disp-color, pd-disp-attr, and se-disp-attr give the
1137: display features for, respectively, the menu bar, the menu color, the menu
1138: attribute, and the dialogue box.
1139:
1140: The lines pfkey1 through pfkey9 set the behavior of the function keys. The
1141: first seven characters after the equal sign `=' give the text that appears
1142: in stub at the bottom of the screen. Everything after the first seven
1143: characters describes the command to be executed when you press that
1144: function key.
1145:
1146: The text that follows the line cmd= lists the commands that you have
1147: executed with the command Command.
1148:
1149: Command-line Options
1150: vsh recognizes the following options:
1151:
1152: -d Enter vsh and begin in the current directory. Normally, vsh begins in
1153: the last directory used in your last vsh session.
1154: ***um An additional directory name may be given to start from.
1155:
1156: -e Do not use the graphic character set. This option coarsens the
1157: appearance of vsh, but gives it a fighting chance to run on cheap
1158: terminals that do not implement the full alternate character set of the
1159: DEC VT-100 terminal.
1160:
1161: -i Restrict the user's ability to run the Install command. In this mode,
1162: vsh can be used as a restricted shell, especially if it is embedded in
1163: /etc/passwd.
1164:
1165: -r Restrict the shell. This option turns off the following:
1166:
1167: -> The command Command
1168: -> No interactive shell can be called from the Options menu
1169: -> Most options from the Directory menu
1170: -> Most options from the Install menu
1171:
1172: This lets the system administrator restrict the activity of users fairly
1173: strongly.
1174:
1175: -t This command-line option tells vsh to assume the entire VT-100 mapping.
1176: This is useful with terminals whose system definitions are incomplete,
1177: or the alternate character set is ignored.
1178:
1179: Files
1180: $HOME/.udt -- Configuration file
1181:
1182: See Also
1183: commands, ksh, sh, terminfo, ttytype
1184:
1185: Notes
1186: vsh was written by Udo Munk.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.