Skip to content | Change text size
 

OpenVMS Documentation

Contents

This is NOT a VMS reference manual. Users are urged to make use of the extensive online HELP facility built into VMS. This help facility is activated by typing HELP at the $ prompt.

Additionally, both the Caulfield campus library and the Hargraves library at Clayton campus have a set of VMS reference manuals. Students may also peruse the VMS manual set located at both the Clayton and Caulfield Computer Centre HELPDESK offices.

Users who have access to X-Window workstations can access the CD-ROM versions of the VMS manuals using the BOOKREADER utility.

Web access to the online VMS manuals are available at Compaq's Documentation page.

... contents

VMS at ITS

ITS operates a number of VAX clusters. A cluster is a two or more VAX computers tightly interconnected to provide greater computing power, a higher degree of availability and shared resources.

VendorCluster
Name
Operating
System
Usage
DigitalVAXCOpen VMSResearch, CRUX
DigitalVAXDOpen VMSDR for VAXC
... contents

Getting Started

In order to use VMS, you must go through the Registration Process. Please refer to section 2.1 on Registration Process for more information.

Each registered user is given a computing budget and a limited amount of disk space. The Monash command 'budget' will show your budget as of the last accounts run (overnight).

The command 'show quota' shows your disk quota in blocks. (Each block is 512 bytes or characters.

See 'show quota' in section 3.6.1 for more information.) See your department for authorisation if you need increases to either of these figures.

... contents

VAX/VMS Operating System

In the 1970s, Digital Equipment corporation (DEC) also called Digital committed numerous resources to create a computer architecture. The result is DECs VAX family of 32-bit computers.


VAX is an acronym for Virtual Address eXtension. The term "Virtual address" suggests that the VAX can use memory storage locations (addresses) that do not exist as true physical memory. This is the main feature of VAX computers.

The VAX architecture is designed to support multiprogramming (Bynon and Shannon, 1987). The VAX machines run an operating system called Virtual Memory System (VMS).

VMS is a multiprocessing, interactive computer operating system which means that it can run programs for and interact with a number of people or jobs at the same time. To communicate with VMS , you use Digital Command language (DCL).

Nowadays VMS is used on machines with architecture different to a VAX machine, and thus is referred to as Open VMS. In this document VMS will be used to imply both.

... contents

Getting Help in VMS

HELP Command

The HELP command invokes the VMS HELP Facility to display information about a VMS command or topic. In response to the "Topic?" prompt, you can:

  • Type the name of the command or topic for which you need help.
  • Type INSTRUCTIONS for more detailed instructions on how to use HELP.
  • Type HINTS if you are not sure of the name of the command or topic for which you need help.
  • Type a question mark (?) to re-display the most recently requested text.
  • Press the [ENTER] key one or more times to exit from HELP.

The first time users may wish to enter INSTRUCTIONS or HINTS. You can abbreviate any topic name, although ambiguous abbreviations result in all matches being displayed.

Format: HELP keyword

where keyword:
specifies one or more keywords that refer to the topic or subtopic on which you want information from a HELP library. Information within HELP libraries is arranged in a hierarchical manner.
... contents

Computer Based Instruction / Computer Aided Instructions

To help new users with the system there are some Computer Based Instruction (CBI) and Computer Aided Instruction (CAI) programs for specific VMS applications. The CAI/CBI modules currently installed on the VAX systems are shown below along with the command to activate the software.

CBI/CAI CourseTopicCommand
EDTThe EDT text editor$ RUN EDTCAI
EVEThe EVE text editor$ RUN EVCBI
LSEThe Language Sensitive Editor$ RUN LSECBI
VMSVMS Operating System$ RUN VMSCAI
CMS/MMSCode Management System
Module Management System
$ RUN CMSMMSCAI

You will be required to register yourself for each of the course software show above. This involves supplying your name (sensible ones please!).

Once you have registered you can commence the course.

When you exit the course, the system will remember where you were up to, so next time you start the course you will be able to continue from where you left off. The CAI on VMS is highly recommended.

Note: The CBI/CAI instructions depend on which VAX machine you have an account on.

... contents

VMS Directory Structures

The VMS file system is based upon a hierarchical tree structure. This means that each physical disk connected to the computer consists of a single ROOT directory. This root directory in turn can not only contain files, but it can also contain other directories as well. Nesting of directories (directories within directories) is presently restricted to 31 levels.

The Figure below shows a typical hierarchical directory structure.

See SET DEFAULT for information on moving between directories, and CREATE/DIR on creating new (sub)directories.

To delete a directory, first ensure that all files within it have been deleted.

Next change the protection on the directory file to add delete access, then delete it. E.g.

$ SET PROT=(O:RWED) MYSUB.DIR

$ DELETE MYSUB.DIR;

... contents

VMS File specifications

Any file can be thought of as a collection of data which in turn is stored on some mass storage device, typically a disk drive. The filename of a file is only one small part of what is commonly referred to as the "Full File Specification".

The full file specification contains a complete description of where the file is stored.

A VMS file specification in its entirety looks like this

 node::device:[directory]filename.type;version
 
where:
NodeThe node name of the computer within the DECnet network. Required only if accessing file(s) via the network. The node name MUST be terminated with double colons (::).
DeviceUsually a disk, device identifies which online device to use. If it is not specified, the system will use the current device you are attached to.
The device name MUST be terminated with a single colon(:).
Directory The directory indicates the directory where the file is stored. The directory portion MUST be enclosed in square brackets ([ ]).
To reference sub-directories, string the directory names together with periods ([subdir1.subdir2])
Filename The filename may consists of up to 39 characters, each of which may be an alphabetic or numeric character, an underscore or a hyphen. Filenames should be chosen logically to reflect the nature of the data.
type The file type may also consist of up to 39 characters from the same set as the filename, and should indicate the nature of the file.
Version The version number is a decimal number between 1 and 32767 which specifies the version of the file. When a file is first created VMS assigns it a version number of 1. When the file is subsequently updated or modified, VMS creates a new file with the updated data and assigns it a new version number, one higher than the its predecessor. There is a default version limit of, typically 5. The effect is that creating a sixth version will cause the automatic deletion of the first.
Examples        VX24::DUA0:[FRED]LOGIN.COM;
                VX23::DUA0:[BARNEY.PRG.FTN]X.FTN;2
... contents

Default VMS file extensions

Certain VMS compilers and utilities expect specific filename extensions. For instance the Cobol compiler will expect Cobol source files to have a extension of .COB.

The next table gives a list of the VMS filename extensions commonly used and recommended.

ExtensionDescription
BASInput source file for the BASIC compiler
COBInput source file for the COBOL compiler
COMCommand procedure
DATInput and output data
EXEExecutable file created by the linker
FORInput source file for the FORTRAN compiler
JOUJournal file created by the EDT editor or DECTYPE
LISListing file created by a language compiler or assembler; also the default file type for PRINT and TYPE commands
MAIMail message file
MAPMemory allocation map produced by the linker
MARInput source file for the VAX MACRO assembler
OBJObject file created by a language compiler or assembler
TMPTemporary file
TXTInput file for text libraries or MAIL command output

With certain commands, if you omit the file type, the system applies a default value. For instance, the command

$ COBOL myprogram

assumes that a file myprog.cob is to be compiled by the Cobol compiler.

Similarly

$ PRINT mylisting

assumes that mylisting.lis is to be printed.

... contents

File Specification Defaults

Whenever user enters a file specification, certain fields in the file specification may be omitted. VMS achieves this by keeping a copy of the entire file specification in memory. Whenever a user references a file by its filename, VMS will use the data in it's in-memory copy with the filename the user specified to assemble the full file specification.

The following shows the default values for the file specification fields.

FieldDefault Value
DeviceThe system uses the current device name which was established either at login time or by the SET DEFAULT command. Most users will never need to explicitly specify this.
DirectoryThe system uses the current directory name established either at login time or by subsequent SET DEFAULT commands issued.
FilenameNo defaults are applied to this field. The user must specify this.
ExtensionVarious programs apply default values for this field if not specified, such as language compilers. For instance the Cobol compiler will append .COB to any input filename that does not include a extension.
VersionFor input files, the system assumes the highest version number. For output files, if no file with the specified filename and type exists in the current directory, the file is created with a version number of 1. If one or more versions already exists, the next highest number is used.
... contents

Wildcards

Wildcards are a feature of VMS which lets the user select one or more files. Typically filename specifications are unique, though in some circumstances users may need to be able to select a group of files based upon some common strings of characters in their filenames.

Wildcards can be used in conjunction with filenames, extensions and version numbers.

Wildcards consist of two special characters, these being the % and the * characters.

The % character represents one unspecified character within the file specification while the * character represents one or more unspecified characters within the file specification.

Examples.
$ Directory *.basDisplay all files with a file type of .bas.
$ Directory a*.dat Display all files beginning with A and with a file type of .DAT)
$ Directory fred.%%% Display all files named FRED which have a three-character filename extension
... contents

UICs and File Protection

Each VAX user, besides being assigned a username and password, is also issued with a User Identification Code (UIC). This UIC actually consists of two numbers.

The first is the user's group number, the second being the member number within that group. Users are generally placed in a specific group based upon some common ground.

For instance, all Computer Centre staff are in the group CC whereas all Material Engg. staff would be in the group MAT.

Each disk file has associated with it the UIC of the user who created and thus owns it.

The VAX system uses UICs and a series of file protection codes to determine which user(s) have access to the files, and how much access they have.

... contents

User categories

There are four basic categories that users fall into. These are: SYSTEM, OWNER, GROUP and WORLD.

CategoryDescription
SYSTEMThis category includes system manager accounts and specific activities run by privileged users.
OWNERThis refers to the owner of the files, who created (and therefore "owns") the file.
GROUPUsers who are in the same group as the owner.
WORLDAll users, including the owner.
... contents

Access Rights


There are four basic access attributes for a file.
These are Read, Write, Execute and Delete.
These are explained below.

Access RightDescription
(R)eadUsers can read the file. This also implies that users can copy it, print it, execute it, etc.
(W)riteUsers can write to the file, modify it, append to it or overwrite it. You must have both READ and WRITE access to a file in order to open a file for writing.
(E)xecuteUsers can execute the file if it is a executable program or a DCL command procedure.
(D)eleteUsers can delete the file

By combining both the User Categories and Access Rights together, you can set specific file protection on any of your files. To do this we use SET FILE command. The actual syntax for specifying protection specifications is

$ SET FILE/PROT=(User Category:Access Rights,...) filename

For example, if you wanted to set the protection of all of your Cobol source files so that


(a) System users have all access
(b) The owner, you, to have all access
(c) Group to have read and delete access
(d) Everyone else to have no access at all

then the following command would achieve this:

$ SET FILE/PROT=(SYSTEM:RWED,OWNER:RWED,GROUP:RD,WORLD:) *.cob

Be careful when using this command. It is very easy to deny yourself access to your own files!

... contents

Logical Names

A logical name is a name that is assigned to a character string which is usually a file specification or a hardware device name. When the user issues commands to VMS, logical names can be used instead of file specifications or device names, and the system will translate the logical name to supply the corresponding character string. Logical names can be defined by users or by the system.

Users may use logical names as a shorthand way of specifying directories or files which are referred to frequently. For example, a user might assign the logical name HOME to his/her login disk and directory.

Logical names can also be used to refer to physical devices, such as disk drives, printers, terminals, tape drives and line printers.

The system contains many logical names which are used to denote specific types of devices or directories.

The most commonly-used ones are as follows:

Logical NameDescription
SYS$INPUTRefers to the device from which programs and commands read their input . By default, SYS$INPUT is set to the user's terminal; however, the user may redirect the input from the keyboard to another file or device by using the VMS Assign / Define commands
SYS$OUTPUTThe device to which output from programs and commands will be written to. By default sys$output is the user's terminal; however, the user may redirect the output from a program to another device (e.g., a disk file or line printer) by reassigning SYS$OUTPUT to that new device by using the VMS Assign / Define
SYS$COMMANDThis indicates the user's original input device, which is normally his/her keyboard. If SYS$INPUT has been reassigned to another device, keyboard input can still occur from SYS$COMMAND. If SYS$INPUT has not been reassigned, it is identical to SYS$COMMAND.
SYS$ERRORThis is the device to which the system will write any relevant error messages. SYS$ERROR is normally the user's terminal screen. If normal output to SYS$OUTPUT has been redirected to any device, error messages will still appear on the screen unless SYS$ERROR has also been reassigned.
SYS$DISKThis represents the default storage device to which the user's username has been assigned. It is assigned at login time based on information entered into the system at the time the username was created.
... contents

DCL (Digital Command language)

DCL is the language with which you communicate with VMS. It is made up of numerous commands. These DCL commands are generally verbs that describe the functions they perform.

DCL, like any language, has its own vocabulary and usage rules. The vocabulary consists of commands, parameters, and qualifiers, which are put together in a way that DCL can interpret. The format of a DCL command is :

[$] [label:] command [/qualifier[=value]..]

[parameter[/qualifier..]

NOTE: Items in square brackets [] are optional and might not be required by a specific command.

... contents

Common DCL commands

What follows are some of the more commonly used DCL commands. Users are encouraged to use the ONLINE HELP facility system for a complete description of the DCL commands and there usage. Just type HELP or HELP topic at the DCL command prompt ($).

Note: you can abbreviate a command as long as there are sufficient letters to identify it. E.g., the following commands would each require just the first three letters:

DIFFERENCES DIRECTORY DISABLE

Assign

Creates a logical name and assigns an equivalence string, or a list of strings, to the specified logical name. If you specify an existing logical name, the new equivalence name replaces the existing equivalence name.

 Format: ASSIGN  equivalence-name[,...] logical-name[:]
 Parameters:
 equivalence-name:       Defines the pathname specification or another
                         logical name
 logical-name :          Defines the logical name specification

Copy

Creates a new file from one or more existing files.

 Format: COPY input_file[,...] output-file
 Parameters
 input-file[,...] :      specifies the names of one or more input files
                         to be copied. You can use wildcard characters
                         in the file specifications.
 output-file :           specifies the name of the output file into
                         which the input files will be copied.
 

Create

The CREATE command performs the following functions:

  • creates one or more sequential disk files from records that follow in the input stream.
  • defines a new directory or subdirectory for cataloguing files.

Create/file

Creates a sequential text file (or files). Specify the content of the file on the lines following the command, one record per line. In an interactive mode, terminate the file input with [CTRL][Z].

 Format: CREATE  file-spec[,...]
 Parameter
 file-spec[,...] : specifies the name of one or more input files
                   to be created.
                   Wildcard characters are not allowed.

Create/directory

Creates a new directory or subdirectory for cataloguing files.

 Format: CREATE/DIRECTORY directory
 Parameter
 directory:      specifies the name of one or more directories or
                 subdirectories to be created.

Deassign

Cancels a logical name assignment that was made with either the ASSIGN or DEFINE commands.

 Format: DEASSIGN  [logical-name[:]]
 Parameter:
 logical-name:   The logical name to be de-assigned.

Define

Associates equivalence names with a logical name. If you specify an existing logical name, the new equivalence names replace the existing equivalence name.

 Format: DEFINE  logical_name equivalence-name[,...]
 Parameters:
 logical-name:           The logical name to be created.
 equivalence-name:       One or more pathnames or logical name
                         specifications

Delete

Deletes one or more files from a mass storage disk volume.

 Format: DELETE file-spec[,...]
 Parameter
 file-spec[,...] :       specifies the names of one or more files to
                         be deleted from a disk volume.
                         The first file specification must contain an
                         explicit or default directory specification
                         plus a file name, a file type, and a version
                         number;  subsequent file specifications must
                         contain a version number.
                         You can use wildcard characters in any of the
                         file specification fields.

Logout

Terminates the current terminal session.

Format: Logout

Purge

Deletes all but the highest-numbered versions of the specified files.

 Format: PURGE [file-spec[,...]]
 Parameter
 file-spec[,...] :       specifies one or more files to be purged.
                         If you specify two or more files, separate
                         them with either commas or plus signs.
                         If you do not provide a file specification,
                         the PURGE command purges all files in the
                         current default directory.

Rename

Changes the directory specification, file name, file type, or file version of an existing disk file or disk directory.

 Format: RENAME input-file[,...] output-file
 Parameters
 input-file[,...] :      specifies the names of one or more files whose
                         specifications are to be changed.
 output-file :           provides the new file specification to be
                         applied to the input file.

Run

Executes an image within the context of your process. You can truncate the RUN command to a single letter, R.

 Format: RUN file-spec
 Parameter
 file-spec :             specifies an executable image to be executed.
                         The file type defaults to .EXE. Wildcard
                         characters are not allowed.

Set Default

Sets your default device and directory specifications. The new default is applied to all subsequent file specifications that do not explicitly include a device or directory name. When you change the default device assignment, the system equates the specified device with the logical name SYS$DISK.

 Format: SET DEFAULT [device-name[:]][directory-spec]
 Parameters
 device-name[:]: The name of the device you want to go to.
 directory-spec: The name of the directory you want to go to.
                 A directory name must be enclosed in brackets.
                 Use the minus sign to specify the next higher
                 directory from the current default.
                 You must specify either the device-name parameter or
                 the  directory-spec parameter.

If you specify only the device name, the current directory is the default for the directory-spec parameter. If you specify only the directory name, the current device is the default for the device-name parameter.

You can use a logical name but it must constitute at least the device part of the specification.

When you use a search-list logical name as the parameter, the logical name is not translated by the SET DEFAULT command.

Instead, the SET DEFAULT command retains the logical name so that RMS is able to access the entire search list.

If you enter the SHOW DEFAULT command, the search-list logical name is displayed as the default device, along with its equivalence strings.

Show Default

Displays the current default device and directory names, along with any equivalence strings. These defaults are applied whenever you omit a device and/or directory name from a file specification.

 Format: SHOW DEFAULT
 

Submit

Queues one or more files containing command procedures to a batch queue. Requires OPER privilege, EXECUTE (E) access to the queue, or WRITE (W) access to the queue.

 Format: SUBMIT  file-spec[,...]
 Parameter
 file-spec[,...]:  specifies one or more files containing command
                   procedures. Wildcard characters are allowed in
                   the directory specification, file name, file type,
                   and version number fields.
                   The default file type is that of the preceding file.
                   If no previous file specification contains an
                   explicit file type, the default file type is .COM.
                   If you specify two or more files, separate the file
                   specifications with either commas or plus signs.
                   If you specify a node name, you must use
                   the /REMOTE qualifier.

Type

Displays the contents of a file or group of files on the current output device.

 Format: TYPE  file-spec[,...]
 Parameter
 file-spec[,...]:      specifies one or more files to be displayed.
                       If you specify a file name and do not specify a
                       file type, the TYPE command uses the default
                       file type .LIS.
                       If you specify two or more files, separate the
                       file specifications with either commas or
                       plus signs. You can specify wildcard characters
                       in place of the directory name, file name,
                       file type, or file version number field.
                       The TYPE command displays all files that
                       satisfy the file description.

Show Quota

Shows total disk space authorised, currently used and available. In the past, some users have queried a 'discrepancy' between the blocks used as given by 'show quota', and the blocks used as shown by a directory display of actual files. The correct procedure is:

 1.  From your login directory ('set def sys$login'), type
     'dir/size=all/grand [...]'.
     This will give the total number of files and the blocks
     used/allocated. Add together the number of files and the blocks
     allocated. (Each of the files has a one block entry in a system
     file on your disk.)
 2.  Type dir/size=all [-]yourdirectoryname.dir.
     Again add the blocks allocated plus one for the directory file.
 3.  Now add together the totals from 1. and 2.
     This should match the quota figure.
... contents

DCL Symbols

You can save time typing VMS commands by creating symbols. Symbols are simply abbreviations, for any valid command. To create a symbol you use one of the following formats

        $ symbol = "command"1
        $ symbol == "command"2
        $ symbol := command3
        $ symbol :== command

Note:

 1.  When you use only one = sign this tells VMS that the symbol is to
     be deleted upon completion of the DCL command procedure.
     This form is only useful in command procedures.
 2.  When two = signs are used, VMS will keep the symbol active until
     you logout.
 3.  When the : is used you do not have to place quotes around the
     command string.

It is fairly common practice to create commonly used symbols in your login.com file so that they are created each time you login.

For example the following line creates a symbol called xwin which in turn is the equivalent of typing set display/node=monu6.cc.monash.edu.au/create/trans-tcpip.

$ xwin:= set display/node=monu6.cc.monash.edu.au/create/trans=tcpip

Note that because of the use of the : and == characters, we did not have to enclose the command in quotes. Also, the symbol is active until we logout.

... contents

Command Procedures

A command procedure is a file that contains a series of DCL commands and (optionally) data lines used by the commands. A simple command procedure can, for example, consist of a series of commands, entered in the same way as used interactively, which are then executed in the order in which they are written.

Each line in a command procedure usually begins with a $ sign. The only exception to this rule is that if the line is a continuation from the previous line or a data line.

 Example: "simple.com"

 $! A (very) simple command procedure
 $! Use blank comment lines for clarity
 $!
 $ set default [.mysubdir]     !change directory
 $ director

Command procedure files are run by typing in the name of the file and prefixing that filename with the @ symbol.

Example: @simple (Will execute the command procedure file simple.com)

Command procedure files can be created with any text editor. The files should have the extension .COM to conform to the VMS standard.

Login.com

This is a very special command procedure file. This file is executed by VMS every time you login to the system. Any personal changes you would like can be done by adding them into this file.

... contents

Batch jobs

If you are running programs that use up to ten minutes or more of processor time, you should consider processing them as batch jobs. This is done by preparing a command procedure file (as above) containing the same commands that you would use to run the program interactively.

his file is then submitted into a batch job queue, where it will be processed independently of your terminal session, leaving your terminal free for other work. E.g.,

   $! A sample batch job command file.
   $!
   $ set default [.workdir]
   $ run myprog      ! follow with any 'interactive' data required
   data1
   data2
   $ dir results.lis

There are a number of batch queues on each VMS system.

The three of these which are the most commonly used, have the generic names BATCHQ, MEDIUMQ and LONGQ.

These names are prefixed with the name of the current system to differentiate between systems in a cluster (e.g. VX23_LONGQ) and can be referenced by either name.

(The command 'show logical sys_name' gives the name of the current system.)

Note that tape jobs, and only tape jobs, should be submitted to TAPEQ. The main difference between these queues is the limit on processor time used. Use the command 'show queue/batch/full queuename' for this information.

When a batch job is submitted, it automatically creates a log of its run in the owner's login directory. At completion, the log is printed on the default system printer and deleted, unless specified otherwise.

E.g., to submit a file as a MEDIUMQ job.

  $ submit/noprint/queue=mediumq sample.com
 

The '/noprint' would cause the log file to not be printed, and it will be saved in the login directory.

The log file has the same name as the command file (e.g. sample.log) unless specified otherwise. The '.com' file type could have been left off as job submission assumes the use of a command file.

The submit command has many other options; as always see the online help for full information.

Note: Programs which run for longer than, say, ten minutes, should have a restart capability.

This requires the saving of a set of data to a disk file, which would allow the program to be restarted at this point if, e.g., the computer was to fail after the program had consumed 3 hrs. 50 minutes of processor time.

... contents

Terminating Multiple Login Sessions

Each process under VMS, whether it be a interactive login session, a batch job, a spawned sub-process, or whatever, all have a unique Process IDentification number, known in VMS jargon as a PID number. It is with this pid number that we can perform certain actions on these processes. Once such action is to terminate them.

Why would we want to terminate a process?

Well sometimes you may find yourself with more than one active terminal session. This may have come about by your program hanging, and you couldn't break out, or your terminal just seemed to freeze for no apparent reason.

Your only solution was to login again.

So you did, and to your surprise your old session is still there and active. So how do you stop it? You terminate it! How? Just follow the four steps outlined below.

  • First we need to find out the PID number of the current process. This is done by typing in the following VMS command.
    $ Show process
    This will display a screenfull of information, including your current PID (Process IDentity) number. Write this down somewhere.
  • Next we need to get a list of all the processes running under your account. The following command will do this.
    $ Show users/full your-username
  • Now that we have:
    (a) Our current pid number, and
    (b) The pid numbers of the other processes
    we can now terminate the unwanted processes.
  • To terminate the unwanted process you type in the following command.
    $ stop proc/id=pid-number
    where pid-number is the pid number of the process to be terminated.

You cannot terminate other processes that do not belong to you, so if you make a mistake in typing in the pid number, you will get an error message.

Example. User Ford wants to terminate a runaway process.

First we determine his current pid number.

    $ show proc

    7-FEB-1993 23:41:22.71  User: FORD      Process ID: 20C37371
                            Node: VX42       Process name: "FORD"

    Terminal: VTA1451:  NTY13:  (cwaig.ccc.monash.edu.au)
    User Identifier:    [CWAIG]
    Base priority:      4
    Default file spec:  VC$4:[CCC116S]

    Devices allocated:  VX23$VTA1451:

Next, we determine the PID numbers of any other processes running under his username.

   $ show users/full ford

     VAX/VMS User Processes at  7-FEB-1993 23:45:45.28
     Total number of users = 1,  number of processes = 2

   Username Node Process Name PID       Terminal
   FORD     VX42 Ford         20C37371  VTA1451:
   FORD     VX42 Ford_1       20C23573  (subprocess of 20C37371)

Now we can terminate the offending process. He knows that his current session pid number is 20C371, so that leaves the remaining pid number.

    $ stop proc/id=20c23573

You can now check to see that the process has really been terminated.

    $ show users/full ford
       VAX/VMS User Processes at  7-FEB-1993 23:45:45.28
      Total number of users = 1,  number of processes = 1

    Username Node Process Name PID       Terminal
    FORD     VX42 Ford         20C37371  VTA1451: NTY13:

As we can see, the runaway process has been terminated.

... contents

Command Line Editing

VMS supports command line editing. This system saves and allows you to access up to 20 of your most recently entered commands. It saves less than 20 if your commands are very long.

Your terminal has special keys that allow you to recall and edit previous commands. These keys are described below.

Note that some of these keys may not be available on your keyboard.

KeyDescription
CTRL AToggle between insert/overstrike mode.
CTRL D Left arrow Moves the cursor one character to the left
CTRL E Moves the cursor to the end of the line.
CTRL F / Right Arrow Moves the cursor one character to the right.
CTRL H / Backspace Moves the cursor to the start of the line.
CTRL J / LINEFEED Deletes the word to the left of the cursor.
CTRL U Deletes characters from the beginning of the line to the cursor.
... contents

Miscellaneous key sequences

There are some other key sequences that have special meanings to the VMS operating system. Some of the most commonly used special keys are described below :

KeyDescription
[CTRL][C] Interrupts the current executing command or program, although some programs provide special routines to respond to [CTRL][C]. When [CTRL][C] is pressed, the system prints interrupt.
[CTRL][O] Alternately suppresses and resumes display of output to the terminal. Output which is suppressed cannot be recovered. It is discarded by the system. The messages Output on and Output off are displayed by the system as successive [CTRL][O]s are entered.
[CTRL][Q] Resumes display of what is being paused by a [CTRL][S] (or HOLD SCREEN)
[CTRL][S] Suspends output to the terminal until a [CTRL][Q] (or HOLD SCREEN) is pressed. No output will be lost, as different from the pressing of [CTRL][O] which is used to inhibit display of output.
[CTRL][T] Displays the statistical information about the currently executing program on the terminal. Pressing [CTRL][T] will not interfere with the program which is executing.
[CTRL][Y] Interrupts the current command or program and returns control to the DCL command interpreter. The system displays the message interrupt. The interrupted command or program can (sometimes) be resumed by entering the CONTINUE command.
[CTRL][W] Used by some programs (e.g., DECTYPE and EDT) to refresh the terminal screen to clear system messages, etc. from the terminal.
[CTRL][Z] Used in various situations as an end-of-file marker. [CTRL][Z] is often used to indicate to a program that no more data is to be entered.
[DELETE] Each press of this key will delete one character. This key may also be labelled DEL, RUB, or RUBOUT./td>
[ENTER] Causes the current line of information to be transmitted to the computer for processing. The cursor does not have to be at the actual end of the line in order that the whole line be transmitted to the VAX. All the information in the command line will be sent to the VAX anyway. This proves useful when command lines have been edited to correct typing errors. Usually, the VAX cannot interpret information entered until the [ENTER] is pressed. However, some programs, such as the EDT text editor operating in screen mode, recognise each character as it is entered.
[TAB] Moves the cursor to the next tab stop on the terminal. Typically these are set at every eighth character position on a line, but different programs may set them at a different position and intervals.
... contents

VMS Editors

The VAX VMS systems have numerous text editors available. These are

Edit/edt

Invokes the VAX EDT interactive text editor.

The /EDT qualifier is not required, because EDT is the VMS default editor.

 Format:         EDIT [file-spec]
 Parameter
 file-spec:      specifies the file to be created or edited using the
                 EDT editor. If the file does not exist, it is created
                 by EDT. No wildcard characters are allowed in the file
                 specification.

Edit/teco

Invokes the TECO interactive text editor.

 Format :        EDIT/TECO [file-spec]
 Parameter
 file-spec:      specifies the file to be created or edited using the
                 TECO editor. If the file does not exist, it is created
                 by TECO, unless you specify /NOCREATE.
                 No wildcard characters are allowed in the file
                 specification.

Edit/tpu

Invokes the VAX Text Processing Utility (VAXTPU).

By default, this runs an editor called EVE (for Extensible VAX Editor).

 Format: EDIT/TPU [filespec]
 Parameter
 filespec :      Optionally specifies the file you want to edit or
                 create. If the input file exists, EVE copies that file
                 into a buffer with the same name as the file and puts
                 it into the main window.
                 When you exit, a new version of the file is created,
                 unless you make no changes to the buffer or unless
                 you write out your edits to a different file.

If you do NOT specify an input file, EVE creates an empty buffer named MAIN. You can then simply start editing and specify the output file on exiting, or you can use the EVE command GET FILE to edit a particular file.

As well as the above standard VMS editors there are also some alternate editors available.

  • Ludwig: Line based editor. For more information on Ludwig please see section 7.1.4.
  • VI A screen editor based on the Unix editor VI.
  • LSE : Language sensitive Editor. By specifying the source language it will do various syntax checking, brace alignment, etc for that particular language. Invoked by typing LSE filename.

Extensive online help is available on the above mentioned editors by either by typing HELP EDIT, HELP EVE or HELP LSE at the DCL command prompt, or by invoking the HELP facility (PF2) whilst using one of the above editors.

... contents

Printing from VAX

Users can print files to various printer queues by specifying the appropriate printer queue name as an argument to the PRINT command.

Print command

Queues one or more files for printing to an output queue.

 Format2     describes the standard VAX/VMS syntax for the command.
 Format1     describes the syntax for the Monash University specific
             version of the command.

 Format1 :   PRINT filespec [queue]

 Parameters :

 file-spec:  The name of the file to be printed.
             Wildcards may be used.

 queue :     The name of the printer queue the file(s) are to be
             printed to.  If no printer queue is specified and it is
             the first time the command has been run since you logged
             in then you are prompted for a queuename.

             From then on, unless a queuename is supplied, all
             subsequent files will be printed to the currently selected
             print queue.

 Format2:    PRINT file-spec[,...] /Queue=queue

 Parameters
 file-spec[,...] : specifies one or more files to be printed.
                   Wildcard characters are allowed in the directory
                   specification, file name, file type, and version
                   number fields.

             If you specify two or more files, separate the file
             specifications with either commas or plus signs.

 /Queue:     Specifies which queue the file(s) will be printed to.
             The default queue is SYS$PRINT which typically equates to
             the systems main line printer.

Note: The normal VMS PRINT command (as described above) is intercepted by a globally defined symbol called PRINT.

This means that when you use the PRINT command, you are actually running the Monash replacement command.


 

will print the file assignment.cob to the printer in room E3.21 at Caulfield Campus.

Printer Queues

The SHOW QUEUE command will display a list of all of the queues available. You can restrict the number of queues displayed by specifying either a queuename or a partial queuename.

Examples:

  • SHOW QUEUE (Will display a list of all queues on the system)
  • SHOW QUEUE CLPF40 (Will display the queue for CLPF402)
  • SHOW QUEUE CLP* (Will display the names of all queues beginning with CLP)

When printing to network printer queues, especially to print queues on the Novell network, you will experience a slight delay before your job will be printed. This delay can be increased if there are other pending jobs in the queue.

In addition to VMS and remote printer queues, users can get information on any LPD based queues. The command

 $ MULTINET SHOW/QUEUE=queu-name
 

causes MULTINET to display the contents of the local VMS and remote LPD protocol queues.

The display is accomplished using the TCP LPD service and requires that the remote host implements the TCP LPD service.

Please be aware that if you have submitted a job to a network printer queue, say for example a Novell printer queue, and you have either the /NOTIFY option enabled or you specified it on the print command, then the notification message you receive only indicates that the VAX has only submitted your job to the specified network printer queue.

It does not mean that the network printer has printed it, only that the job has been submitted to it.

... contents

Accessing CDROM Documentation : BookReader

Users can access the online CD-ROM VMS documentation kit. The entire VMS documentation kit is easily accessible by using the BookReader software.

To be able to run the BookReader on VT100 terminal, type vtbook at VMS prompt.

$ vtbook

To be able to run the BookReader software, on any DECwindows/ XWindows software you must type either of the following commands before you run the BookReader software

SET DISPLAY/CREATE/TRANS=TCPIP/NODE=<workstation network name>

Example: $ SET DISPLAY/CREATE/TRANS=TCPIP/NODE=nella1.cc.monash.edu.au

Alternatively, the following command

@sys_packages:setdisplay

will work out your terminals/pc ip-address, the transport mechanism (tcpip, decnet, lat) and then do the required 'set display...' command for you.

After performing one of the above commands you will now be able to run the BookReader software by typing

$ RUN  SYS$SYSTEM:DECW$BOOKREADER
               OR
 $ BOOKREADER

To save your fingers, you could place the following command in your LOGIN.COM file.

; (i.e..) $ book :== run sys$system:decw$bookreader
               OR
  BOOK:==BOOKREADER

This way each time you login the symbol 'book' is setup and to run the bookreader software all you have to type in 'book'.

... contents

PROBE

Most of the University VAX VMS and some UNIX systems automatically run a software system called PROBE after you connect to them.

For interactive users, the PROBE software will perform two main functions:

 1)      Set the VMS terminal type to match the terminal you are using.
         The DCL command

                SET TERMINAL/DEVICE_TYPE=terminal-type

        can be used to perform this function.

        The PROBE software was implemented to automatically identify
        the terminal type. On some lines, where the terminal type is
        not automatically detected, the PROBE software will display
        a menu of terminal types and ask you to select an option.

 2)     Set up executive mode logical names in both the JOB and PROCESS
        tables for use by other VMS programs. The equivalent DCL
        commands are, respectively:

                DEFINE/EXECUTIVE_MODE/JOB ...
                DEFINE/EXECUTIVE_MODE/PROCESS ...

A table containing some examples of logical names set up by the PROBE software is included below.

 Logical names                Type of login

 CONNECTION_TYPE    CONNECTION_TERMINAL

 console            __OPA0:                System console.
 DECNet             VX24::ABC123D          DECNet ("SET HOST ...").
 direct             __TXB2:                Direct line.
 TCP/IP             vx23.cc.monash.edu.au  TCP/IP (TELNET or rlogin).

Programming Guidelines

The logical names are set up in executive mode to protect them from being changed by users (they are used for security checking by some programs).

Users can define logical names with the same names as those used by PROBE, only at user or supervisor levels.

Usually, logical names are searched for in the order: USER, SUPERVISOR, EXECUTIVE and KERNEL levels; so programs that use these logical names for security checking should begin the logical name search at the EXECUTIVE level.

For DCL command procedures, the F$TRNLNM lexical function "MODE" argument should be set to "EXECUTIVE";

for programs, the $TRNLNM system call "ACMODE" argument should be set to PSL$C_EXEC.

Also, EXECUTIVE mode logical names are not copied from the creating process LNM$PROCESS table into the new process LNM$PROCESS table (DCL SPAWN command),

so the logical names should be searched for in the LNM$JOB table (for DCL command procedures, the F$TRNLNM lexical function "TABLE" argument should be set to "LNM$JOB"; for programs, the $TRNLNM system call "TABNAM" argument should be set to "LNM$JOB").

Programs that do not use the logical names for security checking should accept logical names at any level, and check in the LNM$PROCESS table first (LNM$PROCESS is the default table used by the DCL DEFINE command).

... contents

Disconnected Processes

From time to time you may be offered a "lost" session (immediately after login):

        Username: ABC123D
        Password:

        You have the following disconnected process:
        Terminal        Process name    Image name
        VTA212: ABC123D         (none)
        Connect to above listed process [YES]:

When you connect to a disconnected process, the logical names just set up by the PROBE software are ignored (the PROBE logical names will remain as they were in the disconnected process).

This may cause problems for some users; in particular, you may have problems with screen-based programs that use the terminal type stored in any of the following logical names:

EMACS_TERM, ENV$TERM, MUSE$TERMINAL and TERMINAL_TYPE.

To correct this situation, you can run the PROBE software manually to set all PROBE logical names:

 $ RUN SYS_PACKAGES:PROBE
 

By the way, do not add this command to your LOGIN.COM. Adding the PROBE command to your LOGIN.COM file will not help resolve this problem as your LOGIN.COM file is not run when you login and connect to a disconnected process.

Reporting Problems

Should you observe any faults or inconsistencies with the PROBE software (or any other operating system software) please mail a detailed report to SYSTEM on the machine which exhibits the problem.