**************************** * * * TUNIX V1.0 * * * **************************** * Tools fr Programmierer * * und effiziente * * Festplattenbenutzung * **************************** TUNIX ist in Bedienung und 'Philosophie' meinem PD-Programmpaket LINGUIX verwandt. Hier in TUNIX sind jedoch Programme enthalten, die zum Textverarbeitungs-orientierten LINGUIX konzeptuell nicht passen. Hinter TUNIX verbergen sich einige schnelle, kleine, praktische Werkzeuge, die va. fr die ST-Benutzer-Elite: fr die Anh„nger von Command-Line-Interpretern (= CLI) im Festplattenbetrieb interessant sein drften. Einige speziellere Programme sind aber in erster Linie als Programmiererwerkzeuge geeignet. Leute, die zur 'Elite' z„hlen wollen, aber noch nicht k”nnen, finden mit meiner Einfhrung 'TTP_KURS.DOC' vielleicht einen Einstieg. Zudem kann ich den Public Domain CLI GULAM, als universal geeignete Shell, w„rmstens empfehlen. TUNIX ist in TURBO C 1.1 auf TOS 1.3 programmiert. Die meisten Programme werden vermutlich auch auf TOS 1.4 problemlos laufen. TUNIX V1.0 ist public Domain. TUNIX V1.0 enth„lt folgende Programme: ARCH Gezielte Archivierung neuer Dateien und Archivbitmanipulation AUTBATCH Flexiblere Abarbeitung des Auto-Ordners DATTIM90 Automatische Datumseinstellung (Eingabe nur bei Bedarf) DUMP Datei-Dump-Funktion (schneller read-only Disk-Monitor) FIND Ausgreifende Suche nach Dateien mit bestimmten Namensteilen GETCLM Ausfiltern einzelner Kolumnen aus einer Datei MKCMD Texte/Tabellen extrahieren und zu Kommandozeilen erg„nzen RESET0 Reset ausl”sen (Festplatten-Hochfahrzeit berbrcken) RM_ORD Schnelles Ordner-L”schen in CLIs VSIZE Ausfhrliche Infos ber Ordner XTOD Zahlensystem-Umrechnungs-Funktion fr Wertlisten-Dateien ZALUM Zahlensystem-Umrechnungs-Funktion fr einzelne Werte ZS Ausgabe des Atari-Zeichensatzes mit (Hex|Dez|Okt)-Code DOKUMENTATION ------------- ------------------------------------------------------------------------------ ARCH.TTP Gezielte Archivierung neuer Dateien und Archivbitmanipulation arch [-d] [-n] [-s] [-u] [-x] [ordner ... ] [-o datei] -d: Archivbits loeschen. -n: Ausgabe aller unarchivierten (Standard). -s: Archivbits setzen. -u: Archiv-Update nach a:\archiv und Archivbits setzen. -x: Sicherheitsabfragen abstellen. -o datei: Ausgabe aller unarchivierten in 'datei'. Arch eignet sich va. zur schnellen und gezielten Archivierung von Festplattenlaufwerken: Arch (mit Schalter -u) kopiert immer nur die Dateien (immer nach a:\archiv\), die sich seit der letzten Archivierung ge„ndert haben oder neu hinzugekommen sind (-u). TOS fhrt fr jede Datei ein Archivbit, das von guten Archivierungsprogrammen beim Archivieren jedesmal gesetzt wird. Bei Schreib-Zugriffen anderer Programme wird dieses Bit jedesmal gel”scht (leider nicht bei Anh„nge-Zugriffen: TOS-Fehler?). (In GULAM sieht man das Bit beim List-Kommando "ls -l": Wenn es gesetzt ist, hat die betreffende Dateizeile als erstes Zeichen ein 'm', wenn nicht, einen Strich '-'). Die brigen Schalter von arch dienen zur Anzeige der Namen der ge„nderten Dateien (-n oder kein Schalter), dem l”schen (-d) oder dem setzen (-s) dieses Archivbits. Arch berprft immer alle Dateien, die sich im Dateisystem unterhalb des angegebnene Verzeichnisses (ordner) befinden. (Wenn kein 'ordner' angegeben ist, wirkt arch immer ab aktuellem Ordner). Wenn Sie ein Dateisystem mit den Laufwerken c: d: e: f: besitzen, dann schreibt ihnen z.B. der Befehl arch c: d: e: f: -o f:\out die Namen aller neuen oder ge„nderten Dateien ihres gesamten Dateisystems in die Datei f:\out. (Schalter -o ist nur bei -n oder keinem Schalter sinnvoll). Arch stellt bei den Schaltern -d -s und -u eine Sicherheitsabfrage, ob die Archivbits tats„chlich ver„ndert bzw. ob archiviert werden soll. Mit -x l„žt sich diese Sicherheitsabfrage unterdrcken (fr prozedurale Anwendungen). Die eigentliche Archivierung (-u) kopiert alle angesprochenen unarchivierten Dateien immer nach a:\archiv\. ACHTUNG: Dieses Archiv enth„lt keine Unterverzeichnisse, dh. im bearbeiteten Dateisystembaum sollte jeder einfache Dateiname nur einmal vorkommen: gleichnamige Dateien auf unterschiedlichen Pfaden berschreiben sich in a:\archiv gegenseitig. Dies ist der einzige Nachteil des Verfahrens. Arch ist deshalb auch kaum fr das j„hrliche Voll-Backup geeignet, sondern vor allem fr die t„glich/w”chentliche Zwischensicherung. Wenn a:\archiv voll ist, bricht arch ab. Legen Sie dann eine neue Disk in Laufwerk a:, erzeugen den Ordner 'archiv' und wiederholen den arch-Befehl: weiter geht's bei der Datei, die nicht mehr ins vorige Archiv gepažt hat. Arch komprimiert die Dateien nicht. Hierfr gibt es bereits gute Programme. Arch ist jedoch aužerordentlich schnell: In wenigen Minuten hat man gezielt die Arbeit der letzten Zeit gesichert; mit einem einzigen Befehl: arch -u -x c: d: e: f: [ g: ...] ------------------------------------------------------------------------------ AUTBATCH.PRG Flexiblere Abarbeitung des Auto-Ordners Wenn einem die unm”gliche Methode des TOS bei der Reihenfolge der Abarbeitung des Autoordners stinkt, dann bietet autbatch Abhilfe. Autbatch wertet eine Text-Datei auto.bat aus, die sich ebenfalls im Autoordner befinden muž. Die Datei auto.bat enth„lt zeilenweise die kompletten Pfadnamen der Programme, die beim Systemstart abgearbeitet werden sollen, z.B: c:\bin\qmouse.prg c:\bin\night.prg #c:\bin\fselect.prg derzeit auskommentiert c:\bin\dattim90.prg Natrlich bestimmt dabei die Reihenfolge der Programmnamen die Reihenfolge der Abarbeitung; und nicht das Dateidatum (TOS). Es mssen keine Dateien mehr hin und her kopiert werden. Kommentarzeilen in auto.bat sind m”glich: Sie beginnen mit einem Doppelkreuz (#) immer in der ersten Spalte der Kommentarzeile. ------------------------------------------------------------------------------ DATTIM90.TTP Automatische Datumseinstellung (Eingabe nur bei Bedarf) dattime [-c] [-d] [-i] datim90 mit Schalter -i fordert in jedem Fall zur Eingabe von Datum / Uhrzeit auf. Ohne Schalter -i wird immer erst das Datum des Tastaturprozessors berprft. Wenn dieses neuer als das TOS-Datum ist (Warmstart), wird es automatisch bernommen. Andernfalls fordert datim90 zur Neueingabe von Datum (-d) oder Uhrzeit (-t) oder beidem auf (weder -d noch -t oder beide zugleich). VERWENDUNG: dattim90 ist m.W. nur fr Rechner ohne Batterieuhr interessant: Der Befehl "datim90 -d" steht in meiner GULAM-Start-Up-Datei gulam.g. dattim90.ttp kann aber auch als dattim90.prg im Auto-Ordner verwendet werden. Hier natrlich ohne Schalteroptionen. dattim90 vergibt bei der manuellen Eingabe automatisch das Jahr 1990. Das mitgelieferte dattim91 vergibt 1991. Wer 1992 noch lebt, der kann sich die erforderliche Version mit einem Diskmonitor anhand der Differenz vielleicht selbst erpatchen. ------------------------------------------------------------------------------ DUMP.TTP Datei-Dump-Funktion (schneller read-only Disk-Monitor) dump [-d] [-x] [-s] [-P] DATEI [ DATEI ...] [-o datei] -d Dezimaldump -x Hexadezimaldump -P direkt auf Drucker ausgeben -s Ohne Schalter -s werden die ASCII-Zeichen ber 126 in der Ausgabe als Punkt '.' wiedergegeben (damit die Ausgabedatei ohne Probleme gedruckt werden kann. -s fhrt zu einer ad„quaten Wiedergabe dieser (-s) Sonderzeichen. -o datei Ausgabe in datei statt auf Bildschirm. Die Ausgabe von Dump ist anders formatiert als in Disk-Monitoren blich. Ich finde es aber auch so mal recht ntzlich: Die Zeichen stehen jeweils direkt ber ihrem Code. Die Ausgabe auf den Bildschirm wartet nach jeder vollen Bildschirmseite auf Tastendruck. Abbruch ist durch CONTROL-C m”glich. ------------------------------------------------------------------------------ FIND.TTP Ausgreifende Suche nach Dateien mit bestimmten Namensteilen find PATTERN [ordner ordner ...] [-o datei] PATTERN: Muster des gesuchten Dateinamens (immer 1. Parameter) -t Alle Dateinamen ausgeben (alternativ zu PATTERN) ordner: Suche ab Verzeichnis ordner. -o datei: Ausgabe aller gefundenen Dateien in 'datei'. Wie auch arch.ttp untersucht find.ttp nur den Teil des Dateisystembaums, der sich ab und unter den/dem angegebenen Verzeichnis(sen) 'ordner' befindet: Ist f:\txt\ angegeben, findet "find kleist f:\txt" alle Dateien ab f:\txt\, in deren Name der String kleist vorkommt, z.B f:\txt\kleist.doc, f:\txt\brief\kleist_10.bak; nicht jedoch f:\kleist oder f:\docs\kleist.brf. Ist kein 'ordner' angegeben, sucht find ab aktuellem Verzeichnis. Mit "find -t a: b: c: d: e: f: g: [...]" erhalten Sie eine Ausgabe, die alle Dateien Ihres Systems mit ihrem absoluten Pfadnamen enth„lt. ------------------------------------------------------------------------------ GETCLM.TTP Ausfiltern einzelner Kolumnen aus einer Datei (get-column) getclm -'ziffer'['ziffer'...] DATEI [ DATEI ...] [-o datei] -'ziffer' ziffer 0-9: 0 fr erste Kolumne, 1 fr zweite, ... DATEI Spacegetrennte Kolumnen 'ziffer' werden ausgegeben. -o datei Ausgabe in datei statt auf Bildschirm. Beispiel: getclm -034 file -o clm.out Dieser Befehl holt die erste, vierte und fnfte Kolumne jeder Zeile aus der Datei file und schreibt sie in die Datei clm.out. Jede Kolumne ist in der Ausgabedatei durch ein Leerzeichen von der n„chsten getrennt. In der Eingabe-DATEI bedeutet 'Kolumne' alle sichtbaren Zeichen(folgen), die zwischen beliebig vielen Space-Zeichen (Blank,Tab) stehen. Wenn eine Zeile mit Space beginnt, dann z„hlt das erste sichtbare Zeichen bereits zur Kolumne 2 (Nr.1). Als h”chste Kolumne kann die 10te angegeben werden (Nr.9). ------------------------------------------------------------------------------ MKCMD.TTP Texte/Tabellen extrahieren und zu Kommandozeilen erg„nzen (make-command) mkcmd [-'zahl'] [-f] [-l] [-p [-\]] [-v'CMD'] [-ha|c'PARAM'] DATEI [...] -'zahl' Space-Getrennte DATEI-Kolumnenummer von Wort (Def:1). -f Dateinamen aus DATEI-Text herausfiltern. -l Ganze Zeile aus DATEI-Text weiterverwenden. -p Pfadnamen aus DATEI-Text herausfiltern. -\ Pfadnamen immer mit \ abschliežen. -v'CMD' Einfge-Zeichenkette vor Blank und Listenwort. -ha'PARAM' Anh„nge-Zeichenkette hinter Blank und Listenwort. -hc'PARAM' Cat-Zeichenkette direkt hinter Listenwort. -o datei Ausgabe in datei statt auf Bildschirm. -'zahl', -f, -l und -p sind alternativ. mkcmd tut zweierlei: erstens extrahiert es je Zeile einen positionell bestimmbaren String (Wort) aus der Eingababedatei. Zweitens h„ngt es in der Ausgabe vor und/oder hinter diesem Wort je einen angebbaren String an: So k”nnen gleichf”rmige Kommandozeilen oder andere Tabellen ber je ein unterschiedliches Wort automatisch generiert werden. EXTRAHIEREN: Ohne Schalter gibt mkcmd das erste Wort jeder Zeile von Datei aus. Mit Schalter -2 jedes zweite, mit -3 jedes dritte .... Worte sind fr mkcmd alle zusammenh„ngenden sichtbaren ASCII-Zeichen. Worte sind also Kolumnen, die je durch Space(s) getrennt sind. Mit Schalter -l 'filtert' mkcmd die gesamte Zeile von Datei aus. Es wird also hier kein Zeilenteilstring extraheriert, sondern der gesamte Zeileninhalt kann vorne (-v...) und/oder hinten (-h...) um einen angebbaren String erg„nzt werden. Mit Schalter -f sucht mkcmd gezielt nach einfachen Dateinamen in Datei: Als solche werden erkannt: Strings, die einen Punkt, direkt umgeben von sichtbaren Zeichen, enthalten; und Strings, die direkt auf einen Gegenschr„ger '\' folgen. Je Zeile wird nur der letzte passende String ausgegeben. Mit Schalter -p sucht mkcmd gezielt nach relativen und absoluten Pfadnamen in Datei: Hier wird jedoch nur nach dem ersten in jeder Zeile gesucht. Als Pfadnamen werden erkannt: geschlossene Strings die einen Gegenschr„ger '\' enthalten. Wenn zus„tzlich Schalter -\ gesetzt ist, wird jeder Ausgabestring mit einem Gegenschr„ger abgeschlossen. ERGŽNZEN: Durch "-vWORT" geben Sie mit WORT einen String an, der - durch Blank getrennt - vor dem aus DATEI extrahierten Wort in die Ausgabezeile geschrieben wird. Durch "-h?WORT" geben Sie mit WORT einen String an, der hinter dem aus DATEI extrahierten Wort in die Ausgabezeile geschrieben wird. Entweder muž direkt auf -h ein 'a' oder ein 'c' folgen: Durch 'a' wird das Wort - getrennt durch Blank - hinter den extrahierten String angeh„ngt. Durch 'c' wird es concateniert, dh. direkt mit dem extrahierten String verbunden. VERWENDUNG: Aus listenf”rmigen Ausgaben anderer Programme (ls, grep, find etc) k”nnen automatisch neue Prozeduren generiert werden, ohne viel Tiparbeit. ------------------------------------------------------------------------------ RESET0.PRG Reset ausl”sen (Festplatten-Hochfahrzeit berbrcken) Die resetX.prg-Programme l”sen (nach unterschiedlicher Wartezeit) einfach nur einen Reset aus. VERWENDUNG: Festplattenbesitzer k”nnen mit reset0.prg billig und schnell die Wartezeit beim Hochfahren der Festplatte berbrcken. Einfach das Programm in ein leeres a:\auto\ kopieren. Wenn nun die Diskette mit \auto\reset0.prg beim n„chsten gemeinsamen Einschalten von ST und Festplatte im Laufwerk a: liegt, dann startet der Rechner das Reset-Programm: nach einer gewissen Wartezeit wird der Reset ausgel”st und der Rechner startet erneut. Mittlerweile ist allerdings die Festplatte hochgefahren: Also bootet der Rechner jetzt von der Festplatten-Partition (falls bootf„hig) und ignoriert diesmal a:\auto\reset0.prg. VERSIONEN: Die enthaltenen Versionen reset0.prg, reset2.prg und reset4.prg unterscheiden sich nur in der Zeit, die bis zur Ausl”sung des Reset vergeht: reset0.prg l”st den Reset sofort aus, w„hrend reset2.prg und reset4.prg zun„chst in eine 2 bzw. 4 Sekunden lange Warteschleife springen und erst danach den Reset ausl”sen. Probieren Sie selbst, welches Programm fr ihre Festplatte geignet ist. ACHTUNG: Das gemeinsame Einschalten von Rechner und Festplatte kann nach Herstellerangaben eventuell zu Hardware-Sch„den fhren. Mit meiner Vortex HD20+ am Atari 520ST+ ist bisher nichts passiert. Garantieren kann ich freilich nichts. ------------------------------------------------------------------------------ RM_ORD.TTP Schnelles Ordner-L”schen in CLIs rm_ord ordner Als Parameter ist ein (!) Ordner anzugeben. VERWENDUNG: Das L”schen ganzer Ordner samt Inhalt ist in einigen CLIs recht aufwendig: Einer der seltenen Augenblicke, in denen man sich ins GEM zurcksehnt. rm_ord schliežt diese CLI-Komfortlcke. ------------------------------------------------------------------------------ VSIZE.TTP Ausfhrliche Infos ber Ordner vsize ordner [ ordner ... ] vsize gibt in je einer Zeile Informationen ber die angegebenen Ordner aus. Die Abkrzungen der Ausgabetabelle bedeuten: DB: Anzahl der tats„chlichen Datenbytes von Ordner mbB: " " minimal belegten Bytes durch Ordner auf Laufwerk Cl: " " belegten Cluster D: " " enthaltenen Dateien V: " " enthaltenen Dateiverzeichnisse (Unterordner) ------------------------------------------------------------------------------ XTOD.TTP Zahlensystem-Umrechnungs-Funktion fr Wertlisten-Dateien xtod [-k*] [-qo|d|x] [-t*|-b] [-zo|d|x] DATEI [DATEI ...] [-o datei] -k* Auf -k folgt das Zeichen fr Kommentaranfang. -qo|d|x Quelle ist o(oktal) | d(dezimal) | x(hexadez.) (Def:x). -t* Auf -t folgt Zeichen fr den Werte-Trenner (Def:','). -b Werte-Trenner ist Leerzeichen (ASCII 32). -zo|d|x Ziel ist o(oktal) | d(dezimal) | x(hexadez.) (Def:d). -o datei Ausgabe in datei statt auf Bildschirm. DATEI EingabeDATEI: Trenner/Return-getrennte Werteliste. Wenn eine gr”žere Menge von Zahlenwerten, die in einer Datei stehen, in ein anderes Zahlensystem umgerechnet werden muž, dann ist xtod geeignet. Beispiel: Die gulam Kommandozeile "xtod -qx -zd '-k*' printer.hex" konvertiert in wenigen Sekunden eine 1ST_WORD-Druckertabelle printer.hex in eine Liste von entsprechenden dezimalen Werten. ------------------------------------------------------------------------------ ZALUM.TTP Zahlensystem-Umrechnungs-Funktion fr einzelne Werte zalum [b][d][h][o] WERT b, d, h und o geben an, in welchem Zahlensystem der folgende WERT gesetzt ist. zalum interpretiert diesen WERT und gibt ihn in den vier Zahlensystemen aus: Der Befehl "zalum h 4ff" erzeugt die Ausgabe: Bin„r: 10011111111 Oktal: 2377 Dezimal: 1279 Hexadezimal: 4FF Wenn ein Zeichen von WERT nicht zum davor angegebenen Zahlensystem pažt (zB. "zalum o 349"), erfolgt eine Fehlermeldung. Achtung: vor b, d, h und o ist nicht der fr Schalter sonst bliche Bindestrich anzugeben. Wenn Sie mehrere Werte umrechnen wollen, verwenden Sie xtod.ttp ------------------------------------------------------------------------------ ZS.TTP Ausgabe des Atari-Zeichensatzes mit (Hex|Dez|Okt)-Code zs [-d] [-x] [-k] [-o datei] -d: Zeichensatzausgabe mit Dezimalcode (Standard). -k: Zeichensatzausgabe mit Oktalcode. -x: Zeichensatzausgabe mit Hexadezimalcode. -o datei Ausgabe in datei statt auf Bildschirm. Mnchen, November 1989 Hans Kaufmann, Einsteinstr. 151, 8 Mnchen 80