Anleitung zum Kommandozeileninterpreter Version 1.0x (c) Oliver Scholz, Februar 1992 In eigener Sache ---------------- Lieber Benutzerin, lieber Benutzer! Das vorliegende Programm ist SHAREWARE. Das bedeutet, daž es weiterkopiert werden kann und soll! Man kann es allen seinen Freunden weitergeben und die wieder ihren Freunden u.s.w. Es drfen aber nur alle Dateien komplett kopiert werden, d.h. OSCLI\DOKU\ COMMAND.TEX LaTeX-Version dieser Anleitung COMMAND.TXT ASCII-Version dieser Anleitung REVISION.TXT Entwicklungsgeschichte OSCLI\DOKU\STYLES A4WIDE.STY LaTeX-Style fr DIN A4 Seitenformat OSCLI\ETC\ PASSWD Passwort Beispieldatei TERMCAP Terminalsteuersequenzen Beispieldatei OSCLI\ COMMAND.PRG Ausfhrbare CLI Programmdatei LOGIN.PRG Ausfhrbare LOGIN Programmdatei Es darf in den Dateien nichts ver„ndert werden! Ausgenommen sind Layout„nderungen beim Ausdruck der Textdateien. Auf Wunsch kann bei mir auch noch eine englische šbersetzung der Dokumentation bestellt werden. Wer das Programm benutzt sollte mir 30 DM berweisen, als Anerkennung fr meine Mhe. Damit werdet ihr automatisch registrierter Benutzer und k”nnt euch bei auftretenden Problemen und Fragen schriftlich an mich wenden. Registrierte Benutzer bekommen jederzeit gegen eine formatierte 3,5" Diskette und einen selbstadressierten, frankierten Rckumschlag die neueste Version. Ohne mein (schriftliches) Einverst„ndnis darf das Programm nicht in einen Public Domain Vetrieb aufgenommen werden. Denn wer fr ein Programm schon 10-15 DM plus Porto und Nachnahme bezahlt hat, sieht nicht ein, sich auch noch fr 30 DM registrieren zu lassen. Dieses Programm ist im Laufe von eineinhalb Jahren entstanden und ich habe unz„hlige Stunden daran gearbeitet. Darum m”chte ich darum bitten, mir obigen Betrag auch zu berweisen, wenn ihr mit diesem Programm arbeitet. Das Programm ist zu 100 Prozent in Assembler geschrieben. Das erkl„rt seine Geschwindigkeit, aber auch seine Kompaktheit. Schliežlich sind ber 60 Befehle eingebaut, d.h. es fallen bei diesen Befehlen keine Ladezeiten an. Und nicht jeder hat 2 oder 4 Megabytes und will davon ber 100 KB fr eine riesige, langsame Shell verbraten, nur weil diese in C geschrieben ist und sich enorme Hashtables anlegt. Der CLI ist unter 40K lang und reserviert sich auch nicht viel mehr. Nur einige KBytes fr die Alias und Environments. Mein Dank gilt hier Marcus, der diese Anleitung geLaTeXt und auch sonst mit konstruktiver Kritik nicht gespart hat. Den Assembler, mit dem der CLI geschrieben ist, habe ich auch selbst entwickelt, und wenn das Sharewarekonzept klappt, mache ich den auch zu Shareware. Also noch ein Grund, sich registrieren zu lassen. Helft mit, das Sharewarekonzept zu einem Erfolg zu machen, wie in den USA. Meine Bankverbindung: Postgiroamt 2000 Hamburg Bankleitzahl 200 100 20 Kontonummer 3457 42-203 Vergesst bitte nicht, euren Namen,Adresse und das Stichwort CLI mit auf das šberweisungsformular zu schreiben, sonst weiž ich nicht, woher das Geld gekommen ist. Ihr k”nnt das Geld auch in einen Umschlag stecken: Oliver Scholz Garstedter Weg 226 Postfach 61 02 29 2000 Hamburg 61 Auf elektronischem Wege bin ich an der Universit„t Erlangen ber die Adresse orscholz@faui43.informatik.uni-erlangen.de oder "uber Marcus' folgende e-mail Adressen zu erreichen: uucp marcus@drdhh.hanse.de Zerberus MARCUS_OLK@LINK-HH.ZER Er wird auflaufende Nachrichten dann an mich weiterleiten. Meine Telefonnummer gebe ich am besten gar nicht erst an, weil ich ohnehin fast nie zuhause bin, und auch nicht morgens um sieben schon von den ersten Leuten aus dem Bett geholt werden m”chte. Bitte versteht das. Fast h„tte ich's vergessen: DISCLAIMER/HAFTUNGSAUSSCHLUSS: Das Programm wurde sorgf„ltig entwickelt und getestet. Trotzdem sind, wie es bei Software blich ist, Fehler nicht auszuschliežen. Der Autor sieht sich daher gezwungen, darauf hinzuweisen, dass keine Garantie fr das fehlerfreie Funktionieren dieses Programmes bernommen werden kann, noch fr irgendwelche Sch„den, die aus Fehlern im Programm oder durch Fehlbe- dienung entstehen, gehaftet wird. Mit dem Starten des Programmes werden diese Bedingungen anerkannt. So, und jetzt viel Spass mit dem Programm. Hamburg im Januar 1992 Oliver Scholz Einleitung ---------- Neben dem GEM-Desktop stellt ein Kommandozeileninterpreter (CLI) eine weitere M”glichkeit dar, mit dem ST zu kommunizieren. Hierbei werden die Kommandos nicht mit der Maus angew„hlt, sondern die Befehle mit Namen eingegeben. Es werden dabei zwei verschiedene Arten von Befehlen unterschieden: Residente und nichtresidente Befehle. Die residenten Befehle sind im CLI eingebaut, d.h. sie stehen nach dem Laden unmittelbar zur Verfgung. Nichtresidente Befehle dagegen befinden sich auf Diskette bzw. Festplatte und werden erst von dort geladen. Der Vorteil dabei ist, daž Befehle, die der CLI nicht enth„lt, selbst geschrieben werden k”nnen, und somit der CLI quasi erweitert werden kann. Ein weiterer Vorteil eines CLI ist die M”glichkeit Batchdateien abzuarbeiten, d.h. festgelegte Kommandofolgen mit einem Befehl abarbeiten zu lassen. Die Benutzung der, vom TOS untersttzten, Environmentvariablen ist beim Arbeiten mit dem Desktop leider nicht m”glich. Dies ist schade, denn sie bieten dem Benutzer u.a. die M”glichkeit seine pers”nliche Benutzerumgebung besser zu strukturieren. Ein weiterer Vorteil eines CLI ist also, daž eben diese Environmentvariablen problemlos definier- und ansprechbar sind. Das Arbeiten mit dem CLI ------------------------ Auch wenn zwischen residenten und nichtresidenten Befehlen unterschieden wird, ist dieser Unterschied fr den Benutzer kaum merklich. Erst wenn die Diskette bzw. Festplatte anl„uft, merkt man, daž ein Befehl nichtresident ist. Nach dem Starten meldet sich der CLI mit dem sogenannten Prompt, der z.B. so aussehen k”nnte: `C:>'. Wann immer der CLI diesen Prompt ausgibt, ist er bereit einen Befehl entgegenzunehmen. Dieser Prompt kann aber auch umdefiniert werden. Siehe dazu Abschnitt 'PROMPT'. Eine Kommandozeile besteht aus einem Befehl und optionalen Parametern, die voneinander durch ein oder mehrere Leerzeichen getrennt sind. Zun„chst testet der CLI, ob es sich bei dem Befehl um einen residenten Befehl handelt. Ist das der Fall, so wird der Befehl sofort ausgefhrt. Handelt es sich jedoch um einen nicht eingebauten Befehl, so wird auf dem aktuellen Verzeichnis nach einer Datei gleichen Namens gesucht, und diese geladen. Wurde keine Extension angegeben, so versucht der CLI zun„chst die Extension '.PRG', dann der Reihe nach '.TOS', '.TTP', '.APP' und schliežlich '.BAT'. Hatte keiner dieser Versuche Erfolg, so wird die Meldung 'Command or file not found!' ausgegeben. Ist die Environmentvariable PATH vorhanden, so werden auch die darin angegebenen Pfade durchsucht, bevor die Meldung ausgegeben wird. Grož-/Kleinschreibung spielt bei der Befehlseingabe brigens keine Rolle. Die HOME-Abkrzung in Pfaden ----------------------------- Das Tilde-Zeichen ('~') in einem Pfad steht fr das Homedirectory des jeweiligen Benutzers. Der CLI ersetzt dieses Zeichen also durch den Inhalt der Environmentvariablen HOME. Zum Beispiel: cp tst.txt ~\txt\ w„re gleichbedeutend mit cp tst.txt $HOME\txt\ oder, wenn HOME=e:\usr\olav\, auch cp tst.txt e:\usr\olav\txt\ Wildcards und Dateinamen unter TOS ---------------------------------- Wenn im folgenden von wildcards die Rede ist, so ist damit die M”glichkeit gemeint, Dateinamen unvollst„ndig zu spezifizieren. Einzelne Zeichen in Dateinamen k”nnen gegen ein Fragezeichen (`?') und ganze Zeichenketten durch einen Stern (`*') ersetzt werden. Dabei besteht ein Dateiname aus 8 Zeichen plus 3 optionalen, durch einen Punkt getrennten Zeichen, auch Extension genannt. Also beispielsweise filename.ext. Es ist jedoch zu beachten, wie die beiden Wildcard-Zeichen von TOS interpretiert werden. Wird in einem Dateinamen ein Stern verwendet, so fllt TOS bis zum Punkt mit Fragezeichen auf, d.h. alle Zeichen nach einem Stern bis zum Punkt werden ignoriert! Besondere Vorsicht bei der Verwendung von Wildcards ist also bei L”schoperationen geboten. Fatale Folgen k”nnte folgende Anweisung haben: rm *abc.* TOS interpretiert dies als rm *.* Was das bedeuten kann, ist wohl jedem klar. Also Vorsicht!!! Batchdateien ------------ Eine Batchdatei dient dazu, eine oft benutzte Befehlsfolge zu automatisieren. Soll z.B. die Befehlsfolge date time zusammen ausgefhrt werden, so schreibt man mit einem Editor eine Textdatei, die in der ersten Zeile 'date' und in der zweiten Zeile 'time' enth„lt. Nennt man diese Datei z.B. DATETIME.BAT, so wird bei Eingabe von 'datetime.bat' automatisch die Befehlsfolge 'date time' ausgefhrt. Es ist auch m”glich, einer Batchdatei max. 10 Parameter zu bergeben. Die Parameter werden in der Kommandozeile durch Leerzeichen voneinander getrennt. Der erste Parameter heižt %1, der zweite %2, u.s.w. und der zehnte %0. Taucht in der Batchdatei dann %1 auf, so wird %1 durch den Parameter in der Kommandozeile ersetzt. Soll das '%' dargestellt werden, so wird es einfach verdoppelt: '%%'. Lautet die Batchdatei 'TEST.BAT' etwa: 'echo %1', so bewirkt die Kommandozeile 'test Hallo', daž auf dem Bildschirm 'Hallo' ausgegeben wird. Mit Batchdateien lassen sich z.B. Compiler-/Linkerl„ufe automatisieren: compiler %1.c %1.o linker %1.prg=startup,%1.o,lib Wird diese Batchdatei 'C.BAT' genannt, so bewirkt 'c test', daž die Befehlsfolge compiler test.c test.s linker test.prg=startup,test.o,lib abgearbeitet wird. Als besonderer Clou kann der CLI auch selbst eine Kommandozeile bernehmen. Diese kann dann z.B. der Name einer Batchdatei sein, die nach dem Starten des CLI automatisch abgearbeitet wird. Damit ist es vom Desktop aus z.B. m”glich, COMMAND.PRG als Anwendung anzumelden, und zwar mit der Extension '.BAT'. Wird dann 'C.BAT' doppelt angeklickt, so startet der CLI automatisch und arbeitet die entsprechende Batchdatei ab. Wird keine Kommandozeile angegeben, so sucht der CLI nach einer Batchdatei 'AUTOEXEC.BAT', die, sofern vorhanden, ebenfalls automatisch abgearbeitet wird. In dieser Datei kann man den CLI nach eigenen Wnschen einstellen, z.B. mit 'prompt &p&g' wird der Prompt so eingestellt, daž er das aktuelle Laufwerk und Pfad gefolgt vom '>' ausgibt. Des weiteren ist es m”glich, rekursive Batchdateien zu verwenden, d.h. eine Batchdatei kann eine weitere Batchdatei aufrufen. Dabei kann auf Parameter bergeordneter Batchdateien zugegriffen werden. Die Abarbeitung einer Batchdatei kann mit Ctrl-C abgebrochen werden. Ein- /Ausgabe Umleitung ----------------------- Die Ausgabe aller eingebauten Befehle erfolgt normalerweise auf den Bildschirm, aber es kann manchmal gewnscht sein, Ausgaben auf den Drucker oder in eine Datei auszugeben. Dazu wird an das Ende der eigentlichen Kommandozeile '>dateiname' angefgt. Damit wird eine Datei 'dateiname' angelegt und die Ausgabe des Befehls in diese Datei geschrieben. Als Dateiname sind hier auch 'AUX:' und 'PRN:' zul„ssig. Damit kann die Ausgabe auch auf den Drucker bzw. die serielle Schnittstelle umgelenkt werden. Ist die Datei 'dateiname' schon vorhanden, so wird sie gel”scht, und eine neue Datei er”ffnet. Soll an eine bestehende Datei angeh„ngt werden, so wird statt '>dateiname' der Befehl '>>dateiname' an die Kommandozeile angeh„ngt. Es ist auch m”glich die Eingabe von einer Datei vorzunehmen. Dazu wird an die Kommandozeile 'dateiname' bzw. '2>>dateiname'. Hier sind ebenfalls 'AUX:', 'PRN:' und 'CON:' zul„ssig. Allerdings funktioniert die I/O-Umlenkung nicht bei allen TOS-Versionen fehlerfrei. Erst ab TOS Version 1.4 sollte es fuktionieren. Pipes ----- Eine Pipe ist ein sehr angenehmes Mittel zur Kommunikation zwischen verschiedenen Programmen. Oft ist es gewnscht, die Ausgabe eines Programmes mit einem anderen Programm weiterzuverarbeiten. Eine Pipe gibt die Ausgabe, die ein Programm oder Befehl auf den Bildschirm (eigentlich 'stdout') schreiben will, an ein anderes Programm weiter, das diese Ausgabe als Eingabe akzeptiert. Eine Pipe ist also eine Art gleichzeitige Ausgabe- und Eingabeumlenkung mit verschiedenen Programmen. Das Zeichen, das diese Umlenkung vornimmt, ist der senkrechte Strich ('|'). Soll z.B. die Fehlerliste eines C-Compilers auf eine Datei umgelenkt werden, so kann diese recht lang werden, und meist h„ngt ein Grožteil der Fehler vom ersten Fehler ab. So kann man die Ausgabe durch eine Pipe an HEAD schicken, der nur die ersten paar Fehlermeldungen ausgibt: compiler | head -25 So schreibt der Compiler nur noch die ersten 25 Fehlermeldungen auf den Bildschirm. Man kann diese Ausgabe nun weiter in eine Datei umlenken: compiler | head -25 >errors Nun enth„lt 'errors' die ersten 25 Fehlermeldungen. Sollen die Fehlermeldungen nur seitenweise ausgegeben werden und der Compiler h„lt nicht an, so kann die Ausgabe an MORE geschickt werden: compiler | more Nun erfolgt die Ausgabe seitenweise, als h„tte man: compiler >temp more temp del temp eingegeben. Damit diese Umleitung funktioniert muž die Ausgabe die in eine Pipe geschickt werden soll natrlich auch umlenkbar sein, d.h. das Programm muž seine Ausgaben auf 'stdout' machen. Sollen mehrere Befehle in einer Kommandozeile ausgefhrt werden, ohne daž eine Pipe ge”ffnet wird, so mssen diese jeweils durch Semikolon getrennt werden. Die Befehls Stopuhr ------------------- Wird eine Kommandozeile mit einem 'Klammeraffen' (@) begonnen, so wird eine interne Stopuhr gestartet und die Zeit zur Ausfhrung der Zeile gestoppt. So kann bequem bestimmt werden, wie lange z.B. ein Compiliervorgang dauert. Die History-Funktion -------------------- Der CLI merkt sich immer die letzten 20 Befehlszeilen, und diese k”nnen ber die Cursortasten (auf/ab) wieder abgerufen werden. Das ist sinnvoll, wenn man einen zuvor benutzten Befehl noch einmal benutzen m”chte, ohne ihn neu eingeben zu mssen. Diese Befehle k”nnen auch ggf. editiert werden. Eine weitere M”glichkeit, die letzten Befehle zu sehen und auszufhren, ist der Befehl HISTORY. Damit werden die letzten Befehle ausgegeben und jeweils mit einer Nummer versehen. Mittels Ausrufezeichen k”nnen diese Befehle nun angesprochen werden, und zwar auf zwei verschiedene Arten: o '!5', wrde z.B. den 5. Befehl ausfhren, der nach Starten des CLIs eingegeben wurde, sofern sich dieser Befehl noch im History-Puffer befindet. o '!cc' wrde den letzten Befehl, der mit 'cc' beginnt und sich noch im History-Puffer befindet, ausfhren. Editieren der Eingabezeile -------------------------- Eingegebene Zeichen werden dort eingefgt, wo sich der Cursor befindet. Sind noch Zeichen rechts vom Cursor, so werden diese Zeichen nach rechts verschoben. Die Befehle, die zum Editieren der Kommandozeile zur Verfgung stehen, zeigt Tabelle 1. Eine genauere Erl„uterung verlangt wohl die Dateinamensuche: Es ist manchmal ganz hilfreich, dem Rechner die Suche nach einem komplizierten Dateinamen zu berlassen. Dazu gibt man eine unvollst„ndige Dateinamenspezifikation an und drckt entweder die TAB-Taste oder die Tastenkombination Ctrl-U (unknown). Nun durchsucht der CLI das aktuelle Verzeichnis nach dem ersten Eintrag, der auf die angegebene Spezifikation pažt und gibt ihn auf dem Schirm aus. Ist dies nicht der gewnschte Eintrag, so kann man die Suche mit der Insert-Taste oder der Tastenkombination Ctrl-O (other) fortfhren. Kann kein weiterer Eintrag mehr gefunden werden, so bleibt der letzte gefundene Eintrag in der Kommandozeile stehen. Da das links vom Cursor stehende Wort als Suchspezifikation benutzt wird, bewirkt zweimaliges Drcken der TAB-Taste bzw. Ctrl-U, daž der erste gefundene Dateiname mit dem zweiten Drcken als, nun vollst„ndige, Suchspezifikation interpretiert wird. Dadurch wird i.d.R. bei weiterer Suche mittels Ctrl-O kein anderer Dateiname mehr gefunden. Folgendes Beispiel soll diese sinnvollen Befehle verdeutlichen: Oft m”chte man eine Datei l”schen, will aber nicht den gesamten Namen eingeben. Angenommen, das aktuelle Verzeichnis enth„lt die folgenden Dateien: BLAH.TXT BLAH1.TXT BLAH2.TXT Gesetzt den Fall, man m”chte BLAH1.TXT l”schen. Nun reicht es beispielsweise aus, wenn man folgende Kommandozeile eingibt (ohne die RETURN Taste zu bet„tigen): del bl Drckt man nun die TAB-Taste (oder Ctrl-U) so wrde die unvollst„ndige Spezifikation 'bl' durch 'blah.txt' ersetzt werden. (In diesem Fall w„re ein Leerzeichen als Spezifikation auch ausreichend gewesen). Fhrt man die Suche nun mit Ctrl-O fort, so wird als n„chstes BLAH.TXT durch die gesuchte Datei BLAH1.TXT ersetzt und man kann die erwnschte Kommandozeile durch Bet„tigung der RETURN Taste an den CLI weitergeben. Žhnlich l„žt sich diese Suche auch bei anderen Befehlen anwenden. Auf vielfachen Wunsch wird der gefundene Dateiname ab Version 1.0t in Kleinbuchstaben eingefgt. Taste | Wirkung ------------------------------------------------------------------------- Pfeil links | bewegt den Cursor nach links Pfeil rechts | bewegt den Cursor nach rechts Backspace | l”scht das Zeichen links vom Cursor Delete | l”scht das Zeichen unter dem Cursor TAB | Starte Dateinamensuche Insert | n„chster Eintrag bei Dateinamensuche Clr/Home | l”scht die aktuelle Kommandozeile ESC | wie Clr/Home Ctrl-K | l”scht bis zum Ende der Kommandozeile Ctrl-W | l”scht das n„chste Wort Ctrl-A | springt an den Anfang der Kommandozeile Ctrl-E | springt an das Ende der Kommandozeile Ctrl-U | wie TAB (unknown) Ctrl-O | wie Insert (other) Ctrl-D | wie Delete Ctrl-X | wie Clr/Home Ctrl-B | wie Pfeil links (backward) Ctrl-F | wie Pfeil rechts (forward) Ctrl-P | wie Pfeil hoch (previous) Ctrl-N | wie Pfeil runter (next) ------------------------------------------------------------------------- Tabelle 1: Befehle zum Editieren der Kommandozeile Environmentvariablen -------------------- Das Betriebssystem TOS erm”glicht es, sogenannte Environmentvariablen zu bergeben. In diesen Variablen k”nnen z.B. Suchpfade oder andere Systemeinstellungen gespeichert werden. So kann bei manchen C-Compilern festgelegt werden, wo sich die Include-Dateien befinden. Eine Environmentvariable wird definiert, indem ihr ein neuer Inhalt zugewiesen wird. Ist sie schon vorhanden, wird der vorhandene Inhalt gel”scht und durch den neuen Inhalt ersetzt. Nach dem Starten existiert in der Regel nur eine Variable, n„mlich PATH. Diese Variable legt fest, wo der CLI nichtresidente Befehle sucht, wenn er sie im aktuellen Verzeichnis nicht findet. Der CLI legt nun zu dieser vom TOS belegten Variable einige weitere Variablen an, und zwar HOME, CWD, STATUS, DATE, TIME und u.U. USERNAME und USER. In HOME wird das Verzeichnis vermerkt, in dem der CLI gestartet wurde. In CWD befindet sich immer das aktuelle Verzeichnis (current working directory), und in STATUS wird der Exit-Code des letzten gestarteten Programmes vermerkt. 'STATUS=-33' z.B. bedeutet, daž die angegebene Datei nicht gefunden wurde. DATE und TIME enthalten nach Aufruf der Befehle DATE bzw. TIME unter Angabe der '-s' Option, das Systemdatum bzw. die Systemzeit zum Zeitpunkt des Aufrufes. USER wird von dem LOGIN-Programm angelegt und in dem entsprechenden Abschnitt erl„utert. Es ist nun praktisch, alle ausfhrbaren externen Befehle in einen Ordner zu kopieren, und dem CLI diesen Pfad mitzuteilen. Befindet sich dieser Ordner nun z.B. im Wurzelverzeichnis von Laufwerk C: und heižt 'BIN', so bewirkt PATH=C:\,C:\BIN\ daž nichtresidente Befehle zun„chst im aktuellen Verzeichnis, dann im Wurzelverzeichnis von 'C:' und dann im Ordner 'BIN' auf Laufwerk 'C:' gesucht wird. Bei der PATH Variable k”nnen auch mehrere Pfade angegeben werden, diese mssen dann durch Kommata getrennt werden. Variablen k”nnen aber auch in Befehlen verwendet werden. Um den Inhalt einer Variablen zu benutzen, wird ihr ein Dollar-Zeichen ('$') vorangestellt, mit TEMP=$CWD speichert man das aktuelle Verzeichnis in der Variablen TEMP ab. Zu einem sp„teren Zeitpunkt kann dann mit cd $TEMP wieder in dieses Verzeichnis gelangen. (Eine einfachere M”glichkeit, sich ein Directory zu merken, bieten die Befehle PUSHD/POPD). Weitere M”glichkeiten bieten auch die Befehle PRINTENV, SETENV und ADDENV. Das Plus-Zeichen ('+') erm”glicht es, mit diversen Befehlen auf konkatenierte Environmentvariablen zuzugreifen. Ein Beispiel sollte erkl„ren, was damit gemeint ist: del $HOME+$MYFILE l”scht die Datei, die in MYFILE enthalten ist, auf dem Pfad, der in HOME steht. D.h., die Inhalte der Variablen HOME und MYFILE werden aneinandergeh„ngt und von der Kommandozeile bernommen. Das LOGIN-Programm ------------------ Ab Version 1.0v ist der von frheren Versionen bekannte LOGIN-Befehl als eigenst„ndiges Programm implementiert. Nach der eigentlichen Benutzeridentifikation kann LOGIN nun ein beliebiges in der Datei PASSWD spezifiziertes Programm starten. Die neue Aufrufsyntax lautet: LOGIN [-ai?] [passwd-pfad] Die ensprechenden Parameter werden im folgenden erkl„rt. Mit dem LOGIN-Programm ist es m”glich, mehreren Benutzern eigene CLI-Umgebungen (also Environments) bereitzustellen, sowie fr eine Benutzeridentifikation zu sorgen. Dabei wird jedem Benutzer Benutzername, Passwort, voller Name, ein Home Directory sowie ein zu startendes Programm zugewiesen (meist wird das ein CLI sein). Diese Benutzerdaten werden in einer Datei PASSWD festgelegt. LOGIN sucht diese Datei in dem Directory, welches in der Environmentvariable LOGIN angegeben ist, in dem Verzeichnis \ETC des aktuellen Laufwerkes, sowie in dem Verzeichnis, das LOGIN als Parameter bergeben werden kann (siehe Syntax). So ist es m”glich, daž ein geeignetes Programm auf ankommende Anrufe wartet das Modem abheben l„žt, anschliežend das LOGIN-Programm startet und dieses den Benutzer verifiziert. Schl„gt die Identifikation fehl, wird LOGIN beendet, und die Leitung kann aufgelegt werden. Ist sie erfolgreich, wird das Programm gestartet, das in der PASSWD-Datei angegeben ist. LOGIN fordert nach dem Start zun„chst zur Eingabe des Benutzernamen auf. Ist der Benutzer in der PASSWD-Datei nicht eingetragen, so hat der Benutzer drei Versuche einen gltigen Benutzernamen einzugeben. Ist dies nicht geschehen, so wird LOGIN beendet und zum aufrufenden Programm zurckgekehrt. Ist der Benutzer eingetragen, so wird nach dem Passwort gefragt. Ist kein Passwort vorhanden, gengt Bet„tigung der -Taste. Wurde das gltige Passwort eingegeben, so werden die Environmentvariablen USER und HOME entsprechend gesetzt, in das entsprechende Home-Directory gewechselt und das angegebene Programm ausgefhrt. Aufbau der PASSWD-Datei: user:password:uid:gid:username:home_directory:default_shell CR/LF Ein neuer Usereintrag k”nnte dann etwa so aussehen: SuperUser::0:0:Peter Meier:e:\super\:c:\bin\command.prg Beim 'user', also dem Namen unter dem sich ein Benutzer eingelogged hat und welcher in der Environmentvariablen USER gespeichert wird, wird Grož- und Kleinschreibung unterschieden, ebenso beim 'password'. Das Passwort wird verschlsselt abgespeichert und kann nur mit dem PASSWD-Befehl ge„ndert werden. 'uid' und 'gid' sind ganze Zahlen und werden vom CLI unter TOS ignoriert, mssen aber aus Kompatibilit„tsgrnden zu UN*X vorhanden sein. 'username' ist der volle Benutzername, der in der Environmentvariablen USERNAME gespeichert wird. Die Environmentvariable HOME wird mit 'home_directory' belegt. Im Feld 'default_shell' wird das Programm eingetragen, welches LOGIN nach erfolgreicher Benutzeridentifikation starten soll. Wird beim Aufruf von LOGIN die i-Option gesetzt, so hat der Benutzer beliebig viele Versuche, sich zu identifizieren. Die a-Option sorgt dafr, daž die Benutzeridentifikation ber die serielle Schnittstelle stattfindet und dem aufzurufenden Programm als Befehlszeile "LOGIN.BAT" bergeben wird. In der ersten Zeile dieser Batch-Datei sollte sich der Befehl "CTTY AUX:" befinden, damit die Ein-/Ausgabe auf die serielle Schnittstelle umgeleitet wird. Danach k”nnen weitere Befehle oder Programmaufrufe folgen, wie z.B. die Ausgabe eines freundlichen Intro-Textes. Da diese Datei wohl nur von dem OSCLI korrekt verarbeitet werden kann, ist die a-Option auch nur sinnvoll, wenn dieser als login-shell verwendet wird. Die TERMCAP-Datei ----------------- Wer den CLI ausschliežlich auf bzw. an einem ST als Terminal betreibt, also den CTTY-Befehl gar nicht benutzt, der kann an dieser Stelle zum n„chsten Abschnitt bergehen. Ab Version 1.0x kann der Bildschirmaufbau eines ber den Befehl CTTY AUX: angew„hlten Terminals durch einen aus der UN*X Welt bekannten Mechanismus terminal-spezifisch gesteuert werden. Ben”tigt wird eine sogenannte TERMCAP-Datei (TERMinalCAPabillities), welche fr das gewnschte Terminal die weiter unten genannten Steuersequenzen enth„lt. Der CLI sucht nach dem Start im aktuellen Verzeichnis nach der TERMCAP Datei und l„dt diese in den Hauptspeicher. Ist die Environmentvariable TERMCAP gesetzt, so wird auch in dem in ihr eingestellten Verzeichnis gesucht. Wurde TERMCAP erfolgreich geladen, so wird eine entsprechende Meldung auf dem Bildschirm ausgegeben. Kann keine TERMCAP-Datei geladen werden, unterbleibt diese Meldung und der Bildschirmaufbau wird durch die Standard ST VT52 Sequenzen gesteuert. šber die Environmentvariable TERM l„žt sich jetzt das gewnschte Terminal anw„hlen, sofern es in der TERMCAP-Datei einen passenden Eintrag gibt. Die Beispiel-TERMCAP-Datei zeigt, welche Sequenzen fr DEC VT52 und VT100 Terminals ben”tigt werden. Die folgenden termcap-Eintr„ge wertet der CLI aus: nd Cursor nach rechts cl Bildschirm l”schen up Cursor nach oben ce Bis Zeilenende l”schen nb Cursor nach links sc Cursorposition retten rc Cursorposition wiederherstellen wp Zeilenumbruch einschalten de Zeile l”schen, und Cursor an den linken Rand Weitergehende Informationen zum termcap-Mechanismus gibt's beim lokalen UN*X-Guru. Benutzung des CLI durch Programme --------------------------------- Der CLI untersttzt auch die GEMDOS-Variable _shell_p bei Adresse $4F6, hexadezimal. Dadurch wird es m”glich, daž ein Programm das vom CLI aufgerufen wurde, dem CLI eine Kommandozeile zur Ausfhrung bergibt. Ein Beispiel dafr ist der system() Befehl einiger C-Compiler. Schreibt man z.B. ein MAKE-Programm so muž man nicht den RM Befehl abfangen, sondern schickt ihn einfach mittels system() an den CLI, und l„žt ihn dort ausfhren. Der CLI und MiNT ---------------- Der CLI erkennt die Anwesenheit von MiNT im Speicher und bercksichtigt das bei einigen Befehlen; so werden UID und GID beim Login automatisch gesetzt. Der VER Befehl erkennt die MiNT Version und gibt sie mit aus. DIR akzeptiert die Pseudolaufwerke Q:, V: und X:. WAIT benutzt den S_Yield() Systemcall. Als neuer Befehl gibt PS die Prozežtabelle aus. Schliežlich wird Multitasking untersttzt, indem ein Programm im Hintergrund gestartet wird, wenn das erste Zeichen einer Zeile das '&' Zeichen ist. Das ARGV-Schema --------------- Der CLI untersttzt das neue ARGV-Protokoll, um Programmen u.a. den Zugriff auf den eigenen Namen zu erm”glichen (ARGV[0]). Leider vertragen sich einige Programme nicht mit dem neuen Protokoll. Daher kann man es mit einer neuen Environment Variablen ein- und ausschalten. Ist die Variable N127 vorhanden, so ist das ARGV Protokoll eingeschaltet. Der zugewiesene Wert ist dabei gleichgltig. Ist sie nicht vorhanden, so wird das Protokoll nicht untersttzt. Die Befehle ----------- Hier sollen nun die einzelnen eingebauten Befehle des CLI vorgestellt und erl„utert werden. ADDENV ------ Syntax: ADDENV varname string Mit ADDENV kann an eine Environmentvariable etwas angeh„ngt werden. 'varname' ist dabei der Name der Variable, und 'string' wird (durch ein Komma getrennt) and den Inhalt der Variable angeh„ngt. Ein Beispiel: addenv PATH $HOME Nun wrde auch das HOME-Verzeichnis mit in die Suche nach externen Befehlen einbezogen. ALIAS ----- Syntax: ALIAS [ [-d] string1 string2 ] Mit ALIAS kann man die Zeichenkette 'string2' der Zeichenkette 'string1' zuweisen. D.h., gibt man nach einer ALIAS-Zuweisung, nach obiger Syntax, in der Kommandozeile string1 ein, so versucht der CLI 'string2' auszufhren. So bewirkt z.B. alias d dir dass `d' als Befehl erkannt wird und wie der DIR-Befehl wirkt. Wird die `-d' (delete) Option angegeben, so wird die entsprechende Zeichenkette aus der Alias-Liste entfernt. alias -d d macht also die eben gemachte Zuweisung rckg„ngig. Wird ALIAS ohne Parameter angegeben, wird die Liste der definierten Befehle ausgegeben. BAUD ---- Syntax: BAUD baudrate,word size,parity,stop bits Mit dem BAUD-Befehl kann die serielle Schnittstelle des ST (RS-232) konfiguriert werden. Zun„chst wird die Baudrate angegeben, dann die Anzahl der Datenbits, gefolgt von der Parit„t (n,o,e fr none, odd, even Parit„t) und schliesslich die Anzahl der Stopbits. Mit: baud 300,8,n,1 wird also z.B. die Schnittstelle auf 300 Baud, keine Parit„t, 8 Datenbits und ein Stopbit eingestellt. CAT --- Syntax: CAT {filename} Ist equivalent zu TYPE. CD oder CHDIR ------------- Syntax: CD [pathname] oder CHDIR [pathname] Mit CD (change directory) wird ein neues aktuelles Verzeichnis gew„hlt. Normalerweise wird der angegebene Ordnername an den aktuellen Pfad angeh„ngt. Die Abkrzung '..' bezieht sich auf das n„chste bergeordnete Verzeichnis. Ist der aktuelle Pfad z.B. C:\TEMP\COMP\ und wird das Kommando 'cd ..' eingegeben, so wechselt das aktuelle Verzeichnis auf C:\TEMP\. Es kann aber auch ein kompletter neuer Pfad eingegeben werden, z.B. 'cd e:\' oder 'cd a:\test\'. Wird kein Parameter angegeben, so wechselt CD in das HOME-Verzeichnis. Der CLI bietet hier dem Benutzer die M”glichkeit, Pfadnamen mittels Wildcards anzugeben. Es werden einfach die signifikanten Zeichen eines Pfadnamens, gefolgt vom Asterisk-Zeichen ('*') angegeben. Der CLI erg„nzt dann zum vollst„ndigen Pfadnamen. Angenommen das aktuelle Verzeichnis sei C:\ und es gibt ein Unterverzeichnis \SOURCE\, in welches man wechslen m”chte. Dann wrde man vielleicht folgenden Befehl verwenden: cd sou* Damit wird der CLI in das Verzeichnis C:\SOURCE\TEST\ wechseln. CHMOD ----- Syntax: CHMOD [+|-][r|h|s|a] dateiname Mit diesem Befehl k”nnen die Dateiattribute ver„ndert werden, „hnlich wie LOCK/UNLOCK etc. Jedes einzelne Attribut kann mit einem Befehl gezielt gesetzt oder gel”scht werden, z.B.: chmod +r-sh test.txt setzt das 'read-only' Attribut und l”scht die 'system' und 'hidden' Attribute, und wirkt so wie lock test.txt hide test.txt CLICK ----- Syntax: CLICK [ON|OFF] CLICK OFF schaltet den Tastaturklick ab, CLICK ON schaltet ihn wieder ein. CLS --- Syntax: CLS Der Befehl CLS (clear screen) l”scht den Bildschirm. Es werden dazu die Terminalsequenzen eines DEC VT-52 Terminals verwendet (also: ESC-H-ESC-J). COPY oder CP ------------ Syntax: COPY [-ns] pathname [pathname] oder CP [-ns] pathname [pathname] Mit dem Befehl COPY, bzw. CP kann eine Kopie einer Datei in einem anderen Verzeichnis oder Laufwerk angelegt werden. Hierbei sind Wildcards erlaubt. Ist im Zielpfad bereits eine Datei gleichen Namens vorhanden, fragt der CLI nach, ob diese gel”scht werden soll, oder ob man die Kopieranweisung abbrechen will. Wird kein Zielpfad angegeben, so ist der aktuelle Pfad Zielpfad der Operation. Das Dateidatum bleibt hierbei erhalten. Um die Kopie mit dem aktuellen Systemdatum zu versehen, siehe TOUCH Befehl. Einige Beispiele: - COPY *.TXT A:\ kopiert alle Dateien, die auf '.TXT' enden aus dem aktuellen Verzeichnis auf Laufwerk A: - COPY *.TXT C:\*.DOC kopiert alle Dateien, die auf '.TXT' enden auf Laufwerk C und benennt sie gleichzeitig in '.DOC' um. - COPY HALLO.TXT TEST.DOC legt eine Kopie der Datei HALLO.TXT an und nennt sie TEST.DOC. Mit der Option '-n' (no query) wird die Nachfrage abgeschaltet, ob eine im Zielpfad schon vorhandene Datei gleichen Namens berschrieben werden soll oder nicht. Die Option `-s' (silent) bewirkt, daž der Kopiervorgang nicht auf dem Schirm mitprotokolliert wird. CTTY ---- Syntax: CTTY device Mit dem Befehl CTTY (change TTY) wird dem CLI mitgeteilt, daž nun alle Ausgaben und Eingaben der internen Befehle ber die serielle Schnittstelle AUX: oder ber dir Konsole CON: abgewickelt werden sollen. Damit ist der CLI fernbedienbar. Bei Betrieb ber die serielle Schnittstelle wird ab Version 1.0t weiterhin die Ausgabe auf den Bildschirm ausgegeben. Ab Version 1.0x ist zus„tzlich die Eingabe von der Konsole m”glich. DATE ---- Syntax: DATE [-s] Mit dem DATE Befehl kann das Systemdatum abgefragt und gestellt werden. Nach Eingabe von DATE wird das aktuelle Datum ausgegeben. Nun kann ein neues Datum eingegeben werden. Wird stattdessen ein ungltiges Datum angegeben oder einfach nur die -Taste bet„tigt, bleibt das Datum unver„ndert. Bei Angabe der '-s' Option (set) wird das aktuelle Datum im Format Wochentag , Tag . Monat Jahr in die Environmentvariable DATE geschrieben. DEL --- Syntax: DEL [-qs] {filename} L”scht die angegebene Datei. Es k”nnen auch Wildcards ('*') angegeben werden, aber dabei ist Vorsicht geboten! Man l”scht sich nur allzuleicht Daten, die man nicht l”schen wollte! So l”scht del *.prg alle Dateien im aktuellen Verzeichnis, die die Extension `.PRG' besitzen. Siehe hierzu auch unbedingt Abschnitt `Wildcards und Dateinamen unter TOS'. Gibt man jeden Namen einzeln an und/oder nutzt die '-q' (query, Nachfrage) Option, geht man auf Nummer sicher. DEL und seine Equivalente RM und ERA geben eine englische Meldung aus, was gel”scht wird. Ist diese englische Meldung in einer Batchabarbeitung st”rend, so kann diese auch mit der '-s' Option (silent) unterdrckt werden. DELENV ------ Syntax: DELENV varname Mit diesem Befehl kann die Environmentvariable 'varname' gel”scht werden. Dieser Befehl stellt also das Komplement zu SETENV dar. DIR --- Syntax: DIR [-aepw] [pathname] Der Inhalt des angegebenen Pfades, oder, wenn kein Pfad angegeben ist, der Inhalt der aktuellen Directories wird ausgegeben. Normalerweise werden Dateien, bei denen das Hidden- oder System-Attribut gesetzt ist, nicht mit ausgegeben. Wird jedoch die '-a' Option (all) angegeben, so werden auch diese Dateien mit ausgegeben. Mit der '-e' Option (extended) werden auch die Attribute 'read-only', 'system' und 'hidden' mit ausgegeben. Ist das Attribut gesetzt, so erscheint der Buchstabe 'r','h' oder 's' und wenn das Attribut gel”scht ist, erscheint ein '-'. Mit der '-p' Option (pause) wird auf einen Tastendruck gewartet, sobald eine volle Seite ausgegeben wurde. Mit der '-w' Option (wide) werden 6 Dateinamen pro Zeile ausgegeben, dafr aber ohne L„nge, Datum und Uhrzeit. DUMP ---- Syntax: DUMP [-sHEXOFFSET] filename Dieser Befehl gibt einen Hexdump der angegebenen Datei aus. Wird als Option ein Offset angegeben, so wird die Datei erst ab diesem Offset ausgegeben. Beispiel: dump -s2E test.txt DUPLEX ------ Syntax: DUPLEX [FULL|HALF] Schaltet im Terminalbetrieb (TERM-Befehl) ein lokales Echo ein und aus. Ein Aufruf ohne Parameter liefert die momentane Betriebsart. ECHO ---- Syntax: ECHO [ON|OFF|string] Die auf diesen Befehl folgende Zeile wird, normalerweise, auf dem Bildschirm ausgegeben. Dieser Befehl wird gerne in Batchdateien verwendet um Meldungen auf dem Bildschirm auszugeben. Man kann ihn aber auch dazu benutzen, um eine kleine Textdatei zu erstellen, und das geht so: Die erste Zeile der Batchdatei wird mit '>dateiname' in eine Datei umgeleitet. Alle weiteren Zeilen werden mit '>>dateiname' an die bestehende Datei angeh„ngt. Dieses Verfahren ist allerdings ziemlich aufwendig und nur dann sinnvoll, wenn eine kleine Datei schnell erstellt werden soll und kein Texteditor zur Verfgung steht. Auch Sonderzeichen k”nnen mit Echo ausgegeben werden. Dazu muž anstelle des Sonderzeichens '&hh' angegeben werden, wobei 'hh' hierbei der Hexcode des Sonderzeichens ist. ECHO besitzt noch eine weitere Funktion; mit ihm kann festgelegt werden, ob bei der Abarbeitung einer Batch-Datei die einzelnen Befehle ausgegeben werden oder nicht. Grundeinstellung ist ECHO OFF. Mit ECHO ON schaltet man die Ausgabe ein. Wird nur ECHO eingegeben, wird der aktuelle ECHO-Status abgefragt. ERA --- Syntax: ERA [-qs] {filename} Ist equivalent zu DEL. EXIT ---- Syntax: EXIT Dieser Befehl beendet den CLI und kehrt zum aufrufenden Programm zurck, und das ist in der Regel das Desktop. FKEY ---- Syntax: FKEY [-e] Fnumber=text Mit diesem Befehl kann einer der 10 Funktionstasten ein maximal 19 Zeichen langer Text zugewiesen werden, der bei Bet„tigung der entsprechenden Taste dann ausgegeben wird. Beispiel: fkey F4=Hallo Welt Die '-e' Option (execute) erm”glicht es, ber Funktionstasten direkt Programme oder Batches auszufhren. Beispiel: fkey -e F10=gem uniterm FORMAT ------ Syntax: FORMAT [A:|B:] [-s|-d|-dh] [-vvolumename] Es wird eine Diskette in Laufwerk A: oder B: formatiert. Die '-s' Option formatiert im Single-Sided (360K) Format und die '-d' Option im Double-Sided (720K) Format. Bei -dh wird die Diskette auf 1.44MB (Double sided, high density) formatiert, jedoch nur, wenn der ST ber ein HD-Laufwerk verfgt und entsprechend modifiziert worden ist. Die -v Option erm”glicht es, der zu formatierenden Diskette den Namen 'volumename' zu geben. Dies ist aber nachtr„glich auch noch mit dem LABEL Befehl m”glich. FRE --- Syntax: FRE [drive] Gibt den Namen, den verfgbaren sowie den bereits belegten Speicherplatz des aktuellen Laufwerks aus. Es ist auch m”glich eine Laufwerksspezifikation 'drive' anzugeben, z.B.: fre d: wrde Namen, verfgbaren und belegten Speicherplatz von Laufwerk 'D:' ausgeben. GEM --- Syntax: GEM filename Startet ein Programm, welches GEM-Routinen benutzt. Es werden also der Mauszeiger eingeschaltet und der Bildschirm gel”scht. 'filename' sollte hierbei eine ausfhrbare Bin„rdatei sein. HEAD ---- Syntax: HEAD [-anzahl] [filename] Gibt die ersten paar Zeilen einer Textdatei aus. Normalerweise werden die ersten 10 Zeilen ausgegeben. Mit dem Anzahl-Parameter kann jedoch eine beliebige Zeilenzahl eingestellt werden. Wird kein Dateiname angegeben, kann HEAD als Filter verwendet werden, d.h. er bezieht seine Eingabe durch eine Pipe von einem anderen Programm. HELP ---- Syntax: HELP Mit diesem Befehl wird eine šbersicht der CLI-Befehle ausgegeben. Ein Drcken der HELP Taste hat die gleiche Wirkung. HIDE ---- Syntax: HIDE [-s] {filename} Bei den angegebenen Dateien werden die Hidden- und System-Attribute gesetzt. Damit sind diese Dateien (in TOS-Versionen ab Blitter-TOS) vom Desktop aus nicht mehr sichtbar. Damit diese Dateien vom DIR Befehl erkannt werden, muž beim DIR Befehl die '-a' Option angegeben werden. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab. HISTORY / ! ----------- Syntax: HISTORY / !number / !string Gibt die letzten 20 Befehle auf dem Bildschirm aus. Es ist nun m”glich, einen der in der History gespeicherten Befehle anzuw„hlen. Und zwar: Cursortasten Mit den Cursortasten `Pfeil-hoch' und `Pfeil-runter' werden die im history-Puffer gespeicherten Befehle bei jedem Tastendruck in der Kommandozeile dargestellt und k”nnen dann editiert oder einfach noch einmal ausgefhrt werden. direkte Wahl Die direkte Wahl bietet folgende zwei M”glichkeiten: o !number w„hlt den Befehl an, der an der Stelle 'number' im history-Puffer steht. Also beispielsweise C:> history 1: dir 2: cp a:\hallo c:\ 3: history C:> !1 wrde den Befehl DIR ausfhren. o !string w„hlt den ersten Befehl im im history-Puffer an, der 'string' als Teilwort enth„hlt. Um bei obigem Beispiel zu bleiben, wrde !cp den Befehl Nummer 2 im history-Puffer ausfhren, also cp a:\hallo c:\ HSHAKE ------ Syntax: HSHAKE [XON|RTS|NONE] HSHAKE stellt das Protokoll der seriellen Schlittstelle der Atari ein. Wird kein Parameter oder NONE angegeben, so wird das Handshake abgeschaltet, bei XON schaltet der CLI den Atari auf XON/XOFF-Protokoll um, und bei RTS auf RTS/CTS, was aber leider in „lteren TOS-Versionen nicht funktioniert. IGNORE ------ Syntax: IGNORE command Mit dem IGNORE-Befehl kann man erzwingen, daž ein Befehl von Disktte/Festplatte geladen wird, auch wenn bereits ein eingebauter Befehl gleichen Namens vorhanden ist. ignore dir wrde bewirken, daž sich der CLI so verh„lt, als w„re der DIR-Befehl nicht eingebaut. Daraufhin sucht er dann die PATH-Variable nach einem Programm namens DIR.TTP, DIR.PRG usw. ab. Siehe dazu auch REVIVE. INVERT ------ Syntax: INVERT Invertiert den Bildschirm, also weiže Buchstaben auf schwarzem Grund und umgekehrt. LABEL ----- Syntax: LABEL volumename Dem aktuellen Laufwerk wird der Name 'volumename' gegeben. LOCK ---- Syntax: LOCK [-s] {filename} Bei der angegebenen Datei wird das 'read-only' Attribut gesetzt. Danach kann diese Datei nur noch gelesen, aber nicht mehr beschrieben werden. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab. LS -- Syntax: LS [-aepl] [pathname] Gleiche Funktion wie DIR, nur mit Voreinstellung Option '-w' gesetzt. LTTY ---- Syntax: LTTY Der Befehl LTTY (lock TTY) erm”glicht eine Verriegelung der Tastatur. Der Benutzer wird nach einem Passwort gefragt und muž dieses dann zur Sicherheit noch einmal eingeben. Die Tastatur l„žt sich nun nur noch durch Eingabe dieses Passwortes oder natrlich durch einen Reset des Rechners wieder entriegeln. MAN --- Syntax: MAN [level] command Es wird die Datei 'command.*' aus einem der Directories, welche in der Environmentvariablen MAN gespeichert sind, ausgegeben. Man kann sich so also ein oder mehrere Directories mit Hilfstexten (ASCII-codiert) anlegen, die jeweils die Endung '.MAN' tragen k”nnen. Wird dabei die optionale Zahl `level' angegeben, so sucht der CLI nach einer Extension, die mit dieser Zahl beginnt. Dabei darf sich `level' im Bereich Null bis Sieben bewegen. So k”nnte die Beschreibung fr den C-Befehl `strcpy()' etwa `STRCPY.3C' heižen. Dabei steht die 3 fr Level 3 und das `C' fr die Programmiersprache C. Man k”nnte also den Utilities und anderen Programmen Level 1, den Betriebssystemaufrufen den Level 2 und Bibliotheksfunktionen verschiedener Programmiersprachen den Level 3 zuordnen, wobei der drei noch ein Kennbuchstabe fr die Programmiersprache nachgestellt wird. Manchmal kann es sinnvoll sein, mehrere Hilfstexte in einer Datei abzulegen, die aber unter verschiedenen Namen angesprochen werden soll. So k”nnte man alle Stringbefehle in einer Datei 'STRING.3C' ablegen. Nun soll diese Datei auch unter den Namen 'strcpy', 'strcmp', 'strcat' u.s.w. angesprochen werden. Dazu wird eine Datei 'MAN.IDX' im Hilfstextdirectory angelegt, die pro Zeile einen Namen einer Datei zuordnet. Dabei beginnt eine Zeile mit dem Namen, unter dem die Datei angesprochen werden soll. Dann folgen ein oder mehrere Leerzeichen und schliežlich der Dateiname. Die Datei k”nnte also z.B. so aussehen: strcpy string strcmp string strcat string fopen gemfile fcreate gemfile Eine solche Indexdatei kann in jedem der in der MAN Environmentvariablen abgelegten Directories angelegt werden. Dabei bezieht sich jeder Dateiname auf das jeweilige Directory! Normalerweise wird die Textdatei durch den internen MORE Befehl ausgegeben. Es kann dazu jedoch auch z.B. ein Programm benutzt werden. Dazu wird in der PAGER-Variablen der Name des Befehls abgelegt, der statt MORE die Datei ausgeben soll. MFREE ----- Syntax: MFREE Dieser Befehl gibt den aktuell verfgbaren Hauptspeicherplatz aus. MKDIR ----- Syntax: MKDIR dirname Um einen neuen Ordner 'dirname' anzulegen verwendet man der MKDIR Befehl. mkdir TEST legt einen Ordner mit Namen TEST an. MORE ---- Syntax: MORE {filename} MORE ist ein Ausgabebefehl, der Dateien seitenweise auf dem Bildschirm anzeigt, und ausgibt, wieviel Prozent der Datei schon ausgegeben sind. Mit der Taste 'b' kann zurckgebl„ttert werden, jede andere Taste bl„ttert vorw„rts und mit der Taste 'n' wird, wenn mehrere Dateien ausgegeben werden sollen, die aktuelle Ausgabe abgebrochen und mit der n„chsten Datei fortgefahren. Mit Control-C oder 'q' kann jederzeit die Ausgabe abgebrochen werden. Wird kein Dateiname angegeben, so liest MORE von 'stdin', d.h. es kann mit einer Pipe die Ausgabe eines Programmes als Eingabe von MORE verwendet werden. MOVE oder MV ------------ Syntax: MOVE [-ns] pathname [pathname] oder MV [-ns] pathname [pathname] Bewirkt exakt dasselbe wie COPY, jedoch wird die Quelldatei nach dem Kopiervorgang gel”scht. Die Datei(en) werden also verschoben. Die Option `-s' (silent) bewirkt, daž dieser Vorgang nicht auf dem Schirm mitprotokolliert wird. MS -- Syntax: MS [ON|OFF] MS ON aktiviert den Mauszeiger. MS OFF ist das Komplement zu MS ON. NECHO ----- Syntax: NECHO string Gibt eine Zeile aus („hnlich wie ECHO), nur wird am Ende der Zeile kein CR/LF ausgegeben. PASSWD ------ Syntax: PASSWD Mit diesem Befehl kann man sein Passwort „ndern. Die Benutzerfhrung ist selbsterkl„rend. PATH oder PWD ------------- Syntax: PATH oder PWD Mit diesem Befehl wird das aktuelle Verzeichnis ausgegeben. POPD ---- Syntax: POPD Ein Pfad wird vom Pfadstapel geholt und zum aktuellen Pfad gemacht. Siehe hierzu auch Abschnitt 'PUSHD'. PRINTENV -------- Syntax: PRINTENV Gibt die Namen aller Environmentvariablen und ihren Inhalt auf dem Bildschirm aus. PROMPT ------ Syntax: PROMPT [string] Nach dem Starten meldet sich der CLI normalerweise mit einem Prompt, der aus dem aktuellen Verzeichnis, und einem `>'-Zeichen aufgebaut ist (MS-DOS l„sst grssen). Mit dem PROMPT-Befehl kann nun dieser Prompt umdefiniert werden. Der angegebene 'string' wird unver„ndert als Prompt ausgegeben, bis auf einige speziellen Zeichenkombinationen, die in Tabelle 2 aufgefhrt sind. &n | aktuelles Laufwerk &p | aktueller Pfad &d | Datum &t | Zeit &v | Version &g | > &l | < &q | = &h | Backspace &_ | CR/LF &e | Escape && | Ampersand-zeichen &m | Dollar (MONEY)-Zeichen &u | Pipe-Zeichen ('|') &! | aktuelle Zeilennummer Tabelle 2: Sonderzeichen im Prompt Einige dieser Zeichen k”nnten nicht direkt eingegeben werden oder h„tten fr den CLI eine besondere Bedeutung, so wrde das '>' als Umlenkung erkannt werden. Wenn daher im Prompt das '>' erscheinen soll, so wird an seiner Stelle '&g' im Promptstring eingegeben. Mit prompt &p&g wird immer der aktuelle Pfad, gefolgt vom '>' Zeichen als Prompt ausgegeben. PROMPT ohne Argument stellt wieder den default Prompt ein, d.h. so, wie er nach dem Starten war. PUSHD ----- Syntax: PUSHD [pfadname] Bef”rdert den angegebenen Pfad auf den Pfadstapel. Der Pfadstapel fažt max. 16 Pfade. Wird PUSHD ohne Argument aufgerufen, so wird der aktuelle Pfad abgelegt. READ ---- Syntax: READ varname Liest einen String von der Tastatur ein und weist ihn der angegebenen Environmentvariablen zu. RENAME oder REN --------------- Syntax: RENAME oder REN [-n] pathname filename Mit diesem Befehl kann eine oder mehrere Dateien umbenannt werden. Ist schon eine Datei gleichen Namens vorhanden, so wird gefragt, ob diese gel”scht werden soll, oder ob die Quelldatei nicht umbenannt werden soll. Beispiel: rename *.txt *.doc „ndert die Endungen aller '.TXT' Dateien im aktuellen Verzeichnis in '.DOC' um. Mit der Option '-n' (no query) wird die Nachfrage abgeschaltet, ob eine im Zielpfad schon vorhandene Datei gleichen Namens gel”scht werden soll oder nicht. (destructive rename) REVIVE ------ Syntax: REVIVE command Mit diesem Befehl kann ein Befehl, der mit dem IGNORE-Befehl abgeschaltet wurde, wieder zum Leben erweckt werden. RM -- Syntax: RM [-qs] filename [filename] Siehe dazu DEL. RMDIR ----- Syntax: RMDIR [-r|-a] pathname Mit diesem Befehl kann ein Ordner gel”scht werden. Dabei muž der Ordner mit komplettem Pfad angegeben werden. Der Order muž im Normalfall leer sein. Ist sich der Benutzer sicher, daž ein kompletter Ordner gel”scht werden soll, so kann er unter Angabe der Option '-r' oder '-a' jeden beliebigen Ordner l”schen. SETENV ------ Syntax: SETENV varname [string] Mit diesem Befehl kann einer Environmentvariablen ein neuer Inhalt, 'string', zugewiesen werden. Name und Inhalt sind dabei entweder durch ein Leerzeichen oder ein '='-Zeichen getrennt. Man kann natrlich auch ohne SETENV einer Variablen einen Inhalt zuweisen. setenv TEMP Hallo und TEMP=Hallo sind vollkommen gleichwertig. Wird SETENV ohne Parameter aufgerufen, so werden alle vorhandenen Variablen ausgegeben (genau wie beim PRINTENV-Befehl). SLEEP ----- Syntax: SLEEP Mit diesem Befehl l„sst sich der Bildschirm dunkelschalten. Dies ist sinnvoll, wenn man die Arbeit mit dem CLI fr l„ngere Zeit unterbricht, aber den Rechner nicht abschalten m”chte. Ein zuvor eingegebener SLEEP Befehl schont dann die Bildr”hre des Monitors. Der Schirm wird durch Bet„tigen einer beliebigen Taste wieder eingeschaltet. STEP ---- Syntax: STEP step_rate Der STEP-Befehl stellt eine neue Steprate fr die beiden Laufwerke A: und B: ein. Erlaubte Werte fr step_rate sind: 2,3,6 und 12. Die Angabe erfolgt in Millisekunden. TEE --- Syntax: TEE [-a] filename Der Inhalt einer Pipe wird in eine Datei 'filename' abgezweigt, die Funktion der Pipe dadurch nicht beeintr„chtigt. Mit der '-a' Option wird an eine bestehende Datei angeh„ngt. TERM ---- Syntax: TERM TERM aktiviert den Terminalmodus. Dieser entspricht dem des von Atari gelieferten Emulator-ACC's, welches einen einfachen VT-52 Emulator zur Kommunikation ber die serielle Schnittstelle darstellt. Alle von der Tastatur eingegebenen Zeichen werden also an die serielle Schnittstelle gesendet. Ggf. muž die Baudrate mit dem BAUD-Befehl eingestellt werden. Nach dem Einschalten befindet sich der Rechner normalerweise im 9600 Baud Modus. Verlassen wird der Terminalmodus mit der oder Taste. Bei Remotebetrieb ist der TERM-Befehl nicht sinnvoll, und ist daher deaktiviert. TIME ---- Syntax: TIME [-s] Der TIME-Befehl dient dazu, die Systemzeit abzufragen oder zu stellen. Nach Eingabe des Befehls wird die aktuelle Zeit ausgegeben. Dann kann eine neue Zeit eingegeben werden. Ist die eingegebene Zeit ungltig oder wird einfach nur eingegeben, so bleibt die ursprngliche Zeit unver„ndert. Bei Angabe der '-s' Option (set) wird die aktuelle Zeit in die Environmentvariable TIME geschrieben. TOUCH ----- Syntax: TOUCH [-s] {filename} TOUCH aktualisiert das Dateidatum also, das Erstellungsdatum einer Datei. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab. TYPE ---- Syntax: TYPE {filename} Gibt die angegebene(n) Datei(en) aus. Die Ausgabe kann z.B. in eine Datei umgelenkt werden (wie bei den meisten anderen Befehlen auch). UNALIAS ------- Syntax: UNALIAS name Ein Eintrag wird aus der ALIAS-Liste entfernt. Bewirkt dasselbe wie ALIAS mit der `d'-Option. UNHIDE ------ Syntax: UNHIDE [-s] {filename} Bei den angegebenen Dateien werden die Attribute 'hidden' und 'system' gel”scht. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab. UNLOCK ------ Syntax: UNLOCK [-s] {filename} Bei den angegebenen Dateien wird das 'read-only' Attribut gel”scht. Die `-s' Option (silent) schaltet die Vollzugsmeldung ab. VERSION oder VER ---------------- Syntax: VERSION oder VER Gibt die Versionsnummer des CLI und TOS-ROMs aus. WAIT ---- Syntax: WAIT [-s|-t time|-d date] Dieser Befehl gibt eine englische Meldung aus und wartet auf ein . WAIT wird sinnvollerweise nur in Batchdateien verwendet. Ist die englische Meldung in einer Batchabarbeitung st”rend, so kann diese auch mit der '-s' Option (silent) unterdrckt werden. Bei Angabe der '-t' bzw. '-d' Option wartet der CLI bis zur angegebenen Uhrzeit bzw. zum angegebenen Datum. Das Format ist dasselbe wie bei den Befehlen TIME und DATE. WATCH ----- Syntax: WATCH [ON|OFF] Mittels Watch kann der CLI die DCD-Leitung der RS232-Schnittstelle berwachen, und terminiert, falls der Carrier verschwindet. Ohne Parameter gibt WATCH den momentanen Zustand aus. WC -- Syntax: WC [filename] Mit WC (Word Count) werden die Zeichen, Zeilen und Worte einer Textdatei gez„hlt. Wird kein Dateiname angegeben, bezieht WC seine Eingabe von 'stdin'. Damit kann WC seine Eingabe durch eine Pipe von einem anderen Programm beziehen.