#MAIN
HILFE-FUNKTION
--------------
cd          <verzeichnis>
dir         <pfad> [/p] [/w]
mkdir       <pfad!>
rename      <pfad!> (<verzeichnis> | <pfad!>)
type        <pfad> [/p] [/t] [/n]
eraseln     <pfad> {<zeilennummer>} [/p]
copy        <pfad> <verzeichnis>
delete      <pfad> [/p]
time        [(HH:MM[:SS]]
date        [(DD:MM:[YY]YY]
dfree       [<Laufwerk>:]
pwd         [<alt>] [<neu]
alias       <ersatz> <befehl und argumente>
help        <befehl>
version, memory, cls, info, exit
Tasten: <ESC>, <TAB>
    <pfad>          : Pfad und Wildcard oder Pfad und Dateiname
    <verzeichnis>   : Pfadangabe, endet mit '\'
    <pfad!>         : Pfad und Dateiname
TimeOut: 100-Sekunden ! Kommentare mit ; einzuleiten !
*
#DIR
dir

Aufruf mit möglichen Parametern:

            dir pfad /p /w

"dir" zeigt ein Inhaltsverzeichnis der in "pfad" befindlichen 
Dateien an. Der anzugebende Pfad kann relativ oder absolut sein. 
Werden keine Wildcards angegeben, wird "*.*" angenommen, ansonsten 
werden nur in den Wildcard passende Dateien und Ordner angezeigt.
Ordner werden immer zuerst aufgelistet, danach kommen die normalen
Dateien (unsortiert).
Die ausgegebenen Daten haben folgende Form:

FILENAME.EXT  Dateigrö₧e  Datum     Zeit      Attributbits

Am Ende wird noch die Anzahl der gefundenen Objekte und deren
Gesamtgrö₧e angezeigt.

Parameter:

/w          Spaltenausgabe
Mit dieser Option erzwingt man eine Spaltenbildung. Es werden nur 
die Dateinamen angezeigt. Ist die Option nicht angegeben, werden 
auch noch alle zur Datei gehörenden Daten (Grö₧e, Erstellungsdatum 
und -zeit, Flags) angezeigt.

/p          Auf Taste warten
 (siehe "help /p")
*
#CD
cd

Aufruf:

            cd pfad

"cd" steht für "change directory" und wechselt zu einem anderen 
Pfad, d.h. der aktuelle Pfad wird geändert.
"cd .." geht eine Ebene höher, "cd \" zum Wurzelverzeichnis.            
*
#DELETE
#DEL
#KILL
delete
  (del)
  (kill)

Aufruf:
            del pfad /r /p
      oder  delete pfad /r /p
      oder  kill pfad /r /p

Mit "delete" kann man Dateien und Ordner löschen.
Es werden grundsätzlich folgende Dateien gelöscht:

- Alle im angegebenen Pfad auf die angegebene Maske passende Dateien
- Alle Ordner im angegebenen Pfad, die auf die Maske passen, inklusive 
  dem kompletten Inhalt
- Alle Ordner, wenn sie durch Löschungen leer geworden sind.

Parameter:

/r          Rekursiv suchen
Ist dieser Parameter ersetzt, öffnet die Shell auch noch alle Ordner und 
sucht in ihnen nach weiteren zu löschenden Dateien und Ordnern, die auf 
die Maske passen. Sind weitere Ordner vorhanden, werden auch diese noch 
geöffnet usw.

/p          Auf Bestätigung warten
Ist diese Option eingeschaltet, zeigt die Shell vor Löschung einer 
Datei deren Namen an und fragt, ob sie gelöscht werden soll. Bei dieser 
Nachfrage kann man neben "Ja" und "Nein" auch mit "Ja, aber immer" 
antworten, wobei ab diesem Zeitpunkt alle in Frage kommenden Dateien 
ohne Nachfrage gelöscht werden. Auch kann man bei der Abfrage ESC 
drücken, wodurch das Löschen abgebrochen wird.
*
#COPY
copy

Aufruf:

            copy quelle ziel /r

"copy" kopiert die Datei(en) "quelle" nach "ziel". Wenn man mit "quelle" 
nur eine Datei spezifiziert hat, kann man als "ziel" auf einen einzelnen 
neuen Dateinamen angeben, den die Zieldatei erhält. Ansonsten ist bei 
"ziel" nur ein Pfad sinnvoll. Wird kein "ziel" angegeben, werden die 
Dateien ins aktuelle Verzeichnis kopiert.

Zur Auswahl der Quelldateien ist zu sagen, da₧ dabei im Verzeichnis nach 
allen auf die Maske passenden Dateien und Ordnern gesucht wird und da₧ 
diese dann komplett kopiert werden.

Parameter:

/r          rekursiv suchen
Mit diesem Parameter erweitert sich die Suche nach Dateien: Es wird 
zusätzlich jedes Unterverzeichnis ab der Startebene durchsucht und 
passende Dateien und Ordner komplett kopiert. Au₧erdem werden auch die 
Ordner vom Quellverzeichnis im Zielverzeichnis angelegt.


*
#MKDIR
mkdir 

Aufruf:

            mkdir ordner
      oder  md ordner

"mkdir" legt einen Ordner mit dem Namen "ordner" an.         
*
#RENAME
rename

Aufruf:

            rename datei (pfad oder datei)
            
Mit diesem Befehl kann man den Namen einer Datei ändern. Die Datei kann
dabei auch einen anderen Pfad auf dem gleichen Laufwerk erhalten: Dann
wird sie einfach verschoben. Auch Ordner können umbenannt werden.
*
#TYPE
type

Aufruf mit möglichen Parametern:

            type pfad /p /t /n

"type" gibt eine Datei aus. Dabei wird normalerweise ein Zeichen der 
Datei eingelesen und auf den Bildschirm ausgegeben. Durch Drücken 
der Escape-Taste kann man den Anzeigevorgang abbrechen. 

Parameter:

/p          Auf Taste warten
 (siehe "help /p")

/t          Textdatei anzeigen
Wenn dieser Parameter gesetzt ist, interpretiert die Shell die 
anzuzeigende Datei als Textdatei, d.h. es wird immer eine Zeile 
gelesen und dann diese auf einmal ausgegeben. Eine Zeile darf 
maximal 255 Zeichen lang sein.

/n          Zeilennummerierung
Ist diese Funktion angeschaltet, wird die Datei als Textdatei 
angezeigt (siehe Option "/t") und vor jeder Zeile die Zeilennummer 
angezeigt.
*
#ERASELN
eraseln

Aufruf mit möglichen Parametern:

            eraseln pfad {Zeilennummer} /p

Mit diesem Befehl werden einzelne Zeilen aus Textdateien gelöscht. 
Es können mehrere Zeilen aus der Datei gelöscht werden. Am Besten 
sucht man sich die Zeilennummern mit "type pfad /n" heraus.

/p          Auf Bestätigung warten
Ist diese Option eingeschaltet, zeigt die Shell vor Löschung einer 
Zeile diese an und fragt, ob sie gelöscht werden soll. Bei dieser 
Nachfrage kann man neben "Ja" und "Nein" auch mit "Ja, aber immer" 
antworten, wobei ab diesem Zeitpunkt alle als Parameter angegebenen 
Zeilen gelöscht werden. Auch kann man bei der Abfrage ESC drücken, 
wodurch die Datei im Originalzustand belassen wird.

#/P
Diese bei mehreren Befehlen mögliche Option veranla₧t die Shell zum 
Warten auf einen Tastendruck, wenn untere Ende des Bildschirms 
erreicht wird, soda₧ man sich die auszugebenden Daten 
bildschirmweise anschauen kann.
*
#<BEFEHL>
#BEFEHL

Himmel. DU DÖDEL ! Natürlich mu₧t Du für "<befehl>" den Befehl einsetzen, 
zu dem Du Hilfe benötigst, also z.B.
help dir
Alles klar jetzt ??

*
#TIME
#DATE
date, time

Aufruf:
            date DD.MM.YYYY
            time HH:MM:SS

Mit diesen Befehlen lä₧t sich das Datum und die Systemzeit erfragen und 
setzen. Werden keine Parameter angegeben, werden nur die aktuellen Daten 
angezeigt. Werden Parameter angegeben, so müssen diese im o.a. Format 
sein. Bei "date" kann man sich das Jahrhundert sparen, bei "time" die 
Sekunden. 
*
#PWD
pwd

Aufruf:
            pwd alt neu

Hiermit kann man ein Pa₧wort installieren, nach dem bei Programmstart 
gefragt wird.
Wenn kein Pa₧wort existiert, ist nur (beispielsweise) "pwd Bratkartoffel"
möglich, wobei das neue Pa₧wort installiert wird.
Ist bereits ein Pa₧wort installiert, kann man die Shell zur Abfrage 
desselben mit "pwd" bewegen. Au₧erdem kann man es durch Übergabe als 
einziges Argument (also hier "pwd Bratkartoffel") wieder löschen. 
Au₧erdem kann man ein neues Pa₧wort installieren, dazu mu₧ zuerst das 
alte, dann das neue Pa₧wort übergeben werden (z.B.
"pwd Bratkartoffel Spaghetti").
Das Pa₧wort wird in der Datei "KGBSHELL.PWD" gespeichert.
*
#MEMORY
memory

Aufruf:
            memory
            
Zeigt den freien RAM-Arbeitsspeicher an. Dabei wird die Grö₧e des grö₧ten 
zusammenhängenden Speicherblocks zurückgegeben.
*
#VERSION
version

Aufruf:
            version

Zeigt die benutzte TOS-Version und deren Datum an.
*
#DFREE
dfree

Aufruf:
            dfree Laufwerk:

Zeigt den Gesamtspeicherplatz einer Partition/einer Diskette und den 
freien Speicherplatz darauf an. Es kann eine Laufwerksbezeichnung 
angegeben werden, ansonsten beziehen sich die Daten auf das aktuelle 
Laufwerk.
*
#ALIAS
alias

Aufruf:
            alias <neuer Befehl> <alte Zeichenkette>

Mit "alias" kann man einen Befehl definieren, für den ein alter Befehl 
eingesetzt wird. Man kann so z.B. Befehle "umbenennen" oder abkürzende 
Schreibweisen einführen.
Einige Beispiele gefällig ?

alias zerstöre del
  Wenn der Benutzer "zerstöre" eingibt, versteht die Shell darunter ab 
sofort "delete".

alias kill_bak del *.bak /r
  Dieser Alias-Befehl sorgt dafür, da₧ immer wenn der Benutzer "kill_bak" 
eingibt, alle BAK-Dateien gelöscht werden, d.h. die Shell ersetzt intern 
die Eingabe "kill_bak" in "del *.bak /r".

alias send C:\ZMODEM\GSZRZ_ST.PRG -sz
  Wenn der Benutzer an dieser Stelle "send 93_17_10.LOG" eingibt, startet 
die Shell o.a. Programm mit den Parametern "-sz 93_17_10.LOG".

Die Aliase werden in der Datei "KGBSHELL.ALS" gespeichert und können 
z.B. mit eraseln wieder entfernt werden.
*
#INFO
info

Aufruf:
            info
            
Surprise, surprise .... einfach mal ausprobieren :->
*
#CLS
cls

Aufruf:
            cls
 
"cls" löscht ganz einfach den Bildschirm.
*
#FIND
find

Aufruf:
            find pfad /p /r /n

Sucht in <pfad> und ggfs. auch rekursiv nach allen Dateien, die auf 
die mit dem Pfad übergebene Maske passen und gibt diese anschlie₧end 
mit komplettem Pfad aus.

Parameter:

/p          Auf Taste warten
 (siehe "help /p")

/r          rekursiv suchen
Mit diesem Parameter erweitert sich die Suche nach Dateien: Es wird 
zusätzlich jedes Unterverzeichnis ab der Startebene durchsucht und 
passende Dateien und Ordner komplett kopiert.

/n          Zeilennummerierung
Ist diese Funktion angeschaltet, wird die Datei als Textdatei 
angezeigt (siehe Option "/t") und vor jeder Zeile die Zeilennummer 
angezeigt.
*
#EXIT
exit

Aufruf:
            exit
            <Control>-Q

Verlä₧t die KGB-Shell und kehrt zum aufrufenden Programm zurück.
*

