This is an old revision of the document!
Table of Contents
[CHEATSHEET] OpenVMS
Main concepts
Keywords
sort code | Full name | Translation to linux |
---|---|---|
UAF | User authorization File | It's a combination of etc/passwd , etc/group and SElinux/DB concepts with grants and roles |
UIC | User Identification CODE | UID the user identificator, in OpenVMS is [1,100] . As in linux should NOT be unique |
DCL | Digital Command Language | bash |
CDU | Command definition utility | It's a kind of IDE or getops , allow command line definitions |
RMS | Record Management Services | journalctl (logs) |
JBC | Job Controller | Queues |
Symbol | - | A variable… |
key concepts
OpenVMS | Linux | Comment |
---|---|---|
SYS$MANAGER:SYLOGIN.COM | /etc/bashrc | |
SYS$LOGIN:LOGIN.COM | ${HOME}/.bashrc | |
CTRL/Y | CTRL+C | when writing a command and you have a mistake, cancel the input (similar to sqlplus and CTRL+C ) |
CTRL/Z | CTRL+C | Similar but on a interactive input prompt (running a cmd in interactive input mode) |
! | # | comment delimiter |
% | nothing here | Error message delimiter |
^-(.*) | nothing here | Continue a message. For example 1st line begin with % and 2nd line with - |
Error levels
alpha | numeric | level |
---|---|---|
-S- | 1 | Success |
-I- | 3 | INFO |
-W- | 0 | Warning |
-E- | 2 | Error |
-F- | 4 | SEVERE |
Programming
More or less
Symbols (Variables)
Creation | Description |
---|---|
SYMBOLNAME = <value> | Creates a local symbol (string or integer) |
SYMBOLNAME == <value> | Creates a global symbol (string or integer) |
SYMBOLNAME := <value> | Creates a local STRING symbol |
SYMBOLNAME :== <value> | Creates a global STRING symbol |
DELETE/SYMBOL SYMBOLNAME | Destroy local variableSYMBOLNAME |
DELETE/SYMBOL/GLOBAL SYMBOLNAME | Destroy global variable SYMBOLNAME |
SHOW SYMBOL SYMBOLNAME | Show content of the variable SYMBOLNAME |
Aliases through symbols
Create an alias EDT' with a frequently used command:
<code DCL>
EDT :== EDIT/EDT/COMMAND=SYS$LOGIN:EDTINI.DDT
</code>
Replace a command with the command you want:
<code DCL>
PRINT :== PRINT/NOBURST/NOFLAG/NOTRAILER/NOTIFY
</code>
This will replace the command
PRINT with
PRINT/NOBURST/NOFLAG/NOTRAILER/NOTIFY everytime you launch it.
===== Operations with symbols =====
==== Arithmetic operations (integers) ====
<code DCL>
$ APPLES = 10
$ SHOW SYMBOL APPLES
APPLES = 10 Hex = 0000000A Octal = 00000000012
$ APPLES = 2 * (4+5)
$ SHOW SYMBOL APPLES
APPLES = 18 Hex …
$ ORANGES = 15
$ TOTALFRUIT = APPLES + ORANGES
$ SHOW SYMBOL TOTALFRUIT
TOTAL_FRUIT = 33
</code>
=== List of operations ===
^ Operation ^
|
+ |
|
- |
|
* |
|
/ |
==== String operations ====
<code DCL>
$ APPLES = “Apples”
$ SHOW SYMBOL APPLES
APPLES = “Apples”
$ FRUIT = “Oranges and ” + APPLES
$ SHOW SYMBOL FRUIT
FRUIT = “Oranges and Apples”
</code>
==== Using subshells in commands ====
Sub-shell is invoqued with
2 SINGLE QUOTES+VARIABLE+1 SINGLE QUOTE, for examples:
<code DCL>
$ FILETYPE = “login.com”
$ TYPEIT = “TYPE
filename'”
$ SHOW SYMBOL TYPEIT
"TYPE login.com"
</code>
Take care with string usage :=
What works and what not (as a sub-shell):
- Works:
$ FILETYPE := "login.com" $ TYPEIT := "TYPE ''filename'" $ SHOW SYMBOL TYPEIT "TYPE login.com"
- DON'T Work (as a literal) <code DCL> $ FILETYPE := “login.com” $ TYPEIT := “TYPE” + filename $ SHOW SYMBOL TYPEIT “TYPE FILENAME” </code>
In the other hand, without forcing string assignment
Both are assigned as a variable:
$ FILETYPE = "login.com" $ TYPEIT = "TYPE ''filename'" $ SHOW SYMBOL TYPEIT "TYPE login.com"
$ FILETYPE = "login.com" $ TYPEIT = "TYPE" + filename $ SHOW SYMBOL TYPEIT "TYPE login.com"
Startup
Show available boot devices
show device
boot from device
boot [DEVICE]
ex:
boot DKA0
Login
root is SYSTEM
:
Welcome to OpenVMS (TM) Alpha Operating System, Version V8.3 Username: SYSTEM Password:
Logout
LOGOUT
LOGOUT/FULL
Basic Commands
df
SHOW DEVICE SYS$SYSDEVICE
See system parameters
To check the values of your system parameters, enter the following command:
RUN SYS$SYSTEM:SYSGEN
And then under SYSGEN>
prompt, you can list parameters, for example:
SHOW WSMAX
Show system pagelets
WRITE SYS$OUTPUT F$GETSYI("CONTIG_GBLPAGES")
Show free pagelets
WRITE SYS$OUTPUT F$GETSYI("FREE_GBLSECTS")
Generate more pagelets
AUTOGEN
Find how many pagelets are used by EXE
In this case DCLTABLES.EXE
DIRECTORY/SIZE SYS$LIBRARY:DCLTABLES.EXE
System config
change system config
You have to edit:
SYS$SYSTEM:MODPARAMS.DAT
Still don't know how to edit…
update system parameters and reboot
@SYS$UPDATE:AUTOGEN GETDATA REBOOT
Change dynamic parameters using SYSGEN
Run SYSGEN
RUN SYS$SYSTEM:SYSGEN
SYSGEN: Modify parameter
And (example):
SYSGEN> USE ACTIVE SYSGEN> SET GBLPAGES 100000 SYSGEN> WRITE ACTIVE SYSGEN> EXIT
SYSGEN: List all parameters
SHOW /ALL