Aide-mémoire OpenVMS VAX

Commandes DCL de base, répertoires du système et TCP/IP (CMU-OpenVMS/IP), pour l'émulateur VAX de VE2CUY.

English · Imprimer

Les commandes DCL s'abrègent (DIR pour DIRECTORY), et les majuscules ou minuscules n'ont pas d'importance. HELP donne l'aide de chaque commande, par exemple HELP COPY. Pour l'explication d'un message, utilisez HELP/MESSAGE, par exemple HELP/MESSAGE MEDOFL.

Console du VAX (invite >>>)

CommandeEffet
B DUA0Amorcer (boot) le système installé sur DUA0
B DUA1Amorcer un CD d'installation d'OpenVMS
SHOW DEVICELecteurs (DUA0-3) et carte Ethernet (XQA0)
SHOW MEMORY · SHOW ETHERNETMémoire installée · adresse de station
SET BOOT DUA0Périphérique d'amorçage par défaut
Touche / boutonEffet
Bouton Arrêt ou Ctrl+PArrêter le processeur et revenir à >>> (BREAK)
C (CONTINUE)Reprendre là où le processeur s'était arrêté
B/R5:1 DUA0Amorçage conversationnel (invite SYSBOOT>)

Session et clavier

CommandeEffet
LOGOUTFermer la session
SET PASSWORDChanger son mot de passe (A-Z, 0-9, $ et _ seulement)
SHOW TIME · SHOW USERSDate et heure · usagers connectés
SET TERMINAL/DEVICE=VT100Type de terminal (éditeurs plein écran)
RECALL/ALLCommandes précédentes (aussi : flèche ↑)
SET PROCESS/PRIVILEGES=ALLActiver tous ses privilèges (SYSTEM)
ToucheEffet
Ctrl+Y · Ctrl+CInterrompre la commande en cours
Ctrl+ZFin de saisie (CREATE, utilitaires : quitter)
Ctrl+TÉtat du processus (temps, E/S)
Ctrl+U · Ctrl+REffacer · réafficher la ligne
Ctrl+S · Ctrl+QSuspendre · reprendre l'affichage
Ctrl+OSupprimer / rétablir la sortie

Fichiers et répertoires

Une spécification de fichier : DUA0:[REPERTOIRE.SOUS]NOM.TYPE;version. Chaque écriture crée une nouvelle version, et ; seul désigne la plus récente. Jokers : * (plusieurs caractères), % (un caractère), [...] (tous les sous-répertoires), [-] (répertoire parent).

CommandeEffet
DIRECTORY · DIR/SIZE/DATE · DIR/FULLLister les fichiers (taille en blocs de 512 octets)
DIR [...]*.COMChercher dans tous les sous-répertoires
TYPE NOTES.TXT · TYPE/PAGEAfficher un fichier (page par page)
CREATE NOTES.TXTTaper un fichier, terminer par Ctrl+Z
COPY A.TXT B.TXT · RENAME A.TXT C.TXTCopier · renommer (ou déplacer)
DELETE A.TXT;*Effacer : la version est obligatoire
PURGE · PURGE/KEEP=2Garder seulement la (ou les 2) dernière(s) version(s)
SEARCH *.COM IP_STARTUPChercher un texte dans des fichiers
DIFFERENCES A.TXT B.TXTComparer deux fichiers
CommandeEffet
SHOW DEFAULTRépertoire courant
SET DEFAULT [.SOUS] · [-] · SYS$LOGINDescendre · remonter · revenir chez soi
CREATE/DIRECTORY [.TRAVAIL]Créer un répertoire
SET PROTECTION=(W:RE) A.TXTPermissions (System, Owner, Group, World)
EDIT/TPU A.TXTÉditeur EVE (flèches); Ctrl+Z : enregistrer et quitter
EDIT/EDT A.TXTÉditeur EDT (ligne : EXIT, QUIT)
DUMP/RECORDS A.DATContenu en hexadécimal
SET FILE/ATTRIBUTES=(RFM:FIX,MRS:8192,LRL:8192) X.BCKRendre utilisable un save set copié d'un CD

Système, processus et disques

CommandeEffet
SHOW SYSTEMProcessus en marche
SHOW PROCESS/ALL · SHOW QUOTASon processus · son espace disque
STOP/ID=00000210Arrêter un processus
MONITOR SYSTEMActivité en direct (Ctrl+Z pour quitter)
SHOW MEMORY · SHOW ERRORMémoire · erreurs des périphériques
SHOW LICENSELicences (PAK) chargées
SHOW LOGICAL SYS$* · SHOW SYMBOL *Noms logiques · symboles
CommandeEffet
SHOW DEVICE D · SHOW DEVICE DUA0/FULLDisques, espace libre
MOUNT DUA1: OPENVMS071Monter un CD (étiquette du volume)
MOUNT/OVERRIDE=IDENTIFICATION DUA1:Monter sans connaître l'étiquette
MOUNT/MEDIA_FORMAT=CDROM DUA1: NOMCD ISO 9660 (ex. fait avec mkiso)
DISMOUNT DUA1:Démonter (avant d'éjecter dans la page)
INITIALIZE DUA2: DONNEES puis MOUNT/SYSTEM DUA2: DONNEESPréparer un disque vierge (RA92 en DUA2)
BACKUP [TRAVAIL...]*.* DUA2:[SAUVE]T.BCK/SAVE_SETSauvegarde dans un save set

Comptes d'usagers (SYSTEM)

$ SET DEFAULT SYS$SYSTEM
$ RUN AUTHORIZE
UAF> ADD ALAIN /PASSWORD=TEMPO_1234 /UIC=[200,200] /DEVICE=SYS$SYSDEVICE: /DIRECTORY=[ALAIN] /OWNER="Alain"
UAF> SHOW ALAIN            ! aussi : MODIFY, REMOVE, LIST
UAF> EXIT
$ CREATE/DIRECTORY SYS$SYSDEVICE:[ALAIN] /OWNER_UIC=[200,200]

Sans clé de licence (PAK), VMS permet la connexion sur la console (OPA0). Les connexions par telnet passent aussi (CMU-OpenVMS/IP).

Voir les autorisations d'un compte (privilèges, quotas, identificateurs) :

$ SET DEFAULT SYS$SYSTEM          ! sinon AUTHORIZE offre de créer SYSUAF.DAT : NO
$ MCR AUTHORIZE SHOW SYSTEM       ! en une ligne (RUN ne passe pas de paramètres)
UAF> SHOW SYSTEM /BRIEF           ! une ligne : UIC, compte, privilèges, répertoire
UAF> SHOW * /BRIEF                ! tous les comptes
UAF> SHOW /IDENTIFIER /USER=SYSTEM ! identificateurs (droits)
UAF> SHOW SYSTEM /FULL            ! la fiche et les identificateurs
$ SHOW PROCESS /PRIVILEGES        ! la session en cours seulement
$ SHOW PROCESS /RIGHTS

La fiche donne les privilèges autorisés (Authorized Privileges) et ceux par défaut (Default Privileges). Lire SYSUAF.DAT demande SYSPRV (le compte SYSTEM l'a). Dans l'émulateur, l'icône des personnes de la barre du haut fait toutes ces opérations dans une fenêtre.

Arrêter et redémarrer

$ @SYS$SYSTEM:SHUTDOWN       ! répondre 0 minute, puis Retour aux questions
                             ! « automatic system reboot » : YES pour redémarrer
SYSTEM SHUTDOWN COMPLETE      ! alors seulement : bouton Arrêt (>>>) ou Éteindre

Mot de passe de SYSTEM oublié : B/R5:1 DUA0, puis SYSBOOT> SET WINDOW_SYSTEM 0, SET WRITESYSPARAMS 0, SET/STARTUP OPA0: et CONTINUE. À l'invite $ : @SYS$SYSTEM:STARTUP, puis SET DEFAULT SYS$SYSTEM, RUN AUTHORIZE et MODIFY SYSTEM/PASSWORD=NOUVEAU_MP. Redémarrez ensuite.

Procédures, symboles et noms logiques

CommandeEffet
@FICHIER.COMExécuter une procédure de commandes
DIR :== DIRECTORY/SIZE/DATESymbole (abréviation) global
DEFINE TRAVAIL DUA2:[TRAVAIL]Nom logique (puis DIR TRAVAIL:)
WRITE SYS$OUTPUT F$TIME()Afficher une valeur (fonctions lexicales F$...)
WRITE SYS$OUTPUT F$GETSYI("NODENAME")Nom du nœud (VAXEMU)
FichierRôle
SYS$LOGIN:LOGIN.COMExécuté à chaque connexion de l'usager
SYS$MANAGER:SYLOGIN.COMExécuté à chaque connexion, pour tous
SYS$MANAGER:SYSTARTUP_VMS.COMDémarrage du site (ex. @SYS$MANAGER:IP_STARTUP)
SUBMIT X.COM · SHOW QUEUE/ALLTravail en lot · files d'attente

Répertoires importants

Le disque système (SYS$SYSDEVICE, ici DUA0) contient la racine [SYS0]. Chaque nom logique ci-dessous cherche d'abord dans SYS$SPECIFIC ([SYS0.SYSxxx]), propre au nœud, puis dans SYS$COMMON ([SYS0.SYSCOMMON.SYSxxx]), partagé.

Nom logiqueContenu
SYS$SYSTEM ([SYSEXE])Programmes du système; SYSUAF.DAT (comptes), MODPARAMS.DAT (paramètres pour AUTOGEN), SHUTDOWN.COM, STARTUP.COM
SYS$MANAGER ([SYSMGR])Procédures du gestionnaire : SYSTARTUP_VMS.COM, SYLOGIN.COM, OPERATOR.LOG; TCP/IP : IP_STARTUP.COM, INTERNET.CONFIG, NAMRES.CONFIG
SYS$STARTUP ([SYS$STARTUP])Démarrage des composants de VMS
SYS$LIBRARY ([SYSLIB])Bibliothèques partagées, DCLTABLES.EXE (verbes DCL)
SYS$HELP ([SYSHLP])Bibliothèques d'aide (HELPLIB.HLB), notes de version; CMU-IP : [SYSHLP.DOC]
SYS$UPDATE ([SYSUPD])VMSINSTAL.COM (installer un produit), AUTOGEN.COM
SYS$ERRORLOG ([SYSERR])Journal des erreurs du matériel
SYS$LOGINRépertoire de l'usager (SYSTEM : [SYSMGR])
SYS$EXAMPLESExemples de programmes

Après un changement de MODPARAMS.DAT : @SYS$UPDATE:AUTOGEN GETDATA REBOOT NOFEEDBACK.

Fichiers importants

Les procédures .COM se modifient avec EDIT (ou le gestionnaire de fichiers de l'émulateur); gardez l'ancienne version (;-1) tant que la nouvelle n'est pas éprouvée.

FichierRôle
SYS$MANAGER:SYLOGIN.COMProcédure de login générale : exécutée pour tous les usagers, avant leur LOGIN.COM (nom logique SYS$SYLOGIN)
SYS$LOGIN:LOGIN.COMProcédure de login personnelle : symboles, noms logiques, invite (SET PROMPT) de l'usager
SYS$MANAGER:SYSTARTUP_VMS.COMDémarrage propre au site : lancé à la fin de l'amorçage (files d'attente, réseau, produits, SYS$ANNOUNCE)
SYS$MANAGER:SYCONFIG.COMConfiguration des périphériques avant leur détection automatique
SYS$MANAGER:SYLOGICALS.COMNoms logiques du système définis à l'amorçage
SYS$MANAGER:SYPAGSWPFILES.COMFichiers de pagination et d'échange supplémentaires
SYS$MANAGER:SYSECURITY.COMDémarrage du serveur d'audit de sécurité
SYS$MANAGER:SYSHUTDWN.COMCommandes du site exécutées par SHUTDOWN.COM à l'arrêt
SYS$MANAGER:WELCOME.TXTMessage affiché après le login (nom logique SYS$WELCOME); SYS$ANNOUNCE : message avant le login
SYS$MANAGER:OPERATOR.LOGJournal de l'opérateur (messages OPCOM)
SYS$MANAGER:ACCOUNTNG.DATComptabilité des sessions (ACCOUNTING)
SYS$SYSTEM:SYSUAF.DATComptes d'usagers (MCR AUTHORIZE)
SYS$SYSTEM:RIGHTSLIST.DATIdentificateurs et droits (AUTHORIZE : SHOW/IDENTIFIER)
SYS$SYSTEM:MODPARAMS.DATParamètres du système donnés à AUTOGEN
SYS$SYSTEM:VAXVMSSYS.PARParamètres en vigueur à l'amorçage (MCR SYSGEN)
SYS$SYSTEM:PAGEFILE.SYS, SWAPFILE.SYSFichiers de pagination et d'échange; SYSDUMP.DMP : vidage après un arrêt fatal
SYS$SYSTEM:STARTUP.COM, SHUTDOWN.COMDémarrage et arrêt de VMS (à ne pas modifier : utiliser les procédures SY*.COM)
SYS$COMMON:[SYSEXE]LMF$LICENSE.LDBLicences enregistrées (LICENSE LIST, SHOW LICENSE)
SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.COMRéglages du serveur DECwindows propres au site (à créer à partir du .TEMPLATE)
SYS$MANAGER:DECW$SYLOGIN.COMProcédure de login des sessions DECwindows

Ordre à l'amorçage : STARTUP.COM → SYCONFIG → SYLOGICALS → SYPAGSWPFILES → SYSECURITY → SYSTARTUP_VMS. Au login : SYLOGIN.COM, puis LOGIN.COM.

TCP/IP (CMU-OpenVMS/IP)

CommandeEffet
TELNET 10.0.2.2 · TELNET hôte/PORT=80Session telnet · essai d'un port TCP
FTP hôteTransfert de fichiers
IPNCP PING 192.168.2.1 64 3Ping : hôte, octets, nombre
IPNCP HOSTNM nomRésoudre un nom (serveur DNS requis)
IPNCP NETEXITArrêter la pile (IPACP)
@SYS$MANAGER:IP_STARTUPDémarrer la pile
Fichier (CMUIP_ROOT = SYS$COMMON)Rôle
CMUIP_ROOT:[SYSMGR]INTERNET.CONFIGAdresse, masque, carte, passerelles, services
CMUIP_ROOT:[SYSMGR]NAMRES.CONFIGServeurs de noms (DNS), suffixes de domaine
CMUIP_ROOT:[SYSMGR]IP_STARTUP.COMDémarrage; nom d'hôte (INTERNET_HOST_NAME)
CMUIP_ROOT:[SYSLIB]HOSTS.TXTTable locale des noms (INET$HOSTS)
CMUIP_ROOT:[SYSMGR]INTERNET.LOGJournal de la pile

Changer l'adresse, la passerelle, le DNS ou le nom

La commande NETCONFIG (« Net Config by VE2CUY ») fait tout ce qui suit : elle demande l'adresse, le masque, la passerelle et les serveurs DNS, valide les réponses, redémarre le réseau, puis teste la passerelle et le DNS par un ping. Elle demande la langue au lancement; NETCONFIG F la lance en français, NETCONFIG E en anglais. Elle est installée par le bouton « Installer TCP/IP » et se trouve sur le disque OpenVMS + TCP/IP du dépôt. À la main :

Modifiez CMUIP_ROOT:[SYSMGR]INTERNET.CONFIG avec EDIT/TPU CMUIP_ROOT:[SYSMGR]INTERNET.CONFIG (Ctrl+Z enregistre). C'est ce fichier que lit IPACP. N'écrivez pas plutôt dans SYS$MANAGER: : un nouveau fichier y irait dans SYS$SPECIFIC et IPACP ne le verrait pas.

! Adresse et masque (carte XQA0) :
Device_Init:XEDRV:XQA0:00-00-00-00-00-00:192.168.2.77:255.255.255.0

! Passerelle par défaut (réseau 0.0.0.0, masque 0.0.0.0) : une ligne par passerelle
Gateway:ROUTER:192.168.2.1:0.0.0.0:0.0.0.0

Pour les serveurs de noms (DNS), modifiez CMUIP_ROOT:[SYSMGR]NAMRES.CONFIG (essayé avec un routeur et 8.8.8.8) :

! Domain_Server:domaine:nom-du-serveur:adresse:port   (« . » : tous les domaines)
Domain_Server:.:DNS1:192.168.2.1:53
Domain_Server:.:DNS2:8.8.8.8:53

Pour le nom d'hôte, changez la ligne Define/System/Exec/NoLog INTERNET_HOST_NAME "VAXEMU.LOCAL" de CMUIP_ROOT:[SYSMGR]IP_STARTUP.COM.

Appliquer les changements sans redémarrer VMS (essayé dans l'émulateur) :

$ IPNCP NAMRES EXIT 1          ! arrêter d'abord le résolveur de noms (sinon il plante)
$ IPNCP NETEXIT                ! puis attendre le message « IPACP: Network offline » (≈ 10 s)
$ @SYS$MANAGER:IP_STARTUP      ! « IPACP: Net device 0 is XQA0:, IP=... (Online) »
$ IPNCP STARTUP /NAMRES        ! si NAMRES n'est pas reparti (SHOW SYSTEM)
$ IPNCP PING 192.168.2.1 64 3  ! vérifier la passerelle
$ IPNCP PING GOOGLE.COM 64 3   ! vérifier le DNS

Vous pouvez aussi redémarrer VMS (@SYS$SYSTEM:SHUTDOWN, redémarrage automatique YES). Pour tout reprendre, relancez @SYS$UPDATE:VMSINSTAL CMUIP depuis la trousse.

Dans l'émulateur, voici les adresses selon le mode réseau : Le PC qui fait le pont joint le VAX par telnet localhost 2323.

Dans l'émulateur

OpenVMS VAX cheat sheet

Basic DCL commands, system directories and TCP/IP (CMU-OpenVMS/IP), for VE2CUY's VAX emulator.

Français · Print

DCL commands can be abbreviated (DIR for DIRECTORY) and are case-insensitive. HELP gives the help for each command, for example HELP COPY. To explain a message, use HELP/MESSAGE, for example HELP/MESSAGE MEDOFL.

VAX console (>>> prompt)

CommandEffect
B DUA0Boot the system installed on DUA0
B DUA1Boot an OpenVMS installation CD
SHOW DEVICEDrives (DUA0-3) and Ethernet card (XQA0)
SHOW MEMORY · SHOW ETHERNETInstalled memory · station address
SET BOOT DUA0Default boot device
Key / buttonEffect
Halt button or Ctrl+PHalt the processor, back to >>> (BREAK)
C (CONTINUE)Resume where the processor halted
B/R5:1 DUA0Conversational boot (SYSBOOT> prompt)

Session and keyboard

CommandEffect
LOGOUTEnd the session
SET PASSWORDChange your password (A-Z, 0-9, $ and _ only)
SHOW TIME · SHOW USERSDate and time · logged-in users
SET TERMINAL/DEVICE=VT100Terminal type (full-screen editors)
RECALL/ALLPrevious commands (also: ↑ arrow)
SET PROCESS/PRIVILEGES=ALLEnable all your privileges (SYSTEM)
KeyEffect
Ctrl+Y · Ctrl+CInterrupt the current command
Ctrl+ZEnd of input (CREATE; utilities: exit)
Ctrl+TProcess status (time, I/O)
Ctrl+U · Ctrl+RErase · redisplay the line
Ctrl+S · Ctrl+QPause · resume output
Ctrl+ODiscard / restore output

Files and directories

A file specification: DUA0:[DIRECTORY.SUB]NAME.TYPE;version. Each write creates a new version, and a bare ; means the latest. Wildcards: * (several characters), % (one character), [...] (all subdirectories), [-] (parent directory).

CommandEffect
DIRECTORY · DIR/SIZE/DATE · DIR/FULLList files (size in 512-byte blocks)
DIR [...]*.COMSearch all subdirectories
TYPE NOTES.TXT · TYPE/PAGEDisplay a file (page by page)
CREATE NOTES.TXTType a file, end with Ctrl+Z
COPY A.TXT B.TXT · RENAME A.TXT C.TXTCopy · rename (or move)
DELETE A.TXT;*Delete: the version is required
PURGE · PURGE/KEEP=2Keep only the latest (or 2 latest) version(s)
SEARCH *.COM IP_STARTUPSearch text in files
DIFFERENCES A.TXT B.TXTCompare two files
CommandEffect
SHOW DEFAULTCurrent directory
SET DEFAULT [.SUB] · [-] · SYS$LOGINGo down · up · home
CREATE/DIRECTORY [.WORK]Create a directory
SET PROTECTION=(W:RE) A.TXTPermissions (System, Owner, Group, World)
EDIT/TPU A.TXTEVE editor (arrows); Ctrl+Z: save and exit
EDIT/EDT A.TXTEDT editor (line mode: EXIT, QUIT)
DUMP/RECORDS A.DATHexadecimal contents
SET FILE/ATTRIBUTES=(RFM:FIX,MRS:8192,LRL:8192) X.BCKMake a save set copied from a CD usable

System, processes and disks

CommandEffect
SHOW SYSTEMRunning processes
SHOW PROCESS/ALL · SHOW QUOTAYour process · your disk space
STOP/ID=00000210Stop a process
MONITOR SYSTEMLive activity (Ctrl+Z to exit)
SHOW MEMORY · SHOW ERRORMemory · device errors
SHOW LICENSELoaded licenses (PAKs)
SHOW LOGICAL SYS$* · SHOW SYMBOL *Logical names · symbols
CommandEffect
SHOW DEVICE D · SHOW DEVICE DUA0/FULLDisks, free space
MOUNT DUA1: OPENVMS071Mount a CD (volume label)
MOUNT/OVERRIDE=IDENTIFICATION DUA1:Mount without knowing the label
MOUNT/MEDIA_FORMAT=CDROM DUA1: NAMEISO 9660 CD (e.g. made with mkiso)
DISMOUNT DUA1:Dismount (before ejecting it in the page)
INITIALIZE DUA2: DATA then MOUNT/SYSTEM DUA2: DATAPrepare a blank disk (RA92 in DUA2)
BACKUP [WORK...]*.* DUA2:[SAVE]W.BCK/SAVE_SETBack up to a save set

User accounts (SYSTEM)

$ SET DEFAULT SYS$SYSTEM
$ RUN AUTHORIZE
UAF> ADD ALAIN /PASSWORD=TEMPO_1234 /UIC=[200,200] /DEVICE=SYS$SYSDEVICE: /DIRECTORY=[ALAIN] /OWNER="Alain"
UAF> SHOW ALAIN            ! also: MODIFY, REMOVE, LIST
UAF> EXIT
$ CREATE/DIRECTORY SYS$SYSDEVICE:[ALAIN] /OWNER_UIC=[200,200]

Without license keys (PAKs), VMS allows logins on the console (OPA0). Telnet logins also work (CMU-OpenVMS/IP).

Viewing an account's authorizations (privileges, quotas, identifiers):

$ SET DEFAULT SYS$SYSTEM          ! otherwise AUTHORIZE offers to create SYSUAF.DAT: NO
$ MCR AUTHORIZE SHOW SYSTEM       ! on one line (RUN does not pass parameters)
UAF> SHOW SYSTEM /BRIEF           ! one line: UIC, account, privileges, directory
UAF> SHOW * /BRIEF                ! all accounts
UAF> SHOW /IDENTIFIER /USER=SYSTEM ! identifiers (rights)
UAF> SHOW SYSTEM /FULL            ! the record and its identifiers
$ SHOW PROCESS /PRIVILEGES        ! current session only
$ SHOW PROCESS /RIGHTS

The record lists the authorized privileges (Authorized Privileges) and the default ones (Default Privileges). Reading SYSUAF.DAT requires SYSPRV (the SYSTEM account has it). In the emulator, the people icon of the top bar does all of this in a window.

Shutting down and rebooting

$ @SYS$SYSTEM:SHUTDOWN       ! answer 0 minutes, then Return to the questions
                             ! "automatic system reboot": YES to reboot
SYSTEM SHUTDOWN COMPLETE      ! only then: Halt button (>>>) or Power off

Forgot the SYSTEM password: B/R5:1 DUA0, then SYSBOOT> SET WINDOW_SYSTEM 0, SET WRITESYSPARAMS 0, SET/STARTUP OPA0: and CONTINUE. At the $ prompt: @SYS$SYSTEM:STARTUP, then SET DEFAULT SYS$SYSTEM, RUN AUTHORIZE and MODIFY SYSTEM/PASSWORD=NEW_PW. Then reboot.

Procedures, symbols and logical names

CommandEffect
@FILE.COMRun a command procedure
DIR :== DIRECTORY/SIZE/DATEGlobal symbol (abbreviation)
DEFINE WORK DUA2:[WORK]Logical name (then DIR WORK:)
WRITE SYS$OUTPUT F$TIME()Display a value (F$... lexical functions)
WRITE SYS$OUTPUT F$GETSYI("NODENAME")Node name (VAXEMU)
FileRole
SYS$LOGIN:LOGIN.COMRun at each login of the user
SYS$MANAGER:SYLOGIN.COMRun at each login, for everyone
SYS$MANAGER:SYSTARTUP_VMS.COMSite startup (e.g. @SYS$MANAGER:IP_STARTUP)
SUBMIT X.COM · SHOW QUEUE/ALLBatch job · queues

Important directories

The system disk (SYS$SYSDEVICE, here DUA0) holds the root [SYS0]. Each logical name below looks first in SYS$SPECIFIC ([SYS0.SYSxxx], for this node), then in SYS$COMMON ([SYS0.SYSCOMMON.SYSxxx], shared).

Logical nameContents
SYS$SYSTEM ([SYSEXE])System programs; SYSUAF.DAT (accounts), MODPARAMS.DAT (AUTOGEN parameters), SHUTDOWN.COM, STARTUP.COM
SYS$MANAGER ([SYSMGR])Manager procedures: SYSTARTUP_VMS.COM, SYLOGIN.COM, OPERATOR.LOG; TCP/IP: IP_STARTUP.COM, INTERNET.CONFIG, NAMRES.CONFIG
SYS$STARTUP ([SYS$STARTUP])Startup of the VMS components
SYS$LIBRARY ([SYSLIB])Shareable libraries, DCLTABLES.EXE (DCL verbs)
SYS$HELP ([SYSHLP])Help libraries (HELPLIB.HLB), release notes; CMU-IP: [SYSHLP.DOC]
SYS$UPDATE ([SYSUPD])VMSINSTAL.COM (install a product), AUTOGEN.COM
SYS$ERRORLOG ([SYSERR])Hardware error log
SYS$LOGINUser's home directory (SYSTEM: [SYSMGR])
SYS$EXAMPLESExample programs

After changing MODPARAMS.DAT: @SYS$UPDATE:AUTOGEN GETDATA REBOOT NOFEEDBACK.

Important files

Edit .COM procedures with EDIT (or the emulator's file manager); keep the previous version (;-1) until the new one is proven.

FilePurpose
SYS$MANAGER:SYLOGIN.COMSystem-wide login procedure: run for every user, before their LOGIN.COM (logical name SYS$SYLOGIN)
SYS$LOGIN:LOGIN.COMPersonal login procedure: the user's symbols, logical names, prompt (SET PROMPT)
SYS$MANAGER:SYSTARTUP_VMS.COMSite-specific startup: run at the end of booting (queues, network, products, SYS$ANNOUNCE)
SYS$MANAGER:SYCONFIG.COMDevice configuration before autoconfiguration
SYS$MANAGER:SYLOGICALS.COMSystem logical names defined at boot
SYS$MANAGER:SYPAGSWPFILES.COMAdditional page and swap files
SYS$MANAGER:SYSECURITY.COMStartup of the security audit server
SYS$MANAGER:SYSHUTDWN.COMSite commands run by SHUTDOWN.COM at shutdown
SYS$MANAGER:WELCOME.TXTMessage shown after login (logical name SYS$WELCOME); SYS$ANNOUNCE: message before login
SYS$MANAGER:OPERATOR.LOGOperator log (OPCOM messages)
SYS$MANAGER:ACCOUNTNG.DATSession accounting (ACCOUNTING)
SYS$SYSTEM:SYSUAF.DATUser accounts (MCR AUTHORIZE)
SYS$SYSTEM:RIGHTSLIST.DATIdentifiers and rights (AUTHORIZE: SHOW/IDENTIFIER)
SYS$SYSTEM:MODPARAMS.DATSystem parameters given to AUTOGEN
SYS$SYSTEM:VAXVMSSYS.PARParameters in effect at boot (MCR SYSGEN)
SYS$SYSTEM:PAGEFILE.SYS, SWAPFILE.SYSPage and swap files; SYSDUMP.DMP: dump after a crash
SYS$SYSTEM:STARTUP.COM, SHUTDOWN.COMVMS startup and shutdown (do not edit: use the SY*.COM procedures)
SYS$COMMON:[SYSEXE]LMF$LICENSE.LDBRegistered licenses (LICENSE LIST, SHOW LICENSE)
SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.COMSite-specific DECwindows server settings (create it from the .TEMPLATE)
SYS$MANAGER:DECW$SYLOGIN.COMLogin procedure of DECwindows sessions

Boot order: STARTUP.COM → SYCONFIG → SYLOGICALS → SYPAGSWPFILES → SYSECURITY → SYSTARTUP_VMS. At login: SYLOGIN.COM, then LOGIN.COM.

TCP/IP (CMU-OpenVMS/IP)

CommandEffect
TELNET 10.0.2.2 · TELNET host/PORT=80Telnet session · test a TCP port
FTP hostFile transfer
IPNCP PING 192.168.2.1 64 3Ping: host, bytes, count
IPNCP HOSTNM nameResolve a name (needs a DNS server)
IPNCP NETEXITStop the stack (IPACP)
@SYS$MANAGER:IP_STARTUPStart the stack
File (CMUIP_ROOT = SYS$COMMON)Role
CMUIP_ROOT:[SYSMGR]INTERNET.CONFIGAddress, mask, card, gateways, services
CMUIP_ROOT:[SYSMGR]NAMRES.CONFIGName servers (DNS), domain suffixes
CMUIP_ROOT:[SYSMGR]IP_STARTUP.COMStartup; host name (INTERNET_HOST_NAME)
CMUIP_ROOT:[SYSLIB]HOSTS.TXTLocal name table (INET$HOSTS)
CMUIP_ROOT:[SYSMGR]INTERNET.LOGStack log

Changing the address, gateway, DNS or name

The NETCONFIG command ("Net Config by VE2CUY") does all of the following: it asks for the address, mask, gateway and DNS servers, validates the answers, restarts the network, then tests the gateway and the DNS with a ping. It asks for the language when it starts; NETCONFIG E runs it in English, NETCONFIG F in French. It is installed by the Install TCP/IP button and is on the repository's OpenVMS + TCP/IP disk. By hand:

Edit CMUIP_ROOT:[SYSMGR]INTERNET.CONFIG with EDIT/TPU CMUIP_ROOT:[SYSMGR]INTERNET.CONFIG (Ctrl+Z saves). This is the file IPACP reads. Do not write to SYS$MANAGER: instead: a new file would go to SYS$SPECIFIC, which IPACP never sees.

! Address and mask (card XQA0):
Device_Init:XEDRV:XQA0:00-00-00-00-00-00:192.168.2.77:255.255.255.0

! Default gateway (network 0.0.0.0, mask 0.0.0.0): one line per gateway
Gateway:ROUTER:192.168.2.1:0.0.0.0:0.0.0.0

For name servers (DNS), edit CMUIP_ROOT:[SYSMGR]NAMRES.CONFIG (tried with a router and 8.8.8.8):

! Domain_Server:domain:server-name:address:port   ("." : every domain)
Domain_Server:.:DNS1:192.168.2.1:53
Domain_Server:.:DNS2:8.8.8.8:53

For the host name, change the line Define/System/Exec/NoLog INTERNET_HOST_NAME "VAXEMU.LOCAL" in CMUIP_ROOT:[SYSMGR]IP_STARTUP.COM.

Apply the changes without rebooting VMS (tried in the emulator):

$ IPNCP NAMRES EXIT 1          ! stop the name resolver first (otherwise it crashes)
$ IPNCP NETEXIT                ! then wait for "IPACP: Network offline" (≈ 10 s)
$ @SYS$MANAGER:IP_STARTUP      ! "IPACP: Net device 0 is XQA0:, IP=... (Online)"
$ IPNCP STARTUP /NAMRES        ! if NAMRES did not restart (SHOW SYSTEM)
$ IPNCP PING 192.168.2.1 64 3  ! check the gateway
$ IPNCP PING GOOGLE.COM 64 3   ! check the DNS

You can also reboot VMS (@SYS$SYSTEM:SHUTDOWN, automatic reboot YES). To start over, run @SYS$UPDATE:VMSINSTAL CMUIP again from the kit.

In the emulator, these are the addresses for each network mode: The PC running the bridge reaches the VAX with telnet localhost 2323.

In the emulator