====== 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 |