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