VMS
Willemers Informatik-Ecke
VMS ist das Betriebssystem der VAX von Digital Equipment Corporation (DEC).

Allgemeines

Nach dem Einloggen per Username und Passwort wird die Datei LOGIN.COM abgearbeitet. Hier werden Einstellungen und Prozesse abgestellt, die bei jedem Login ablaufen sollen. Die Abmeldung erfolgt durch den Befehl LOgout. Das eigene Passwort kann jederzeit mit SET PASSWORD geändert werden.

Dateinamen und Kommandos werden nicht nach Groß- und Kleinschreibung unterschieden. Die Kommandos können unter DCL soweit abgekürzt werden bis sie eindeutig sind. In der Aufzählung wird die minimale Kurzform durch Großbuchstaben angedeutet. LOgout sagt, dass man mindestens LO eingeben muss, um den Befehl anzusprechen, aber der vollständige Namen LOGOUT ist.

Hilfestellung

Der Befehl HELP listet Themen auf, zu denen Hilfetexte zur Verfügng stehen. Durch Eingabe eines "Topic" kann der entsprechende Hilfetext angezeigt werden. Man kann auch gleich das Topic beim Aufruf angeben.

HELP DIR

zeigt die Hilfetexte zum Befehl DIRectory.

Spezielle Tasten

Taste Wirkung
Ctrl-Y unterbricht die Ausführung eines Programms (Interrupt)
Ctrl-Z beendet die Eingabe und beendet das Programm regulär
Ctrl-S stoppt die Bildschirmausgabe
Ctrl-Q gibt die gestoppte Bildschirmausgabe wieder frei

DCL-Kommandos

Die Kommandosprache auf VMS heißt DCL (Digital Command Language). Die Kommandos bestehen i. A. aus einem Verb (Kommando), einem oder mehreren Objekten und Qualifizierer (Optionen). Letztere werden durch einen Schrägstrich gekennzeichnet.

Dateibezeichnung

Ein voller Dateiname unter VMS hat folgende Bestandteile:

Knoten::Device:[Verzeichnis.Subverzeichnis]Dateiname.Typ;version

Knoten
Der Netzwerkknotenname des Zielrechners
Device
Das Device des Rechners, typischerweise eine Platte.
Verzeichnis.Subverzeichnis
Der Verzeichnisbaum, in dem die Datei residiert. Als Verzeichnistrenner dient der Punkt.
Dateiname
Der eigentlich Bezeichner der Datei
Typ
Diese Extension bezeichnet, welchen Typ diese Datei hat. Beispielsweise TXT für Text oder PAS für Pascalsourcen.
version
Eine neu angelegte Datei bekommt die Versionsnummer 1. Bei jeder Änderung wird eine Kopie gezogen, die durch eine um 1 erhöhte Versionsnummer erkennbar ist.

Dateimaske

Zeichen Bedeutung
* beliebige Zeichen beliebiger Anzahl
% exakt ein beliebiges Zeichen

Dateitypen

Extension Bedeutung
.COM editierbare Befehls- bzw. Kommandoprozedur, wird mit @ aufgerufen
.EXE lauffähiges Programm
.DIR Verzeichnis
.ORG Objektdatei. Produkt einer Compilierung

Verzeichniskommandos

Inhalt (DIR)

DIRectory Dateimaske

Aktuelles Verzeichnis

SHow DEFault
SET DEFault [Verzeichnisname]

Mit dem Befehl UP wird eine Verzeichnisebene höher gewechselt. Mit DOWN UNDER kann in das Verzeichnis UNDER gewechselt werden, wenn es sich an dieser Stelle des Verzeichnisbaums liegt.

Dateikommandos

Kopieren

COPy  Dateien   Ziel 
COPy  Dateien 

Ist kein Ziel angegeben, wird das aktuelle Verzeichnis verwendet. Einige Beispiele:

COPY   [USER1.TEXTE]*.TXT   *.TUS
kopiert alle Dateien aus dem Verzeichnis USER1.TEXTE, die vom Typ TXT sind, in das aktuelle Verzeichnis und gibt ihnen dabei den Typ TUS.
COPY/CONFIRM   [USER1.TEXTE]*.TXT
kopiert alle Dateien aus dem Verzeichnis USER1.TEXTE, die vom Typ TXT sind, in das aktuelle Verzeichnis und verlangt eine Bestätigung jeder Datei.

Umbenennen

REName  Quelle   Ziel 

Löschen

DELete  Dateien 

Alte Versionen löschen

PUrge

Bereinigt das Verzeichnis um alle alten Versionen.

Mit dem Qualifizierer /KEEP=n bleiben die letzten n Versionen erhalten.

Editor

Unter VMS gibt es edt, der standardmäßig in den Zeilenmodus geht. Daneben gibt es eve oder lse als bildschirmorientierte Editoren.

edt

Aufgerufen durch EDIT/EDT kann man mit CHANGE in den bildschirmorientierten Modus wechseln. Diesen Modus verläßt man mit Ctrl-Z. Hier gelten die folgenden Kommandos:
quit
Verlassen des Editors. Ist noch eine Änderung im Editor, fragt das Programm, ob man wirklich verlassen will. Das muss noch einmal mit Y bestätigt werden.
exit
Verlassen des Editors inklusive Sichern
write name
schreibt die Datei unter dem Namen name auf die Platte. wird kein Dateiname angegeben, wird der aktuelle Name verwendet.

eve (extensible versatile editor)

EVE wird per EDIT/TPU aufgerufen. Verlassen mit Ctrl-Z oder F10. Dabei wird ungefragt gesichert. Die Kommandozeile wird mit F4 erreicht. Die Kommandos des edt sind verwendbar.

lse (language sensitive editor)

Verlassen mit F16 oder Ctrl-Z. Dann erscheint eine Kommandozeile. Die Kommandos des edt zum Verlassen und Sichern gleichen denen des edt.
quit
Verlassen des Editors. Ist noch eine Änderung im Editor, fragt das Programm, ob man wirklich verlassen will. Das muss noch einmal mit Y bestätigt werden.
exit
Verlassen des Editors inklusive Sichern
write name
schreibt die Datei unter dem Namen name auf die Platte. wird kein Dateiname angegeben, wird der aktuelle Name verwendet.

Der Editor kann mit mehreren Fenstern arbeiten. Die folgenden Kommandos werden von der Befehlszeile aus gegeben, die man über Ctrl-Z erreicht:

split window n
teilt das Fenster in n Fenster auf
next window
wechselt in das nächste Fenster sobald Return gegeben wurde.
delete window
löscht das aktuell aktive Fenster

Die eigene Arbeitsumgebung

Symbole

Mit einer Zuweisung können Symbole definiert werden. Bei einem Gleichheitszeichen gilt das Symbol nur für den aktuellen Befehl, mit zwei Gleichheitszeichen global für die aktuelle Sitzung.

SHow SYMbol/ALL zeigt die definierten Symbole.
SHow SYMbol/GLOBAL/ALL zeigt alle globalen Symbole.

Ein Symbol kann auch wieder entfernt werden. Der Befehl zum Löschen des Symbols MURKS lautet beispielsweise:

DELete /SYMbol MURKS wenn das Symbol lokal war, oder
DELete /SYMbol/GLOBAL MURKS wenn es global war.

Die Datei LOGIN.COM

Damit man nicht alle Symbole jedesmal neu definieren muss, kann man sie in der Datei LOGIN.COM eintragen. Sie werden dann beim Einloggen automatisch definiert.

Benutzer und Prozesse

Um die eigene Benutzerumgebung anzuzeigen, wird der Befehl SHow PROCess verwendet. Er zeigt den Benutzernamen, den eingeloggten Rechner, die Prozess-ID und den Prozessnamen. Die Prozess-ID ist eine achtstellige Hexadezimalzahl und bezeichnet nicht ein einzelnes Programm, sondern die Sitzung. Es gibt weiter Informationen über das Terminal, die Priorität und das aktuelle Arbeitsverzeichnis.

SHow User
zeigt die Liste der anderen Benutzer des Systems
SHow MEMory
zeigt den Speicher
SHow SYStem
zeigt die aktuell laufenden Prozesse und die Auslastung des Systems
SHow NETWork
zeigt die Netzwerke, in denen der Rechner eingebettet ist
SHow TIme
zeigt Datum und Uhrzeit

Kommandoprozeduren

Kommandoprozeduren oder Batchfiles werden mit einem Editor erstellt und enthalten Befehle, die nacheinander abgearbeitet werden. Die Endung dieser Dateien ist beliebig, wird aber standardmäßig COM genannt. Der Aufruf einer Datei namens MACHWAS.COM erfolgt durch Eingabe von @MACHWAS.

Jede Befehlszeile, auch Leerzeilen müssen mit einem $-Zeichen beginnen. Ein Kommentar beginnt mit dem $-Zeichen gefolgt von einem !-Zeichen.

Operatoren

Allgemein
= Wertzuweisung
.NOT. logisches Nicht
.AND. logisches Und
.OR. logisches Oder
Zahlen Strings
+ Addition
- Subtraktion
* Multiplikation
/ Division
.EQ. Vergleich auf Gleichheit
.NE. Vergleich auf Ungleichheit
.GT. Vergleich auf größer
.GE. Vergleich auf größer oder gleich
.LT. Vergleich auf kleiner
.LE. Vergleich auf kleiner oder gleich
+ Konkatenation
- Reduktion
 
 
.EQS. Vergleich auf Gleichheit
.NES. Vergleich auf Ungleichheit
.GTS. Vergleich auf größer
.GES. Vergleich auf größer oder gleich
.LTS. Vergleich auf kleiner
.LES. Vergleich auf kleiner oder gleich

Ein- und Ausgabe

write sys$output "Hallo Welt"
read sys$output zahl
inquire zahl "Zahl eingeben"

Kontrollstrukturen

IF Bedingung THEN Anweisung1

IF Bedingung
THEN
Anweisungen1
ENDIF

IF Bedingung
THEN
Anweisungen1
ELSE 
Anweisungen2
ENDIF

Die Sprunganweisung GOTO braucht ein Label, dass durch einen Doppelpunkt am Ende definiert wird.

$ GOTO sonstwo
$
$ sonstwo:

Es können auch Unterprogramme geschrieben werden.

$CALL up1
$...
$EXIT
$up1: SUBROUTINE
$...
$ENDSUBROUTINE

Der CALL kann Parameterübergabe an die Subroutine durchführen.

$GOSUB up2
$...
$EXIT
$up2:
$...
$RETURN

Warteschlangen

Warteschlangen (Queue) dienen dazu, eine Aufgabe in den Hintergrund zu stellen und das Terminal wieder frei zu bekommen. Es werden Druckaufträge (PRINT) und Batchjobs (SUBMIT) in den Hintergrund gestellt.
PRINT mein.txt
Die Datei mein.txt wird in die Standarddruckschlange (SYS$PRINT) gestellt.
PRINT/QUEUE=LN03 mein.txt
Die Datei mein.txt wird in die Queue LN03 gestellt.
SUBMIT/AFTER=20:00 mein.com
Die Kommandodatei mein.com wird in die Standardwarteschlange (SYS$BATCH) gestellt und nach 20:00 Uhr ausgeführt.
SUBMIT/QUEUE=SCHNELL mein.com
Die Kommandodatei mein.com wird in die Warteschlange SCHNELL gestellt.
Mit SHow QUEUE kann man die Warteschlangen ansehen.

Literatur

Barthel, Ralf:
Das VMS-Buch. Düsseldorf (SYBEX), 1990.