====== [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'' LOL | | 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 = '' | Creates a **local** symbol (string or integer) | | ''SYMBOLNAME == '' | Creates a **global** symbol (string or integer) | | ''SYMBOLNAME := '' | Creates a **local** STRING symbol | | ''SYMBOLNAME :== '' | Creates a **global** STRING symbol | | ''DELETE/SYMBOL SYMBOLNAME'' | Destroy local variable''SYMBOLNAME'' | | ''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: EDT :== EDIT/EDT/COMMAND=SYS$LOGIN:EDTINI.DDT Replace a command with the command you want: PRINT :== PRINT/NOBURST/NOFLAG/NOTRAILER/NOTIFY This will replace the command ''PRINT'' with ''PRINT/NOBURST/NOFLAG/NOTRAILER/NOTIFY'' everytime you launch it. ===== Operations with symbols ===== ==== Arithmetic operations (integers) ==== $ APPLES = 10 $ SHOW SYMBOL APPLES APPLES = 10 Hex = 0000000A Octal = 00000000012 $ APPLES = 2 * (4+5) $ SHOW SYMBOL APPLES APPLES = 18 Hex ... $ ORANGES = 15 $ TOTAL_FRUIT = APPLES + ORANGES $ SHOW SYMBOL TOTAL_FRUIT TOTAL_FRUIT = 33 === List of operations === ^ Operation ^ | ''+'' | | ''-'' | | ''*'' | | ''/'' | ==== String operations ==== $ APPLES = "Apples" $ SHOW SYMBOL APPLES APPLES = "Apples" $ FRUIT = "Oranges and " + APPLES $ SHOW SYMBOL FRUIT FRUIT = "Oranges and Apples" ==== Using subshells in commands ==== Sub-shell is invoqued with ''2 SINGLE QUOTES+VARIABLE+1 SINGLE QUOTE'', for examples: $ FILETYPE = "login.com" $ TYPEIT = "TYPE ''filename'" $ SHOW SYMBOL TYPEIT "TYPE login.com" 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) $ FILETYPE := "login.com" $ TYPEIT := "TYPE" + filename $ SHOW SYMBOL TYPEIT "TYPE FILENAME" 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 ===== empty =====