====== VMS Command Reference ======
===== Terminal Setup =====
**# Set Terminal type**
DEFINE TERM "vt100"
SET TERMINAL /DEVICE=VT100 /WIDTH=80
**# Exit almost anything:**
CTRL-Z
**# Change the prompt.**
SET PROMPT="''F$GETSYI("NODENAME")' $ "
**# Put this in to have it executed on every login.**
EDIT SYS$MANAGER:SYLOGIN.COM
===== File Management & Navigation =====
**# Show your current default directory:**
SHOW DEFAULT
**# Change directory (like cd):**
SET DEFAULT [DIRECTORY]
SET DEFAULT DKA0:[JOE.SUBDIR]
**# Go up one directory level (like cd ..):**
SET DEFAULT [-]
Go up two levels:
SET DEFAULT [--]
Go up one level then into a sibling directory:
SET DEFAULT [-.SUBDIR]
**# List files (like ls):**
DIRECTORY
Full details (size, date, protection):
DIRECTORY /FULL
Just filenames, no header/footer (good for scripting):
DIRECTORY /BRIEF /NOHEADER /NOTRAILING
Recursively list subdirectories:
DIRECTORY [...]
Wildcards work as expected:
DIRECTORY *.COM
**# Create a directory (like mkdir):**
CREATE /DIRECTORY [.NEWDIR]
Create with an owner UIC set:
CREATE /DIRECTORY DKA0:[TESTUSER] /OWNER=[200,#]
**# Remove a directory (must be empty; delete the .DIR file itself):**
SET DEFAULT [-]
DELETE NEWDIR.DIR;1
**# Copy a file (like cp):**
COPY OLDFILE.TXT NEWFILE.TXT
Copy into another directory, keeping the name:
COPY OLDFILE.TXT [.SUBDIR]
Copy an entire directory tree:
COPY [SOURCE...]*.* [DEST...] /LOG
**# Rename/move a file (like mv):**
RENAME OLDNAME.TXT NEWNAME.TXT
Move to another directory (rename across dirs works fine in VMS):
RENAME FILE.TXT [.SUBDIR]FILE.TXT
**# Delete a file (like rm):**
DELETE FILE.TXT;1
Delete all versions of a file:
DELETE FILE.TXT;*
Delete with wildcard, prompting for each:
DELETE /CONFIRM *.TMP;*
**# Purge old file versions (VMS keeps multiple versions by default):**
PURGE FILE.TXT
Purge everything in current directory, keeping only 2 versions:
PURGE /KEEP=2 *.*
**# View a file's contents (like cat):**
TYPE FILE.TXT
Page through a file (like more/less):
TYPE /PAGE FILE.TXT
**# Search inside files (like grep):**
SEARCH FILE.TXT "searchstring"
Search across multiple files:
SEARCH *.LOG "ERROR"
**# Compare two files (like diff):**
DIFFERENCES FILE1.TXT FILE2.TXT
**# Append to a file:**
APPEND NEWSTUFF.TXT EXISTING.TXT
**# Show file protections/ownership:**
DIRECTORY /SECURITY FILE.TXT
**# Change file protection (like chmod):**
SET PROTECTION=(OWNER:RWED,GROUP:RE,WORLD:RE) FILE.TXT
**# Change file owner (like chown):**
SET FILE /OWNER_UIC=[200,15] FILE.TXT
**# Find out how much space is used/free on a disk (like df):**
SHOW DEVICE DKA0:
**# Print a file:**
PRINT FILE.TXT
===== User & Password Management =====
**# Reset your own password:**
SET PASSWORD
**# Change any user's password:**
RUN SYS$SYSTEM:AUTHORIZE
MODIFY username /PASSWORD=newpassword
EXIT
**# Add users**
SET DEFAULT SYS$SYSTEM
RUN AUTHORIZE
See what the next available user ID is.
SHOW [200,*] /BRIEF
ADD JOE /PASSWORD=Secret123 /OWNER="Joe User" /DEV=DKA0: /DIR=[JOE] /UIC=[200,#] /FLAG=NODISUSER /PRIV=(TMPMBX,NETMBX) /DEFPRIV=(TMPMBX,NETMBX) /PGFLQUO=100000 /WSEXTENT=16384
Set no password expiry
MODIFY ANONYMOUS /NOPWDEXPIRED /NOPWDLIFETIME
EXIT
Add the user's home directory
CREATE /DIRECTORY DKA0:[TESTUSER] /OWNER=[200,#]
**# Recover System account password:**
Type following commands in boot console to perform a conversational boot: \\
B /R5:1 DKA300
At SYSBOOT> Prompt type the following \\
SET/STARTUP OPA0:
SET WINDOW_SYSTEM 0
SET WRITESYSPARAMS 0
CONTINUE
Once at the $ prompt: \\
SPAWN
@SYS$SYSTEM:STARTUP
SET DEFAULT SYS$SYSTEM:
RUN SYS$SYSTEM:AUTHORIZE
MODIFY SYSTEM /PASSWORD=newpwd
===== Process Management =====
**# Show all processes on the system (find a PID):**
SHOW SYSTEM
Show just one user's processes:
SHOW SYSTEM /PROCESS=username
Show who's logged in:
SHOW USERS
**# Stop/kill a process:**
STOP /IDENTIFICATION=pid
**# Show details on a specific process:**
SHOW PROCESS process-name /CONTINUOUS
===== Disk Tasks =====
**# Initialize (Format) drive:**
INITIALIZE DKA500: SCRATCH /STRUCTURE=5
**# Mount Drive on startup:** \\
**# Add to the end of**
@SYS$MANAGER:SYSTARTUP_VMS.COM
MOUNT/SYSTEM DKA500: SCRATCH
**# Mount a CD/removable media:**
MOUNT /OVERRIDE=IDENTIFICATION DKA100:
**# Install a program kit:**
@SYS$UPDATE:VMSINSTAL FORT066 DKA400:[FORT066.KIT]
@SYS$TEST:FORTRAN$IVP
**# Backup a directory tree to a save set:**
BACKUP [SOURCE...]*.* SAVESET.BCK /LOG
Restore from a save set:
BACKUP SAVESET.BCK [DESTINATION...] /LOG
===== Networking =====
**# Enter networking config:** \\
@SYS$MANAGER:TCPIP$CONFIG
**# Set default gateway:** \\
TCPIP
TCPIP>SET ROUTE /DEFAULT /GATEWAY=192.168.1.1
**# Start Networking**
@SYS$STARTUP:TCPIP$STARTUP.COM
**# Show network interfaces / status:**
TCPIP SHOW INTERFACE
**# Ping a host:**
TCPIP PING hostname
===== Security =====
**# Show banned IPs**
SHOW INTRUSION
**# Clear a ban**
DELETE INTRUSION NETWORK "192.168.1.50"
DELETE INTRUSION TERMINAL "TWA1:"
===== System Startup Files =====
System boot:
EDIT SYS$MANAGER:SYSTARTUP_VMS.COM
For user login:
EDIT SYS$MANAGER:SYLOGIN.COM
===== Common System Files & Directories =====
^ Path ^ Purpose ^
| SYS$SYSTEM | System executables (AUTHORIZE, LOGINOUT, etc.) |
| SYS$MANAGER | System management command files (startup, login) |
| SYS$MANAGER:SYSTARTUP_VMS.COM | Runs at system boot — add custom startup commands here |
| SYS$MANAGER:SYLOGIN.COM | Runs at every user login (site-wide) |
| SYS$LOGIN | Points to the current user's login (home) directory |
| SYS$LOGIN:LOGIN.COM | Per-user login command file |
| SYS$SYSDEVICE | The system (boot) disk device |
| SYS$UPDATE | VMSINSTAL and update/patch kit tools |
| SYS$TEST | Installation Verification Procedures (IVPs) for installed products |
| SYS$HELP | Online help library files |
| SYS$STARTUP | Layered product startup command files (e.g. TCPIP$STARTUP.COM) |
| SYSUAF.DAT | The System User Authorization File — user accounts database (in SYS$SYSTEM) |
| RIGHTSLIST.DAT | Rights identifiers database (in SYS$SYSTEM) |
| VMS$COMMON | Common area on a cluster, shared across all nodes |