SCO-Unix

T-Online-Zugang mit PPP von 'Morning Star'
Installation, Leitfaden, Hinweise

Helmut Schellong
schellong@t-online.de
http://home.t-online.de/home/schellong
http://www.schellong.de
sco-logo
Seit geraumer Zeit gibt es von SCO (Santa Cruz Operation) das Unix-System 
'OpenServer 5.0.4 Enterprise' 
mit einer Free Lizenz zum Selbstkosten-Preis von etwa 35 DM 
in Deutschland bei Firma BtB, Nittendorf. 
Seit Februar'99 Version 5.0.5 für 79 DM, und Unixware7 für etwa 150 DM.
Dieses Unix und Linux und FreeBSD sind wohl diejenigen für private Nutzung 
am besten geeigneten Systeme.
Installation SCO-Unix
Nach Haupt-Installation
T-Online-Zugang
Hinweise
Tricks
Binärer Dialer

Zur Hauptseite
 

Portal-Datei


 
 
 

Installation

  • Das Unix-System bei Firma BtB bestellen (34,90/45DM).

  • Lieferumfang:  4 Handbücher/Prospekt, CD, Boot-Diskette.
  • Seit Februar 1999 gibt's Version 5.0.5 für 79 DM.

  • Inklusive 5 CDs, darunter Skunkware98, etwa 4cm dickem deutschen Handbuch
    und Boot-Diskette.  Wichtige Hinweise
  • Seit Dezember 2000 gibt's Version 5.0.6 bei BtB, inklusive Skunkware2000.
  • Zumindest  'Internet Services'  und  'Installation Handbook'  (an)lesen.
  • Free Lizenz im Internet besorgen:  http://www.sco.com/products

  • (Die ältere Version 5.0.2 gab es von Firma PEM, mit Lizenz, jedoch für 69DM)
  • Die Installation planen, hinsichtlich der Partitionen und der Dateisysteme

  • darin, dazu die notwendigen Informationen dem ganzen Text dieser
    Beschreibung entnehmen.
  • Die CD kann zuvor natürlich auch unter DOS angeschaut werden.

  • Es gibt da viele Doku-Dateien .txt, .htm und Postscript.
    Auch ein Image der Boot-Diskette (N1) ist dort vorhanden,
    welches man mit meinem Kommando 'dd.exe' übertragen kann,
    bei Problemen.
  • Im Verzeichnis  ftp://ftp.sco.com/SLS  befindet sich ein FloppyImage

  • oss478a.Z, aktuellerer Treiber ATAPI(EIDE)/wd, der helfen kann, falls man
    Pech mit seiner Hardware hat, die nicht vollständig von der
    Standard-Boot-Diskette erkannt wird.  (siehe unten)
  • Es ist stets empfehlenswert, eine möglichst standardmäßige Installation

  • zumindest hinsichtlich der Internationalisierung zu wählen,
    jedenfalls für noch unerfahrene Anwender.
     
  • Nötigenfalls die gewünschte Zielpartition aktiv setzen (fdisk),

  • falls man nicht während der Installation auch dies festlegen will.
  • CD-ROM in das Laufwerk einlegen.
  • Boot-Diskette einlegen.
  • Computer einschalten bzw. Warmstart machen.
  • Am Boot-Prompt "Boot: " <Enter> drücken.

  • Der Unix-Kernel wird entpackt, gestartet und erzeugt eine RAM-Disk.
    Dann erneut <Enter>.
  • Ab jetzt müssen Einstellungen vorgenommen werden.

  • Dabei den Anweisungen folgen und stets (unten) lesen,
    welche Tasten welche Bedeutung haben.
    Leerzeichen, Enter, Tab und die Pfeiltasten werden zur Steuerung
    gebraucht.
  • Installations-Medium angeben:

  • In der Regel ist dies  IDE CDROM - primary - slave.
  • Tastatur-Typ (Keyboard)
  • Lizenz-Nummer, -Code und -Data  eingeben.
  • Systemname (def=scosysv), Domainname (z.B. schellong.de)
  • Security  -  ich würde  Traditional  beibehalten.
  • Time Zone:  CET DST 

  • (Mitteleurop. Zeit, Sommerzeit, -1 Std. von GMT-Zeit)
  • Language  Standard C  oder  Deutsch.

  • Ich empfehle den Standard, u.a. weil ggf. nur die hierarchieobersten
    Dokumente deutsch sind.
  • System-Umfang  Standard-Enterprise(yes)

  • oder  Ohne Grafik(no)  plus  Large Database(no).
  • Festplatten-Setup:
    • (Erhalte existierendes Layout - nur bei erneuter Inst.)
    • Benutze gesamte Festplatte (vollautomatisch)
    • Customize (halbautomatisch)
    • Interaktiv  fdisk/divvy

    • (voll konfigurierbar:  dparam,fdisk,badtrk,divvy  siehe unten)
  • Optionelle Software:

  • Ich würde  Doctor Lite  (und ggf.  German Supplement)  zusätzlich
    wählen.
  • Netzwerk-Karte, deren Adresse, ...  (in der Regel  defer)
  • Grafik-Karte, Monitor-Typ, scologin(off):

  • Im Zweifelsfall  IBM VGA / VGA 60Hz  wählen!  Und scologin=off !
    Nach der Installation kann man diese Einstellungen ändern.
  • Maus:  In der Regel  Keyboard Mouse - low resolution
  • eMail:  sendmail
  • Das root-Paßwort für den Superuser setzen.

  • Man sollte hier schon das endgültige Wort wählen, da hierbei auch
    das Internet-Manager-Paßwort gesetzt wird.
    (ändern kann man später trotzdem)
  • OK - Installation vom CD-ROM:

  • Ab hier läuft die Installation allein. Etwa 1 bis 2 Stunden:
    • Filesysteme, file permissions
    • Copy files from media - verifying...
    • Initializing configuration files
    • Making configuration interfaces public - exporting file...
    • Configuring the component parameters
    • Kernel Link
    • Making component files publicly available - exporting file...
    • File permissions:  fixmog
    • Installation Patches - Release Supplement
  • ENDE:   Boot-Diskette rausnehmen, Computer neu starten.

  • Am Boot-Prompt wieder <Enter>,
    am nächsten Prompt  das root-Paßwort eingeben, für den
    Maintenance-Modus,
    noch nicht durch <Ctrl-D> in den Multiuser-Modus gehen!

^

Partitionen und Dateisysteme in der Unix-Partition

Es ist sehr empfehlenswert, bei der Installation  'Interactive fdisk/divvy'  zu wählen.
In diesem Fall präsentieren sich nacheinander die Kommandos
dparam (dkinit), fdisk, badtrk und divvy.
Außerdem wird man nach den Größen des swap-Bereichs
und (wahrsch.) /dev/u - UserFilesystem  gefragt.

Bequem ist es zwar nicht, den vollkonfigurierbaren Modus zu verwenden, jedoch andernfalls
ärgerte man sich maßlos, wenn man später erkennt, was man da versäumt hat
und daher sehr 'unbeweglich' ist.
Man 'darf' dann nämlich neu installieren!

Man sollte nicht voreilig oder irrtümlich 'q' für das Verlassen eines dieser Kommandos eingeben! 
Die Frage '...manual adjustments...' muß man mit 'y' beantworten,
damit man mit 'divvy' alle Dateisystem-Einstellungen der Unix-Partition vornehmen kann.

Das erste dieser Kommandos ist 'dparam', welches Festplatten-Parameter
zeigen und ändern kann.
Bei der Installation wird es von dem interaktiven Frontend 'dkinit' unterstützt.
In aller Regel kann man hier nach dem Anzeigenlassen mit 'q' beenden.
Hier werden Aufruf-Reaktionen nach der Installation gezeigt:

# dparam /dev/rhd00
4960 16 0 65535 22 8 4960 63

# dparam /dev/rhd10
1023 16 0 65535 7 8 1023 63

cyl heads wr_reduce precomp ECC_bits controller_type landzone sectors
(65535 ist übrigens -1 als vorzeichenbehaftete 16Bit-Zahl)
Das zweite Kommando ist 'fdisk', fast so wie man es von DOS her kennt.
Es arbeitet jedoch leider nur mit Tracks (Spuren).
Hinzuschaltbare Anzeigen in MB und Zylindern wären gut.
Beim Anlegen einer Partition werden Start-Track und Größe in Tracks abgefragt.
Diese beiden Werte sollten durch die Anzahl Köpfe (16) ohne Rest teilbar sein.
Desweiteren muß das boot-Filesystem innerhalb der ersten 504 MByte der Festplatte beginnen.
Ich entschloß mich, boot bei 487 MByte beginnen zu lassen und rechnete wie folgt:
        Eine Festplatte mit 16 Köpfen hat 16 Spuren pro Zylinder.
        Eine Spur hat 512*63=32256 Byte - bei 63 Sektoren pro Spur.
        (487*1024*1024)/(512*63)=15831.4 Tracks
        15831/16=989.4 Zylinder
        990*16=15840 Tracks
Wie man unten (divvy) sehen kann, paßt 'boot' sogar volumenmäßig in die ersten 504 MB.
Falls man weniger als drei Partitionen definiert hat, sollte man die Option
'Use Rest of Disk for Unix' nicht voreilig wählen - sonst ist keine Lücke mehr da!
Am sichersten ist in diesem Fall: 'Create Unix Partition'.
Partition 2 (s.u.) ist (derzeit bei mir) nur ein leerer Platzhalter!
Unbedingt darauf achten, daß die gewünschte Ziel-Partition aktiviert ist!
# fdisk [-f /dev/rhd00]
Current Hard Disk Drive: /dev/rhd00

+-------------+----------+-----------+---------+---------+---------+
| Partition   | Status   | Type      |   Start |     End |    Size |
+-------------+----------+-----------+---------+---------+---------+
| 1           | Active   | UNIX      |   15840 |   79343 |   63504 |
| 2           | Inactive | UNIX      |    8432 |   15839 |    7408 |
| 3           | Inactive | DOS (32)  |     112 |    8431 |    8320 |
| 4           | Inactive | TYPE 18   |       1 |     111 |     111 |
+-------------+----------+-----------+---------+---------+---------+

Total disk size: 79360 tracks (17 reserved for masterboot and diagnostic)
(Track 0 und der letzte Zylinder - deshalb Anzeige in Tracks!)
Nach 'fdisk' kommt 'badtrk' (bad track=schlechte Spur).
Bei ganz neuer Installation sollte man 'thorough - destructive' wählen,
ansonsten 'thorough - nondestructive' oder auch sofort mit 'q' beenden.
Der Scan läuft schneller als von dem Kommando angekündigt.

Mit 'divvy' wird die aktive Unix-Partition in Datei-Systeme aufgeteilt.
boot, swap, root und meistens auch u sind schon da, wenn die Tabelle erscheint.
Man kann alle Spalten außer '#' ändern.  Die Block-Größe ist 1K=1024 Byte.
Bei den ersten drei Filesystemen darf man nur die Blocknummern ändern!
Bei 'New FS' muß 'yes' stehen, damit 'mkfs' auch Filesysteme anlegt. (bei #7 nicht!)
boot darf keinesfalls kleiner als 9000 Blöcke sein!!!
swap ist unten viel größer als notwendig, 30000 Blöcke reichten hier.

Wenn man schließlich mit 'q' beendet, kommt eine weitere Auswahl,
bei der man 'i' eingeben muß.
(Mit 'r' ist dann noch die Möglichkeit gegeben, zur anfänglichen Tabelle zurückzukehren.)
divvy erzeugt dadurch /dev/boot /dev/rboot /dev/swap /dev/rswap ...
Später kann man montieren:
mount /dev/u /u ; mnt /media
umount /dev/boot ; mount -r /dev/boot /stand ; etc.

# divvy [/dev/hd01 | /dev/hd0a]
+---------------+------------+--------+---+-------------+------------+
| Name          | Type       | New FS | # | First Block | Last Block |
+---------------+------------+--------+---+-------------+------------+
| boot          | EAFS       |  no    | 0 |            0|       14999|
| swap          | NON FS     |  no    | 1 |        15000|       94999|
| root          | HTFS       |  no    | 2 |        95000|      694999|
| u             | HTFS       |  no    | 3 |       695000|      774999|
| media         | HTFS       |  no    | 4 |       775000|     1974999|
| z             | HTFS       |  no    | 5 |      1975000|     1999861|
| recover       | NON FS     |  no    | 6 |      1999862|     1999871|
| hd0a          | WHOLE DISK |  no    | 7 |            0|     2000375|
+---------------+------------+--------+---+-------------+------------+
1999872 1K blocks for divisions, 504 1K blocks reserved for the system
Hier sind Einstellungen einer zweiten Festplatte zu sehen:
P3 ist DOS_D, eine Extended, die sys-iiert wurde.
Auch diese DOS-Partition kann ich mit  mount -f DOS -o lower /dev/hd13 /mnt
montieren.
# fdisk -f /dev/rhd10
Current Hard Disk Drive: /dev/rhd10

+-------------+----------+-----------+---------+---------+---------+
| Partition   | Status   | Type      |   Start |     End |    Size |
+-------------+----------+-----------+---------+---------+---------+
| 1           | Inactive | UNIX      |   12192 |   16351 |    4160 |
| 2           | Inactive | TYPE 18   |       1 |     111 |     111 |
| 3           | Active   | DOS (32)  |     112 |   12191 |   12080 |
+-------------+----------+-----------+---------+---------+---------+

Total disk size: 16368 tracks (17 reserved for masterboot and diag)
Hier die Divisionen der Unix-Partition der zweiten Festplatte:
/dev/s  ist mein 'Safe'.
Hier speichere ich automatisiert alle neuen und geänderten Dateien aus /dev/u bzw. /u .
Das macht es möglich, nur alle paar Monate auf Disketten abzusichern,
weil ja beide Festplatten wohl kaum gleichzeitig defekt werden können.
# divvy /dev/hd11
+---------------+------------+--------+---+-------------+------------+
| Name          | Type       | New FS | # | First Block | Last Block |
+---------------+------------+--------+---+-------------+------------+
| s             | EAFS       |  no    | 0 |            0|       59999|
| 3             | AFS        |  no    | 1 |        60000|      129999|
|               | NOT USED   |  no    | 2 |            -|           -|
|               | NOT USED   |  no    | 3 |            -|           -|
|               | NOT USED   |  no    | 4 |            -|           -|
|               | NOT USED   |  no    | 5 |            -|           -|
|               | NOT USED   |  no    | 6 |            -|           -|
| hd11          | WHOLE DISK |  no    | 7 |            0|      131039|
+---------------+------------+--------+---+-------------+------------+
130536 1K blocks for divisions, 504 1K blocks reserved for the system
Das Kommando 'df' zeigt die Belegung von montierten Filesystemen:
Die Anzahl der Inode-n (#Dateien) ist  1Kblocks / 4.
Da 10-15% eines Filesystems frei bleiben sollten, ist die Größe von /dev/root nicht zu groß.
Das Kommando 'df' hat aber nichts mit der Installation zu tun - nur zur Info.
# df -tvk
Mount Dir  Filesystem              blocks      used      free   %used
/          /dev/root               600000    384248    215752    65%
/stand     /dev/boot                15000      7269      7731    49%
/u         /dev/u                   80000     50358     29642    63%

# df -i
Mount Dir  Filesystem               iused     ifree    itotal  %iused
/          /dev/root                49868    100132    150000    34%
/stand     /dev/boot                   16      3744      3760     1%
/u         /dev/u                    2927     17073     20000    15%

^

Nach
der
Haupt-
Installa=
tion

  • Am Boot-Prompt 'boot: ' kann man auch 'dos' eingeben, wodurch

  • die erste Partition mit einem DOS-System gestartet wird.
    Teilweise ersetzen die Kommandos /stand/boot und /stand/bootos
    Programme wie 'Partition Magic'.
    Eingabe von '?' oder 'bootos ?' informieren.
    Man kann das Booten mehrerer anderer Systeme auf mehrere
    verschiedene Weisen konfigurieren, falls nicht schon vorbereitet.
  • Mit  startx  wird X-Windows gestartet, dort gibt es 'Help' !
  • Exportieren Sie nicht die Shell-Variable CDPATH in's Environment !

  • Verwenden Sie stattdessen z.B. CD_PATH und setzen damit CDPATH
    bzw. cdpath (csh)  shell-intern.  Andernfalls bleibt X-Windows hängen!
  • man [RUBRIK] kommando_name

  • zeigt Referenz-Beschreibungen zu allen Kommandos und Stichworten.
    Bei Gleichnamigkeit muß oft eine Rubrik angegeben werden.
    Beispiel:   man ADM mount ; man man  #(man selbst!)
    Beenden durch Eingabe von 'q'.
    Es gibt auch das Info-Kommando  whatis .
    Die Datei  /etc/default/man  sollte man anschauen, und auch
    manche anderen in diesem Verzeichnis.
    Die Verzeichnisinhalte im Verzeichnis  /usr/man  können als Übersicht
    aller Kommandos und Themen-Beschreibungen dienen.
    Einige der wichtigsten Rubriken sind:
    C       Kommandos
    ADM     Administrative Kommandos
    CP      Entwicklungssystem Kommandos
    S       Funktions-Libraries
    HW      Hardware
    M       Besonderes
  • Bei deutscher Sprachunterstützung (Language: german)

  • sind viele Ein- und Ausgaben (System,Kommandos) in Deutsch.
    Beispielsweise wird  setcolor -o braun  statt setcolor -o brown
    erwartet.  Auch der Lizenztext beim Systemstart ist dann deutsch.
    'German Supplement' ist etwas anderes!
    Das betrifft die deutschen Dokumentationen für den Help-Browser.
    German Supplements sind mittels  custom  installierbar.
  • Ein Editor ist unter Unix extrem wichtig, da das halbe System

  • aus lesbaren Konfigurations- und Script-Dateien besteht.
    Der Editor  vi  ist hier die erste Wahl, der unscheinbar und
    gewöhnungsbedürftig erscheint, jedoch unglaublich schnelles Arbeiten
    ermöglicht.
    Sie können mit diesem Editor Dinge in einer Minute erledigen, für die Sie
    mit jedem anderen Editor mehrere Stunden benötigen!
    Wer die ein/zwei Wochen Eingewöhnungszeit nicht auf sich nehmen
    will, ist halt selbst Schuld ...
    Eine erweiterte Version ist  vim  aus der SCO-Skunkware.
    Damit kann man Quelltexte schreiben ... da verschlägt's einem
    die Sprache!
    Da man ohne Kenntnisse hilflos ist, hier ein kurzer Steckbrief:
    (in meiner bsh-Doku gibt's  vi.mnr)
    Nach Aufruf befindet man sich im Kommando-Modus.
    Hier kann man u.a.  o O a A i I r R s S cc   drücken,
    um in einen Schreibmodus zu gelangen.
    In den Kommandomodus zurück kommt man durch  <Esc> .
    Mit   x  dw  dd   löscht man Zeichen, Worte, Zeilen.
    Beispielsweise  4x  löscht vier Zeichen.
    Oder  3yy  speichert 3 Zeilen ab Cursor in den unbenannten Puffer,
    mit  p  oder  P  kann man sie einfügen.
    Mit  .  wiederholt man eine vorherige Schreibaktion.
    Verlassen ohne Änderungen an der aufgerufenen Datei:  :q  oder  :q!
    Mit den gemachten Änderungen:  :x
    Optionen anzeigen:  :set all
    Einstellungen können in  /.exrc  vorgenommen werden (bei $HOME==/).
    Dahinein sollte man für's erste zwei Zeilen schreiben:
    set showmode  und  set novice  .
    Dieser Steckbrief ist allerdings nur ein winziger Auszug!
    vi  -  Kurzreferenz
  • Die Programme  scoadmin  und  custom  sind sehr wichtig für

  • System-Administration und Software-Installationen.
    Installationen sollten nur im EIN-USER-MODUS (maintenance)
    vorgenommen werden.
    In diesen Programmen werden Leerzeichen, Tab, Enter, Esc und
    die Pfeiltasten zur Steuerung verwendet.
    Achten Sie darauf, daß Auswahl-Sterne (*) dort stehen
    -und nur dort- wo Sie wollen!
  • Im Maintenance-Modus wird der Drucker-Service nicht automatisch

  • gestartet:  /usr/lib/lpsched  und  /usr/lib/lpshut
    Das Interface  standard  funktioniert immer!  (Printer-Manager)
    Schnittstelle ist  /dev/lp0  .
    Die Auswahl des Default-Printers nicht vergessen!
  • Installieren Sie bei Interesse mit  custom  das Development System.

  • Hier müssen wieder Lizenz-Daten eingetippt werden.
    Die Kommandos  cc, CC  und  cscope  sind die wichtigsten.
  • Durch  mkdev serial  nötigenfalls die zweite Schnittstelle

  • IBM COM2 2f8 3  hinzufügen.  (/dev/tty2a, 2A)
    Kernel-Link = no.
  • mkdev parallel  addiert die Parallel-Schnittstelle  3bc 5 .  (/dev/lp0)

  • Ich mußte Interrupt 7 statt 5 angeben.
    Es ist möglich, daß diese Aktionen (wie auch mkdev modem,serial)
    beim Beenden hängen und einen Kaltstart nötig machen!
    (nur bei Erstverwendung; s.u.Hinweise)
    Die Fragen zum Kernel-Link verneinen!
  • In  scoadmin - Hardware/Kernel - DOS Filesystem Support  hinzufügen.

  • Kein Kernel-Link.
  • Mit  custom  'PPP Morning Star'  installieren.

  • Dabei wird der Kernel neu gelinkt.
    In  /etc/inittab  wo  234...asctimerc  steht, die 2 weglöschen,
    und die Zeile  agn0::  durch  #agn0::  auskommentieren
    (DoctorLite-agent).
  • Es gibt unter  ftp://ftp.sco.com/Supplements/rs504c

  • ein neues Release Supplement, etwa 4.5MB.
    Übersicht:  http://www.sco.COM/support/ftplists/osr5list.html
    Beispiel für Beschaffung weiterer Supplements (später!):
    # cd /tmp
    # mstppp start
    # ftp ftp.sco.com
    ftp> binary
    ftp> hash
    ftp> cd SLS
    ftp> mget app479a*
    ftp> mget oss495a*
    ftp> mget oss48[510]a*
    ftp> mget oss47[86520]a*
    ftp> mget oss46[975][ab]*
    ftp> mget oss459b*
    ftp> quit
    # mstppp stop
    # l
  • Jetzt kann man die Generierung eines binären Dialers im Verzeichnis

  • /usr/lib/uucp  vorbereiten,
    der dann mit  mkdev modem  manifestiert wird.
    Dazu gibt's ein extra Kapitel weiter unten.
    Für PPP ist das eine Alternative - kein Muß.
  • Zumindest für ein User-Filesystem  /dev/u  müssen ein

  • Montierverzeichnis /u und Einträge in  /etc/default/filesys
    erzeugt werden.
    Und zwar mit  mkdev fs  oder mit dem Filesystem-Manager
    in  scoadmin.  (Letzterer läuft bei mir zur Zeit nicht.)
  • Unter  scoadmin - account  können weitere 'natürliche' User angelegt

  • werden.
    Schließlich ist Unix ein MultiUser-System!
  • Die Länge der Kommandozeile beträgt bei  sh  und  csh  (nur) 5KByte.

  • Die Korn-Shell  ksh  geht da erheblich weiter.  (echo *)
    Ich glaube, maximal 1MByte!
    Nutzen Sie die vielfältigen Möglichkeiten der Shell-Programme!
    Beispielsweise  alias .

^

T-Online
Zugang
mit
PPP
von
Morning
Star

Mit  startx  starten Sie X-Windows.
Auf dem Haupt-Fenster befinden sich unter anderem das Navigator-Icon
und eines 'System Administration'.
Letzteres öffnet ein Fenster, in dem das Icon 'Internet Configuration' steht.
Dieses Icon klicken Sie an, nachdem Sie in der folgenden Datei Einträge für
Ihr Modem vorgenommen haben wie folgt:
(Falls Schreibschutz vorliegt:  chmod +w datei

/usr/lib/mstppp/Dialers:
Schreiben Sie in diese Datei ans Ende oder zwischen andere Einträge:

Speedster14400  ABORT ERROR ABORT NO\sANSWER ABORT NO\sCARRIER \
                ABORT BUSY ABORT RING\r\n\r\nRING \
                ABORT NO\sDIALTONE \
                TIMEOUT 5 "" AT&F0\r\dAT\\J0 OK-AT-OK \
                ATW1X4S95=44DT\T TIMEOUT 40 CONNECT \d\d\c ""
Ich hatte hier auch mal \\J0 und s95=44 weggelassen und statt CONNECT
CONNECT\s57600/REL  eingetragen.
Als Richtlinie benutzte ich die Modemliste der T-Online-Software
und natürlich mein Modem-Handbuch.
Am wahrscheinlichsten muß man  &F0  und W1X4...DT  anpassen.
Bei Fehlschlag sollte man  debug 2  (s.u.) auf debug 9  bis  11  erhöhen
und dann den Inhalt der Datei  /usr/adm/pppd.log  anschauen.

Jetzt können Sie den Internet-Manager starten.
Als Name 'admin' und als Paßwort das root-Paßwort angeben.
Wählen Sie 'Outbound PPP connection'.
Testverbindung abwählen!
(Im Navigator:  'http://localhost:615/mana/mana/menu.mana'  ist übrigens (fast) dasselbe.)
Dieser Vorgang ist im Handbuch 'Internet Services' ab S.15 beschrieben.
Geben Sie folgendes ein:

127.0.0.2                    x Dynamic
127.0.0.3                    x Dynamic
0009999999990522284540#0001
kennwort
kennwort
0191011
x Modem
360
x Yes
57600
tty2A
Speedster14400
0009999999990522284540\\0430001    (PAP/CHAP name)
kennwort
kennwort
255.255.255.0
000999999999 = 12-stellige Anschlußkennung
0522284540 = 10-stellige Telefonnummer
# = weil Telefonnr. weniger als 12 Stellen hat
0001 = Mitbenutzer-Nummer
tty2A = 2. serielle Schnittstelle (A=modem; a=normal; /dev/tty2A)
Falls Sie keine FIFO-Schnittstelle haben, sind wohl nur 9600 baud möglich.

Falls Buttons 'OK' und 'CANCEL' vorhanden sind, benutzen Sie CANCEL,
um etwas zu verwerfen, nicht 'BACK'.
Sobald PPP erfolgreich konfiguriert wurde, zeigt der Internet-Manager
8 Service-Icons, wobei mit dem 'Net'-Icon die PPP-Konfiguration
erreichbar ist.
Schauen Sie später aber nur an und wählen stets CANCEL.


Nach der Konfiguration mit dem Internet-Manager müssen die Inhalte der
folgenden Dateien folgendermaßen aussehen.
Sie müssen wahrscheinlich Teile löschen oder hinzufügen, damit das so ist !!!

/usr/lib/mstppp/Devices:

Speedster14400 tty2A 57600 rtscts
/usr/lib/mstppp/Autostart:
Folgendes muß -durch Leerzeichen getrennt- in einer einzigen Zeile stehen
oder aber man verwendet eine Zeilenverlängerung:  up \  und  255.0 \
/usr/lib/mstppp/dialout 127.0.0.2~:127.0.0.3~ auto up
exec /usr/lib/mstppp/exec.dialout netmask 255.255.255.0
idle 360 debug 2 rtscts name '0009999999990522284540#0001'
/usr/lib/mstppp/Auth:
Die Octalzahl  \043  definiert das Zeichen '#',
kennwort ist Ihr T-Online-Kennwort:
0009999999990522284540\0430001 kennwort
/usr/lib/mstppp/Systems:
Sie müssen hier alles hinter 0191011 entfernen:
127.0.0.3 Any;40-120 ACU 57600 0191011
Ich habe in allen Dateien außer Autostart und Systems mehrere Einträge.
In  Auth  ...0002 kennwort2  und ansonsten Einträge für ein weiteres, schnelleres Modem.
(Autostart ist ein Shell-Script!  Man kann also mit Shell-Syntax steuern.)


Kopieren Sie
# cp /etc/init.d/mstppp /etc
Danach kann man  mstppp start  und  mstppp stop  aufrufen,
zwecks Anwahl und Abwahl.
Man kann sich solche Dinge natürlich vielfältig noch besser einrichten,
aber Infos darüber würden an dieser Stelle den Rahmen sprengen.

Schreiben Sie über die erste Syntax-Zeile in  /etc/rc2.d/S89mstppp
exit 0
Damit wird verhindert, daß bei jedem Systemstart im Multiuser-Modus (init 2)
sogleich T-Online angewählt wird - das will man in der Regel ja nicht.

/etc/resolv.conf:
Hier wurde die erste Zeile hinzugefügt.
Das ist die Internet-Adresse des DNS Nameservers  dns00.btx.dtag.de
Es geht aber auch ohne, weil das System einen eigenen Nameserver
(daemon=/etc/named) hat,
der Verbindung zu den root-Nameservern des Internet aufnimmt.

nameserver 194.25.2.129
nameserver 0.0.0.0
hostresorder local bind
Zum Online-Betrieb in den MultiUser-Modus gehen!

Erwähnenswert ist, daß  PPP-MorningStar  ein zweites PPP-System
auf dem SCO-System ist.  Standardmäßig ist  SCO-PPP  vorhanden.
MST-PPP wurde der Vorzug gegeben, in Verbindung mit den Internet-Services
und Internet-Manager.
MST-PPP ist besonders robust und leistungsfähig, es kann beispielsweise
64/256  PPP-Sitzungen gleichzeitig bewältigen.


Netscape Navigator

Der Navigator verhält sich bei einigen Details anders als DOS-Versionen.
Im Handbuch werden mindestens 800x600 und 256 Farben empfohlen.
Bei Standard-VGA mit 640x480(256) ist das optische Erscheinungsbild auch
tatsächlich sehr grob und Bedienungselemente (Options; teilweise)
sind jenseits des Sichtbereichs.
Das betrifft nicht X-Windows, sondern nur den Navigator.

Auf jeden Fall Offline akzeptiert er keine Proxy-Einstellungen [OK], so daß ich
die Datei  /.netscape/preferences  u.a. deshalb mit dem Editor ändern mußte.
Zumindest den Eintrag für den ftp-proxy leer lassen,
der Unix-Mozilla verträgt sich offenbar nicht mit dem ftp-proxy.btx.dtag.de .
Wichtig:  Keine Proxies für:  localhost,t-online.de

Der Startseiteneintrag www.sco.COM muß entfernt werden.
Ist ohnehin in den Bookmarks eingetragen.

Editor 3.0x hat eine seltsame Fehlererscheinung bei kleineren Dateien:
Zeichenattribute (Fett,Größe) werden automatisch auf alles folgende
ausgedehnt, beim Laden und Re-Laden!
Verwendung von Headings schützt davor, ebenso Kapselung durch Tabellen.

Bei Offline-Öffnung einer .html, die Online-URLs zu Grafik-Dateien enthält
(counter), sollte man das automatische Laden deaktivieren - sonst hängt er!
Lokale Grafiken kann man ja gezielt durch anklicken holen.

Bei den MIME-Typen sollte man  text/plain(.txt)  auf 'Navigator' ändern.
Im Editor ist  scoedit %f  besser als  scoterm -e vi %f  für die
Quelltext-Editierung,
den  vi  verwendet man besser per  multiscreen (s.u.)  im Original-Textmodus.

Die Tasten <Alt>+<Tab> und <Alt>+<Pfeile> sind wichtig für das
Umschalten mit dem Panner in X-Windows.

Die Eingabe von Sonderzeichen gestaltet sich anders und besser als unter DOS.
Es gibt da eine Compose-Funktion  <Ctrl>+<_>  nach der beispielsweise
2mal <s> ein 'ß' ergibt.
Wenn also diese Kombination gedrückt wurde, werden zwei weitere Tasten
erwartet:
a  "        ä
c  /         ¢
a  '        á
a  `        à
a  ~       ã
a  *       å
a  e       æ
1  2       ½
r  o       ®
/  /         \
|  |         ¦
s  2       ²
Das ist schon besser zu behalten als  ALT+#+#+# .
Übrigens, wenn man im Editor Toolbars wegschaltet, funktioniert dieses
Compose nicht mehr!
Aber einstellen kann man diese Funktionalität ganz nach eigenen Bedürfnissen
- bis in's Detail, wie es unter Unix üblich ist.
Auch u.a. die Beschriftung  des Navigators kann man beliebig einstellen.

Ein Umbenennen der Dateien  /usr/lib/X11/app-defaults/Netscape
und aktiviertenfalls  /usr/lib/X11/de_DE.ISO8859-1/app-defaults/Netscape
könnte ggf. Probleme lösen.

Installiert ist Navigator3.01gold,
ich habe mir von Netscape 3.04gold geladen, 2MB.
Dazu braucht man aber gunzip aus der SCO-Skunkware.
Der Communicator 4.05 ist zur Zeit als 60-Tage-Version ladbar. (12MB)
Seit Okt/Nov98 auch Comm 4.5 (9MB), ohne Tage-Abschaltung.

Der Communicator ist besser ausgestattet als Nav3.0x,
aber noch viel langsamer.
Um einen einzigen Tastendruck umzusetzen (Composer), braucht er
100 Millionen Prozessor-Instruktionen...
Composer und Nav3-Editor sind nicht ganz kompatibel. (</P>)
Der Composer ist sehr '&nbsp;'-verliebt und erzeugt viel redundantes.
Er blieb auch hängen beim Öffnen von  selfhtml->...  von Stefan Münz.
Und manchmal macht er einfach  EXIT  als hätte man's angeklickt.
Für Comm 4.5 gilt ähnliches, der verfälscht auch Farben, und man kann nicht zwischen
Dithering und Substitute wählen.
Also - insgesamt finde ich den Nav3.0x unproblematischer!

Nach weiterer Beschäftigung mit dem Comm4.5 habe ich dazu Lösungen gefunden,
die eine Anwendung (für mich) in Frage kommen lassen.
Und zwar habe ich den Variableninhalt  MOZILLA_NO_ASYNC_DNS=True  exportiert,
was das Offline-Arbeiten ermöglicht.
Weiterhin sind die gräßlichen Farbfehler verschwunden, nachdem ich den Navigator-Background
mal auf ein helleres Grau einstellte - obwohl das nichts mit den Dokumentenfarben zu tun hat.
Dies ist aber nur eine Teillösung - Comm4.5 hat ein fehlerhaftes Color-System.

Jedenfalls ist der Comm4.5 besser als der 4.05, weil (wieder) übersichtlicher organisiert,
und beispielsweise wegen des Menü-Punktes  "Edit message as new" .
Schon möglich, daß ich vom Nav3.04 zum Comm4.5 als Haupt-Browser wechseln werde...

Die oben genannten störenden Details sollen aber nicht den Eindruck erwecken,
daß es sich hier um schlechte, schwer nutzbare Programme handelt!
Mit sehr großen Anwendungen muß man häufig ein wenig 'kämpfen'.
So etwas wie die o.g. "seltsame Fehlerer..." ist jedoch schon ziemlich massiv,
weil 'immer wieder neu'.

Zum Thema  'ftp-Programm'  siehe unten ('Hinweise').


Anwahl-/Abwahl-Icon erzeugen

Mit dem Tool 'paint' ein Abwahl- und ein Anwahl-Icon  .px  erzeugen.
Mit dem Tool 'object builder' die Icons installieren  (An Ab An Ab).
Bei 'trigger aktivate' nachfolgendes deskshell-Script eintragen.
Abspeichern gemäß folgendem Pfadnamen.   (mkdir .../mein_verz   zuvor)

/usr/lib/X11/IXI/XDesktop/tools/mein_verz/mein_obj/xxxxxxx

Im Fenster 'toolsheds' das 'mein_verz' öffnen und Icon auf's main-window
ziehen.
Dadurch erhält man ein Icon mit wechselndem Bild.
Möglicherweise gibt's elegantere Script-Lösungen.

begin
if == $:TONL 'yes'
then
   :TONL='no'  ; /bin/sh /etc/mstppp stop ; sleep 4
else
   :TONL='yes' ; /bin/sh /etc/mstppp start
   while == $:TONL 'yes' ; do sleep 3; done
fi
finish

^

Hinweise

Hinweise zu Version 5.0.5

Eine Installation des ReleaseSupplement rs505a kann ich nicht empfehlen,
es verkorkst teilweise das System!
Mag sein, daß man das durch Nichtinstallation gewisser Packages vermeiden kann.
Ich bekam jedenfalls nach Installation  '/etc/rc2: Alarm...' als Fehlermeldung und auf
beliebiges Setzen der Sprachen-Variable LANG= wurde nicht mehr reagiert,
wobei letzteres wohl kaum tolerabel ist.

Aber, seit kurzem gibt es Supplements, die den Übeltäter (rs505a-Sub: Core OS...)
nachträglich korrigieren!
Desweiteren gibt es ein Y2K-Suppl. und ein EURO-Supplement.

Es gibt ein BTLD-Disketten-Image mit verbesserten Treibern.
Das kann bei eventuellen Hardware-Problemen ganz zu Beginn einer Installation helfen.
(u.a.:  ftp.sco.com/pub/...)

Ganz entscheidend sind Syntax-Fehler in der Script-Datei
/usr/lib/mstppp/exec.dialout :

Fehlerhaft:

if [ expr match $PPP_DEVICE 'tty[0-9][0-9]*[A-Za-z]' ]; then
    tty=`echo $PPP_DEVICE | tr [A-Z] [a-z]`
Korrigiert:
if  expr match $PPP_DEVICE 'tty[0-9][0-9]*[A-Za-z]' ; then
    tty=`echo $PPP_DEVICE | tr '[A-Z]' '[a-z]'`
Der erste Fehler bewirkt, daß das Script bereits an dieser zweiten Arbeitszeile
mit Exit==FALSE abgebrochen wird und somit keinerlei Routen gesetzt werden,
was dazu führt, daß kein Client (ftp,ping,Browser,traceroute,nslookup,...)
zur laufenden Internet-PPP-Verbindung durchdringen kann - alles hängt !

Das ist überraschend, weil ja mit dem komfortablen Internet-Manager in Verbindung
mit MST_PPP heftig 'geworben' wird und eine sofortige vollautomatische
Internet-Testverbindung voreingestellt ist.
Zudem ist V5.0.5 generell seit etwa einem halben Jahr erhältlich. (...?!)

Mittlerweile gibt es ein neues PreRelease des MST_PPP ...
 
 

Hardware-Voraussetzungen

Erkannt werden automatisch ISA, EISA, PCI, IBM-Microchannel Bus.
Festplatten IDE, EIDE, SCSI(u.a.Adaptec), CDROM (/dev/cd0).
Dutzende von Grafik-Karten.
SCO hält insgesamt über 3000 Treiber bereit !!
i386, 16MB, Festplatte 500MB reichen aus.
Empfehlenswert (bei Grafik+Internet) sind >=32MB und Pentium>=133.
Falls das RAM nachträglich erweitert wurde, sollte das Kommando
'iddeftune' aufgerufen werden, danach Kernel-Link.
Das System startet auch klaglos mit nur 8MB RAM.
Wenn der Kernel (1.8MB) und einige 100 Blöcke DiskCache Platz haben -
- warum nicht.


Besonderheiten bei Dateisystemen

Es werden viele Dateisystem-Typen unterstützt, auch DOS-FAT.
Das modernste ist HTFS (Default).
Gebräuchlich sind weiterhin EAFS, DTFS (komprimierend)
und die CD-ROM-Systemtypen.

Hard-Links (ln) und symbolische Links (ln -s) sind selbstverständlich vorhanden.

Dateisysteme der Typen HTFS  und  DTFS  können bis zu 1 TeraByte groß sein.

Checkpointing, Logging und Versioning  sind implementiert und konfigurierbar!
Versioning  ist nicht voreingestellt und ist ein  undelete-Mechanismus, der bei
HTFS und DTFS vielfältig eingestellt werden kann.
Es können von jeder Datei bis zu 65535 (!) undelete-Versionen gehalten werden,
und die Zeit bis zu einer Versionierung einer Datei kann von 0 bis 32767 Sekunden gewählt werden.

Mit Hilfe des marry-Mechanismus kann eine normale Datei, die ein komplettes Dateisystem
enthält, montiert werden!
Danach kann in diesem Dateisystem gearbeitet werden, woraufhin sich der Inhalt der
Image-Datei entsprechend ändert!
(siehe unten)
 

SCO-OpenServer  ::  Linux

SCO-OpenServer ist insgesamt betrachtet wohl besser und vollständiger als Linux,
besonders, wenn man die Skunkware-CD hinzunimmt, und Details,
wie z.B. die etwa 3500 erhältlichen Treiber berücksichtigt.
Ich finde es auch praktischer und konfigurierbarer als UnixWare.
SCO-OS ist meiner Meinung nach das 'freundlichste' PC-Unix,
unter anderem wegen der administrativen Programme  scoadmin  und  custom.
SCO-OS hinkt -die Geschwindigkeit betreffend- den anderen PC-Unixen
etwas hinterher.  Das ist jedoch nicht von erheblicher Bedeutung, da z.B.
die verwendete Hardware hier einen viel größeren Einfluß hat.
Linux hat den Vorteil, daß neue Software schneller -frei- erhältlich ist.
Linux ist Public Domain - von vielen entwickelt und nie 'richtig fertig/komplett'.
SCO ist ein System aus einer Hand - normalerweise viele tausend Mark teuer.

Ich halte es aber für möglich, daß das Suse-Linux so etwa ab dem Jahr 2000
-für mich- ähnlich interessant sein könnte wie SCO-Unix...

Hinsichtlich Entstehung, Herkunft, Status und Darreichung
sind diese Systeme also sehr unterschiedlich.
Oftmals werden Geschmacks-, Glaubens- und Erfahrungsfragen
darüber entscheiden, welchem System man sich stärker zuwendet.
Wer mit den drüberstehenden Meinungsäußerungen nicht zufrieden ist,
der kann auf seiner eigenen Homepage abweichend Stellung nehmen.

Mittlerweile habe ich FreeBSD und SuSE Linux6.3 installiert.
FreeBSD wirkt  schnell, straff, 'lautlos', stabil - macht einen guten Eindruck.
Linux unterstützt alles Gängige und hat alles Gängige - eine Stärke.
LifeFilesystem-CD ist klasse, ein tolles Not-/Sondersystem.

Bei SCO ist sehr zu bemängeln, daß weder ZIP noch LS120 unterstützt werden!
Das ist kaum zu begreifen, zumal diese im BIOS seit langem zum Booten eingestellt
werden können.  (Boot-ZIP100!)
Außerdem werden Matrox G200/400 erst seit kurzem unterstützt, erst seit G200
gar nicht mehr erhältlich ist.
Außer FAT16-primär wird nichts Fremdes unterstützt.


SCO Merge

Mittlerweile gibt es  Free SCO Merge 4.0  (7,6MByte) .
Merge erzeugt die Voraussetzungen, um DOS-Programme
und MS-Windows -unter Unix!- starten zu können.

DOS6.0 bis 6.22, Win3.1, Win3.11, Win32s und Win95!(+DOS7)
können unter Unix installiert (Unix-Filesystem) und ausgeführt werden.
Innerhalb von Fenstern des X-Windows als auch den ganzen Bildschirm
einnehmend (zoomed) kann damit gearbeitet werden.

DOS6.22[en] kann der Vorgängerversion Merge3.2.2 entnommen werden,
als vier Disketten-Images (Verzeichnis 'dosi').
Die Administration und Konfiguration ist auch graphisch unter X11 vorhanden.

Wegen des CEPT-Zuganges und eines Foren-Offline-Readers (Take.Offl.)
habe ich Win32s, den Reader und die T-Online-Software unter SCO-Merge
installiert und erfolgreich in Betrieb genommen.
Das erspart häufiges Hinundher-Booten und man kann die Vorzüge des
Unix-Filesystems (z.B. Symbolische Links) genießen.

Allerdings mußte ich einige Einstellungen erheblich 'zahmer' justieren:

DOS/Win3.1        Merge/TO2.5        Merge/TO1.2d
-------------------------------------------------
com2fifo=1              1                  1
com2buffer=256       1024               1024
com2rxtrigger=4         8                  8
comboosttime=10        12                 18
57600 baud          19200              19200
                        int28critical=0
                        dualdisplay=0
                        comirqsharing=0
Die letzten 3 müssen nicht unbedingt berücksichtigt werden;
das Ganze ist ohnehin einzelfall- und prozessor-abhängig.
Die geringe baud-Rate spielt bei CEPT-Foren kaum eine Rolle!
(Siehe auch auf der Leitseite:  Online-Tips)


Clients und Server-Daemons

Das SCO-System unterstützt dutzende von Internet-Diensten (/etc/services).
Hierfür sind nicht nur Clients vorhanden, sondern auch jeweils Server!
Mit diesem System könnte man also Inet-Dienste-Anbieter werden
- natürlich nicht mit einer Free-Lizenz.

Lokal (localhost) kann man aber so tun als ob! 

Beispiel:   ftp localhost   (multiuser-modus)
öffnet ein Verzeichnis für unprivilegierte User, mit einem ./pub  mit Schreibrecht,
und zwar wegen des unten angegebenen 'anonymous'.
Bei   ftp> user root   wird das root-Paßwort abgefragt und das root-Verzeichnis
daraufhin gezeigt.
Für diese Funktionalität wird automatisch der ftp-Server /etc/ftpd  gestartet.

Nachfolgend eine beispielhafte Ini-Datei für 'ftp':

/.netrc  ($HOME/.netrc) :

machine localhost
login anonymous password schellong@t-online.de
macdef init
bell
binary
hash
ls "-Al"
system

machine home-up.t-online.de
login anonymous password schellong@t-online.de
macdef init
bell
binary
hash
cd /home/schellong
dir

default
login anonymous password schellong@t-online.de
macdef init
bell
binary
hash
dir
system
Der Server  home-up.t-online.de  erlaubt (nur) folgende
Server-Kommandos (einige ohne Argumente):
HELP  PWD  LIST  NLST  DELE  PORT  STOR  RETR  RNFR  RNTO  QUIT

Das oben gezeigte ftp-Kommando cd /home/schellong wird auch
folgerichtig abgewiesen, da CWD ja nicht geht und hier auch nicht notwendig ist.

ACHTUNG:  Inzwischen wurde  home-up.t-online.de  erheblich verbessert!
Er ist praktisch gleich dem  ftpd  unter SCO.

Die Online-Übertragungsgeschwindigkeit ist in vielen Fällen bis zu 50%
höher als unter einem 'normalen' MS-Windows.
Die Stabilität ist ebenfalls vorzüglich - es ist halt Unix!

Der ftp-Client kann -natürlich- abgebrochene Downloads fortsetzen,
und zwar mit dem Kommando  reget file .
Außerdem gibt es die Kommandofolgen:
restart byte_offset  +  get | put | append
In beiden Fällen sendet er  REST  zum Server,
bei  reget  rechnet er den Byte-Offset selbst aus.


SCO - Multiscreen

Im Single-User-Modus (maintenance) heißt die Schnittstelle  /dev/console.
(# tty)
Jedoch im MultiUser-Modus werden  /dev/tty01  bis  /dev/tty12  geöffnet.

Man läuft zuerst auf  tty01  (bei scologin enable: tty02)
und kann durch einfache Betätigung der Tasten  <Alt>+<F1...F12>
zwischen diesen 12 Bildschirmen hinundher schalten.
Zuvor muß man jeweils Login machen.
Man kann sich also 12mal gleichzeitig beispielsweise als  root  einloggen !

Verlassen eines Bildes im Grafik-Modus erfordert zusätzlich die Taste  <Ctrl> .

Diese Multiscreen-Einrichtung ist enorm hilfreich:
Wenn mal ein Prozeß hängt, wechselt man einfach, schaut sich mit  # ps -ef
die Prozesse (PID/PPID) an und kann mit  # kill [-9] PID
den Hänger killen.
Auch kann man unter tty01 arbeiten und auf mehreren anderen tty's
mit dem Editor in Dateiabschnitten stehen, die für die Hauptarbeit
wichtige Infos zeigen.
Oder einen Festplatten-Vorgang starten und auf einem anderen Schirm
mit DoctorLite die Transferrate beobachten.
Und vieles andere mehr.

Eine einzelne X-Windows-Sitzung ist durch das 'Panner' vergleichbar,
multiscreen  ist aber übergeordnet (jeweils   login:  password:  ).


Zurücksetzen muß man das System mit
# shutdown -g00
# haltsys
# reboot
wobei ersteres Kommando den Vorzug hat.


Vor einem Kaltstart muß man keine Angst haben!
Falls man das mal tun muß, zwei Minuten nichts tun, dann Ausschalten.
Die Dateisysteme werden von Logging-Daemons (htepi_daemon) überwacht,
so daß noch nicht einmal das Kommando  fsck  (filesystem-check)
(sichtbar) arbeitet, beim erneuten Systemstart.
Auch der  Shutdown  geht dadurch schneller.


Die Kommando-Gruppen  mapkey, mapchan  und  coltbl, *tbl
sind ganz vorzüglich, um sich ganz nach eigenen Bedürfnissen einzurichten,
was Internationalisierung, Tastatur, Schirm, Zeichenbedeutungen, etc., angeht.

Tastatur (mapkey):
Unter den Spalten  Taste, Shift+Taste, Ctrl+Taste, Ctrl+Shift+Taste,
Alt+Taste, Alt+Shift+Taste, Ctrl+Alt+Taste, Ctrl+Alt+Shift+Taste,
kann jeweils jedes Zeichen dezimal 0 bis 255 definiert werden.
Natürlich (!) als  name  oder  'z'  oder  000  oder  0x00  - gemischt.
96 Funktionstasten lassen sich mit Zeichenketten belegen.

Für die Ausgabe ist ein gleichartiges Mapping möglich.

Die Kommandos  coltbl, chrtbl, mestbl, mon(cur)tbl, numtbl, timtbl,
sind kleine Konverter und gestatten eine sehr detaillierte Definition
von Sortierung, Zeichenbedeutung, ja/nein, Währungssymbolen,
Zahlentrennzeichen 1.000.000,00  und Tages/Monats-Namen/Datum/Uhrzeit.
Bei letzterem ist ein Format gemäß der C-Funktion strftime()  angebbar.

Man kann sich quasi seine eigene 'Sprache' erzeugen,
die 6 Binär-Dateien in  /usr/lib/lang/de/DE/ISO8859-1/  speichern,
die Variable  LANG=de_DE.ISO8859-1  setzen und exportieren.
(de_DE.... wurde hier beispielhaft genannt.)

Diese Definitionen wirken im gesamten System. Viele Kommandos,
wie  vi,date,ls,sort, calendar-server(X-Win),Unix-Box(X-Win),
verwenden diese Vorgaben.
(Alle hierfür notwendigen Maßnahmen wurden nicht genannt!)

Ich kreierte für mich  univ_int.pc8 .
Bei manchen Start-Scripts in  /etc/rc2.d  muß LANG=C oder =C_C.C
gesetzt und exportiert werden, damit's keine 'Meckereien' gibt.


Ein vorbereiteter Standard-Montierpunkt ist  /mnt  .
Montierpunkte sind ganz normale Verzeichnisse! (mkdir)
Falls ein als Montierpunkt verwendetes Verzeichnis Inhalte hat, so werden
diese während der Montierung von den Inhalten des anmontierten
Dateisystems überdeckt.
Montieren Sie niemals etwas an  /dev, /etc, /usr, ...  !!!

Man kann auch remote-Filesysteme montieren (NFS==NetworkFileSystem):
mount -f NFS host:path /mnt
 

Das Kommando  marry  assoziiert normale Dateien mit Devices im Verzeichnis  /dev/marry :

    marry -a /media/cdpart
erzeugt ein Blockgerät  /dev/marry/media/cdpart  , auf dem ein Filesystem kreiert
und das ganz allgemein wie ein 'normales' b-Device behandelt werden kann.
/media/cdpart ist hier die gewöhnliche damit verknüpfte Datei.

Ich hatte mal Probleme mit unsichtbaren aber vorhandenen Dateien auf einer gebrannten CD
mit ISO9660-Filesystem:

    cd /media
    dd if=/dev/rcd0 of=cdpart bs=1b count=40000
    marry -a /media/cdpart
    # Veränderung einzelner Bytes in der Datei (ca.10MB)
    mount /dev/marry/media/cdpart /mnt
    l /mnt
    # und die Dateien waren jetzt zugreifbar.
Übrigens, 'rename' ist bei CD-ROM-Filesystemen grundsätzlich nicht möglich!
In diesem Fall wäre ich hier einfacher zum Ziel gekommen.
RamDisks (/dev/ramXX) sind vergleichbar mit married files, aber eben inhalts-flüchtig.

Die Flexibilität eines Unix-Systems ist vergleichsweise absolut unerreicht;
ein weiteres Beispiel wären die Symbolischen Links...

^

Tricks

Hinweise für Fortgeschrittene

Anzahl der Inodes in Filesystemen

Wenn mit divvy ein Filesystem anlegt wird, erfolgt eine Festlegung der maximalen Dateianzahl
im neuen Dateisystem gemäß  nKBlocks/4.
Es wird also eine mittlere Dateigröße von nur 4 KByte angenommen, wodurch die Anzahl der
vorbereiteten Inodes (z.B. 128 Byte pro Inode) extrem groß wird.
Beim root-Filesystem ist dieser Formelwert durchaus angemessen, jedoch bei anderen
Dateisystemen sollte nach meiner Erfahrung von 20 KByte mittlerer Dateigröße
ausgegangen werden.

Ein Dateisystem mit 2.000.000 kBlocks Größe hat standardmäßig 500.000 Inodes!
Das macht das System unnötig schwerlastig und kostet etwa 64 MByte Inode-Platz.

    mkfs -y -f HTFS /dev/rscratch 4000000:100000
Gehen Sie einfach -nach divvy- mit dem obigen Kommando nochmals drüber,
solange das jeweilige Filesystem noch unbenutzt ist.
Oben sind 4.000.000 Blöcke mit je 512 (!) Byte : und 100000 Inodes angegeben.
Und stets raw-Dev angeben:  /dev/r...

Partitionen, Divisionen, 2 Festplatten, boot, bootos, ...

fdisk  und  divvy:
Die Besonderheit ist in der letzten divvy-Tabelle zu sehen.
Current Hard Disk Drive: /dev/rhd00
+-------------+----------+-----------+---------+---------+---------+
| Partition   | Status   | Type      |   Start |     End |    Size |
+-------------+----------+-----------+---------+---------+---------+
| 1           | Inactive | OS/2  (nt)|      16 |   15711 |   15696 |
| 2           | Active   | UNIX      |   15728 |  184319 |  168592 |
| 3           | Inactive | DOS (32)  |  184320 |  249343 |   65024 |
| 4           | Inactive | UNIX      |  249344 |  314367 |   65024 |
+-------------+----------+-----------+---------+---------+---------+
Total disk size: 314400 tracks (17 reserved for masterboot and diag)

Current Hard Disk Drive: /dev/rhd10
+-------------+----------+-----------+---------+---------+---------+
| Partition   | Status   | Type      |   Start |     End |    Size |
+-------------+----------+-----------+---------+---------+---------+
| 1           | Inactive | TYPE 18   |       1 |     111 |     111 |
| 2           | Inactive | DOS (32)  |     112 |    1135 |    1024 |
| 3           | Inactive | DOS (32)  |    1136 |    2159 |    1024 |
| 4           | Active   | UNIX      |    2160 |   16351 |   14192 |
+-------------+----------+-----------+---------+---------+---------+
Total disk size: 16368 tracks (17 reserved for masterboot and diagn)

+-------------+------------+--------+---+-------------+------------+
| Name        | Type       | New FS | # | First Block | Last Block |
+-------------+------------+--------+---+-------------+------------+
| boot        | EAFS       |  no    | 0 |            0|       19999|
| swap        | NON FS     |  no    | 1 |        20000|      269999|
| root        | HTFS       |  no    | 2 |       270000|      969999|
| u           | HTFS       |  no    | 3 |       970000|     1049999|
| media       | HTFS       |  no    | 4 |      1050000|     3049999|
| scratch     | HTFS       |  no    | 5 |      3050000|     5299999|
| recover     | NON FS     |  no    | 6 |      5310134|     5310143|
| hd0a        | WHOLE DISK |  no    | 7 |            0|     5310647|
+-------------+------------+--------+---+-------------+------------+
5310144 1K blocks for divisions, 504 1K blocks reserved for the syst

+-------------+------------+--------+---+-------------+------------+
| Name        | Type       | New FS | # | First Block | Last Block |
+-------------+------------+--------+---+-------------+------------+
| win         | HTFS       |  no    | 0 |            0|      249999|
| 3           | AFS        |  no    | 1 |       250000|      399999|
|             | NOT USED   |  no    | 2 |            -|           -|
|             | NOT USED   |  no    | 3 |            -|           -|
|             | NOT USED   |  no    | 4 |            -|           -|
|             | NOT USED   |  no    | 5 |            -|           -|
| x           | HTFS       |  no    | 6 |      1200000|     2047751|
| hd04        | WHOLE DISK |  no    | 7 |            0|     2048255|
+-------------+------------+--------+---+-------------+------------+
2047752 1K blocks for divisions, 504 1K blocks reserved for the syst

+-------------+------------+--------+---+-------------+------------+
| Name        | Type       | New FS | # | First Block | Last Block |
+-------------+------------+--------+---+-------------+------------+
| hd1boot     | EAFS       |  no    | 0 |            0|        4999|
| s           | HTFS       |  no    | 1 |         5000|      444999|
|             | NOT USED   |  no    | 2 |            -|           -|
|             | NOT USED   |  no    | 3 |            -|           -|
|             | NOT USED   |  no    | 4 |            -|           -|
|             | NOT USED   |  no    | 5 |            -|           -|
|             | NOT USED   |  no    | 6 |            -|           -|
| hd14        | WHOLE DISK |  no    | 7 |            0|      447047|
+-------------+------------+--------+---+-------------+------------+
446544 1K blocks for divisions, 504 1K blocks reserved for the syste

/dev/hd1boot:
-r--------   1 bin      bin        72662 Mai 27 03:36 boot
-r--------   2 bin      bin         6471 Mai 27 03:36 bootos
-r--------   2 bin      bin         6471 Mai 27 03:36 dos
-rwx------   1 bin      bin         2458 Mai 27 03:36 sfmt
Moderne BIOSe gestatten es, die zweite (dritte, vierte) Festplatte zu booten. (D,E,F)
Noch besser ist ein Wechselschalter, der die CSEL-Leitungen der Festplatten (Cable Select)
entsprechend beschaltet.
Hier ist die zweite Festplatte präpariert, um auch dort den SCO-boot-Manager zu verwenden.

Herstellung:

    dd if=/dev/zero of=/dev/rhd10 bs=1b count=63
    dd if=/etc/masterboot of=/dev/rhd10 bs=1b
    fdisk -f /dev/rhd10
    ...
    divvy /dev/hd14
    ...
    mount /dev/hd1boot /mnt
    cd /stand
    cp boot* sfmt /mnt
    cd /mnt
    ln bootos dos
    cd
    umount /mnt
    dd if=/etc/hdboot0 of=/dev/rhd14 bs=1b
    dd if=/etc/hdboot1 of=/dev/rhd14 bs=1b oseek=2
DOS-Diskette #1 booten:
fdisk ...
format d: /x/s/u/v:DRDOS703en
BIOS D,A booten  (P2==aktiv)
C:\>  a:\install.exe
(MSDOS622 (P3) bleibt nach 10 Zeilen Hyroglyphen hängen.)
E: ist die FAT-Partition der ersten Festplatte,
von DRDOS(hd10) und von NT(hd00; D:) nutzbar.
BIOS D,A oder CableSelect:
Boot: dos (oder anderes BS)   (Boot: bootos ?)
...

root-Paßwort vergessen?!

Mit Boot-Diskette booten.
mount /dev/hd0root /mnt
chroot /mnt /bin/csh
su root
passwd
So habe ich neulich einen Verwandten gerettet,
mit Boot-Diskette von OpenServer 5.0.4 .

--

^

Binärer
Dialer

PPP von Morning Star
benutzt automatisch einen möglichst gut passenden binären Wähler
aus dem Verzeichnis  /usr/lib/uucp  immer dann, falls kein passender
Eintrag in  /usr/lib/mstppp/Dialers  auffindbar ist. 

Mit den nachfolgend beschriebenen drei Dateioperationen kann man seinen
'eigenen' Modem-Dialer vorbereiten, so daß er mittels
mkdev modem
oder
scoadmin - Hardware - modem
erzeugt und konfiguriert werden kann.


Schreiben Sie ans Ende der nachfolgend genannten Datei
/usr/lib/uucp/DBase/Vendors

1u1Direkt {1 & 1 Direkt GmbH}
Erzeugen Sie folgende Datei mit nachfolgendem Inhalt:
/usr/lib/uucp/DBase/1u1Direkt
Speedster14400 {1 & 1 Direkt - Speedster 14400} 01 {1u1_Modem1 0}
Erzeugen Sie folgende Datei mit nachfolgendem Inhalt:
/usr/lib/uucp/default/Speedster14400
# Vendor: 1u1Direkt
#
STTY=RTSFLOW CTSFLOW -ORTSFL -IXON -IXOFF -IXANY
*SERIAL_BPS=FIXED
*
MDM_SETUP=AT&F0\J0
MDM_OPTION=
MDM_DIALCMD=ATW1X4S95=44DT
MDM_ESCAPE=+++
MDM_HANGUP=ATQ0H0
MDM_RESET=ATQ0Z0
MDM_DIALIN=ATS0=2Q1
MDM_ATTN=AT
MDM_DISPLAY=ATQ0
MDM_QUIET=ATQ1
MDM_SPEAKER=ATL0M1
MDM_DSBLESC=ATS2=128
MDM_MODE=AUTO
RTC_OK=OK
RTC_NOCARR=NO CARRIER
RTC_ERROR=ERROR
RTC_NOTONE=NO DIALTONE
RTC_BUSY=BUSY
RTC_NOANS=NO ANSWER
RTC_CONNECT=CONNECT
*RTC_DATA=DATA
*RTC_FAX=FAX
RTC_50=not used
RTC_75=not used
RTC_110=not used
RTC_200=not used
RTC_300=not used
RTC_600=not used
RTC_1200=not used
RTC_1800=not used
RTC_2400=not used
RTC_4800=not used
RTC_9600=not used
RTC_19200=not used
RTC_38400=not used
RTC_57600=not used
RTC_76800=not used
RTC_115200=not used
RTC_230400=not used
RTC_460800=not used
RTC_921600=not used
*RTC_600=CONNECT 0600
*RTC_1200=CONNECT 1200
*RTC_1800=not used
*RTC_2400=CONNECT 2400
*RTC_4800=CONNECT 4800
*RTC_9600=CONNECT 9600
*RTC_19200=CONNECT 19200, CONNECT 14400
*RTC_38400=CONNECT 38400, CONNECT 14400

^

vi  -  Kurzreferenz

========================================================================
                           -- Editor  vi --                     sc/1989
========================================================================
<Esc>  -->  Kommando-Modus
········································································
i      -->  Schreib-Modus: links einfügen  (#i)
I      -->  Schreib-Modus: springt zum sichtb. Zeilenanfang, dann wie i
a      -->  Schreib-Modus: rechts anhängen  (#a)
A      -->  Schreib-Modus: springt zum Zeilenende, dann wie a  (#A)
r      -->  Schreib-Modus: ein Zeichen überschreiben
3r     -->  Schreib-Modus: eingegebenes Zeichen 3-mal
R      -->  Schreib-Modus: beliebig viele Zeichen überschreiben
4R     -->  Schreib-Modus: eingegebene Zeichenfolge 4-mal
o      -->  Schreib-Modus: Anfang nächste Zeile
O      -->  Schreib-Modus: Anfang Zeile darüber
cc     -->  Schreib-Modus: löscht Zeile und geht zum Anfang  (#cc)
cw     -->  Schreib-Modus: ändert Wort          (3cw = 3 Worte)
cW     -->  Schreib-Modus: dito - Trennzeichen nur noch ' '
C      -->  Schreib-Modus: ändert bis Zeilenende  (#C)
c$     -->  Schreib-Modus: ändert bis Zeilenende  (#c$)
c0     -->  Schreib-Modus: ändert bis Zeilenanfang
c^     -->  Schreib-Modus: ändert bis sichtbaren Zeilenanfang
c4_    -->  Schreib-Modus: ändert die nächsten 4 Zeichen    (_ = space)
4c_    -->  Schreib-Modus: ändert die nächsten 4 Zeichen    (_ = space)
cfz    -->  Schreib-Modus: ändert bis EINschließlich nächstes z
2cfz   -->  Schreib-Modus: ändert bis EINschließlich übernächstes z
c2fz   -->  Schreib-Modus: dito
ctz    -->  Schreib-Modus: ändert bis AUSschließlich nächstes z
s      -->  Schreib-Modus: ersetzt 1 Zeichen    (5s = 5 Zeichen)
S      -->  Schreib-Modus: ändert  1 Zeile      (5S = 5 Zeilen)
········································································
<Ctrl><u>   Beginnt Schreibvorgang neu  (im Schreib-Modus!)
<Ctrl><w>   Beginnt Schreibvorgang neu  (im Schreib-Modus!)
<Ctrl><d>   Cursor links bei autom. Zeicheneinfügung (set autoindent)
········································································
<Ctrl><v> , <Enter>  schreibt z.B. ^M
So werden Steuer-Zeichen geschrieben, die sonst aktiv würden.
------------------------------------------------------------------------
<Ctrl><g>   Gibt Information über aktuelle Datei  (:f = dito)
------------------------------------------------------------------------
AUF VIELFÄLTIGE MÖGLICHKEITEN, KOMMANDOS ZU KOMBINIEREN, ACHTEN.
Zahlen lassen sich vor nahezu alle Kommandos setzen, auch wenn hier
nicht unbedingt überall angegeben (# ) !
Es handelt sich um Wiederholungsanzahlen oder (Zeilen-)Adressierungen.
Viele Kommandos wirken nur in der aktuellen Zeile (z.B. #ctz) !
------------------------------------------------------------------------
x      löscht Zeichen    (5x   =Fünf Zeichen)
X      löscht Zeichen, jedoch links vom Cursor   (5X)
dw     löscht Wort       (4dw)
dW     dito - Trennzeichen nur noch ' '
dd     löscht Zeile(n)   (3dd  =Drei Zeilen)
D      löscht Zeile bis Zeilenende, ab Cursor
d$     löscht Zeile bis Zeilenende, ab Cursor    (#d$)
d0     löscht Zeile bis Zeilenanfang, ab Cursor
d^     löscht Zeile bis sichtbaren Zeilenanfang, ab Cursor
d5_    löscht 5 Zeichen/Zeilen durch <Space>-drücken, <BackSp>, j oder k
5d_    löscht 5 Zeichen durch <Space>-drücken
dtS    löscht analog zu ctz, yfs, etc. - also bis ausschl. nächstes S
d/wu   löscht bis ausschließlich 1. Vorkommen von 'wu'.
········································································
:34d             Löscht Zeile 34
:12,14d          Löscht Zeilen 12 bis 14
:'a,'bd          Löscht Zeilen zwischen den Marken (s.u.) a und b.
:12,$d           Löscht ab Zeile 12 bis Datei-Ende
:.,$d            Löscht ab aktueller Zeile bis Datei-Ende
:1,$d            Löscht gesamte Datei
:%d              Löscht gesamte Datei  (% = 1,$)
:g/ABC/d         Löscht alle Zeilen, die ABC enthalten
:g/^$/d          Löscht alle Leerzeilen
:12,76s/ABC//g   Löscht sämtliche ABC in den Zeilen 12 bis 76
:g/ABC/s///      Löscht jeweils das erste ABC in allen Zeilen
:g/ABC/s///g     Löscht sämtliche ABC
------------------------------------------------------------------------
J      Zeile unter der aktuellen wird an aktuelle angehängt
1J,2J  dito, verketten 2 Zeilen
4J     Jetzt werden 4 verkettet, also 3 an die aktuelle gehängt.
       <Enter> beim Schreiben ist Zeilenbrechen
               und damit Rückgängigmachung (siehe auch <r><Enter>) !
~      Ändert von Kleinschreibung zu Großschreibung und umgekehrt
8~     dito - jetzt aber 8 Zeichen
.      Wiederholt letzten Schreib- oder Löschvorgang inklusive <Esc>
       (auch z.B.  "aP  ;  Wirkung nach  u  beachten)     (#.)
3.     Wiederholt 3-mal
u      Macht letztes Kommando rückgängig   (Text löschen oder erzeugen)
U      Restauriert die aktuelle beliebig (oft) bearbeitete Zeile
------------------------------------------------------------------------

------------------------------------------------------------------------
$      Geht zum Zeilenende
0      Geht zum Zeilenanfang
^      Geht zum ersten sichtbaren Zeichen der Zeile
12¦    Geht zum 12. Zeichen in aktueller Zeile
w      Geht zu Wortanfängen                (#w)
W      Geht zu Wortanfängen                (#W) (andere Stop-Bewertung)
b      Geht zu Wortanfängen, rückwärts     (#b)
B      Geht zu Wortanfängen, rückwärts     (#B) (andere Stop-Bewertung)
e      Geht zu Wortenden                   (#e)
E      Geht zu Wortenden                   (#E) (andere Stop-Bewertung)
fx     Geht zum nächsten x                 (#fx)
Fx     Geht zum nächsten x, rückwärts      (#Fx)
tz     Geht bis vor nächstes z             (#tz)
Tz     Geht bis vor nächstes z, rückwärts  (#Tz)
;  ,   betreffen  f, F, t, T :  springen zu weiteren Antreffen  (#;,)
········································································
%      Geht zu Klammern, wenn man dazwischen oder drauf ist. () [] {}
(  )   Geht zum Anfang/Ende von Sätzen, die mit . ? ! und '  ' enden.
{  }   Geht zum Anfang/Ende von Paragraphen  (leere Zeilen, u.a.)
[[ ]]  Geht zum Anfang/Ende von Sektionen  (^L oder { am ZA, u.a.)
········································································
123G   Geht zur Zeile 123
G      Geht zum Datei-Ende
100+   Geht 100 Zeilen vor
100-   Geht 100 Zeilen zurück
:1     Geht zur ersten Zeile = Datei-Anfang   (:0 = dito)
:123   Geht zur Zeile 123
:$     Geht zum Datei-Ende
········································································
ma     markiert aktuelle Stelle und benamt sie mit a  (a-z)
`a     springt zur markierten Stelle a
'a     springt zur markierten Stelle a, jedoch an den Zeilen-Anfang
``     springt stets zum letzten Aufenthaltsort
''     springt stets zum letzten Aufenthaltsort, jedoch an den ZA
········································································
z.     Stellt Cursor-Position auf Bildschirm-Mitte und zieht Text mit.
z8.    Reduziert Fenster auf 8 Zeilen und stellt Cursor auf Bildmitte.
········································································
<Pfeil>       Vier Pfeiltasten zur Bewegung, AUCH im Schreib-Modus.
4<Pfeil>      Bewegung um 4 Zeichen/Zeilen.
<BackSp> o. h Bewegt nach links
<Space>  o. l Bewegt nach rechts
<Enter>  o. + Bewegt nach unten, aber Cursor immer am ersten Zeichen
j             Bewegt nach unten
k             Bewegt nach oben
-             Bewegt nach oben, aber Cursor immer am ersten Zeichen
6-            Bewegt 6 Zeilen aufwärts
<Page Up>     Eine  Seite hoch
<Page Down>   Eine  Seite runter
<Ctrl><b>     Eine  Seite hoch
3<Ctrl><f>    Drei  Seiten runter
4<Ctrl><u>    (Halbe) Seite hoch     (Zahl davor bleibt in Erinnerung!)
8<Ctrl><d>    (Halbe) Seite runter   (                "               )
<Home>        Cursor nach links oben in die Ecke  (<H> = dito)
4H            Wie Home, jedoch in die vierte Bildzeile von oben
7L            Wie H, jedoch in die siebte Bildzeile von unten
M             Cursor auf mittlere Bildzeile
········································································
n                    Geht zum nächsten Suchmuster
N                    Geht zum nächsten Suchmuster, rückwärts
/suchmuster          Geht zum 'suchmuster'
:/suchmuster         Geht zum 'suchmuster'
:/such muster        Geht zum 'such muster'
:/such muster/       Geht zum 'such muster'
/such muster/2+3     Geht zum 2. Vorkommen und dann 3 Zeilen tiefer
?such muster?        Geht zum 'such muster', aber sucht rückwärts
:?such muster?       Geht zum 'such muster', aber sucht rückwärts
:g/suchmuster/p      Druckt alle Zeilen mit 'suchmuster'
:23,44g/suchmuster/p dito, aus Zeilen 23-44
:g!/suchmuster/p     Druckt alle Zeilen, mit NICHT 'suchmuster'
:v/suchmuster/p      dito
Bei /... und ?... ist ':'(ex-Editor) nicht nötig!
········································································
Suchmuster bleibt während vi-Sitzung erhalten. (n N :n)
------------------------------------------------------------------------

------------------------------------------------------------------------
yy     Kopiert aktuelle Zeile in unbenamten Speicher 0  (yy == 1yy)
12yy   Kopiert 12 Zeilen ab und einschl. akt. in unbenamten Speicher 0
y3j    Kopiert akt. Zeile und 3 darunter in unbenamten Speicher 0
y3+    dito
y4k    Kopiert akt. Zeile und 4 darüber  in unbenamten Speicher 0
y4-    dito
3yw    Kopiert 3 Worte in Speicher 0
y3w    Kopiert 3 Worte in Speicher 0
yL     Kopiert akt. Zeile und alle bis Bildende in unbenamten Speicher 0
y'o    Kopiert Zeile mit Marke  o  bis akt. Zeile  bzw.  umgekehrt
y`o    Kopiert Zeichen von Marke  o  bis akt. Zeichen  bzw.  umgekehrt
"byH   Kopiert akt. Zeile und alle bis Bildanfang in den Speicher b
"by'o  Kopiert in den Speicher b   (siehe y`o und ma)
"ay3+  Kopiert 4 Zeilen in mit a benamten Speicher
"a4yy  Kopiert 4 Zeilen in mit a benamten Speicher
"A2yy  Kopiert 2 Zeilen in a.  Hängt hinten an !!    (a-z)  >>(A-Z)
········································································
p      Kopiert yy-Zeile(n) hinter aktuelle Zeile, aus dem Speicher 0
P      Kopiert yy-Zeile(n) vor    aktuelle Zeile, aus dem Speicher 0
"ap    Kopiert yy-Zeile(n) hinter aktuelle Zeile, aus dem Speicher a
"aP    Kopiert yy-Zeile(n) vor    aktuelle Zeile, aus dem Speicher a
"4p    Kopiert yy-Zeile(n) hin. aktuelle Zeile, aus dem Speicher 4 (1-9)
"6P    Kopiert yy-Zeile(n) vor  aktuelle Zeile, aus dem Speicher 6 (1-9)
········································································
Nur die Inhalte von a-z bleiben erhalten, solange man im vi ist!
Löschspeicher 0 und 1-9 sind permanent vorhanden, aber man sollte
nicht in sie schreiben, weil es ein Stack ist, der sich laufend
verändert.
Aber man kann vor einigen Aktionen Gelöschtes wieder auffinden.
········································································
@a     Meldet, falls Speicher a leer ist, sonst undefiniertes Verhalten.
       (a-zA-Z). Undokumentiert! Sollte nicht benutzt werden!
------------------------------------------------------------------------
:m16             Bewegt aktuelle Zeile hinter Zeile 16.
:19m16           Bewegt Zeile 19 hinter Zeile 16.
:12,14m17        Bewegt  Zeilen 12 bis 14 hinter Zeile 17
:m+              Vertauscht aktuelle Zeile mit der darunter.
:m-2             Vertauscht aktuelle Zeile mit der darüber.
:m3+2            Bewegt aktuelle Zeile hinter Zeile 5.
:g/^X.*D.*[0-9]/m0
                 Die Zeilen, die mit X beginnen, dann nach beliebigen
                 Zeichen D und dann nach beliebigen Zeichen eine Zahl
                 0 bis 9 enthalten, werden nach Zeile 0 bewegt.
:'a,'bm.         Zeilen von a- bis b-Marke (<m><a> <m><b>) werden
                 hinter die aktuelle Zeile bewegt.
:12,14co0        Kopiert Zeilen 12 bis 14 hinter Zeile 0, also vor 1.
:g/xABCy/co28    Alle Zeilen, die xABCy enthalten, werden hinter 
                 Zeile 28 kopiert.
:3,72g/xABCy/co$ dito, beschränkt auf Zeilen 3-72, co>>Dateiende
:12p             Zeigt Zeile 12
:12,23p          Zeigt Zeilen 12 bis 23
········································································
Unterschied zwischen Vorwärts- und Rückwärts-Kopieren (co0, co$):
nämlich die dann vorliegende Reihenfolge der Zeilen!  (co$ behält bei)
ES GIBT DIE ZEILE  0  = Puffer-Anfang!
EIN PUNKT '.' (:.) adressiert stets die aktuelle Zeile!
········································································
:>               Schiebt aktuelle Zeile um 'shiftwidth' nach rechts
:>>>>            Um 4mal 'shiftwidth'  (i.d.R. = 8; siehe ':set all')
:<<<<            dito, nach links
:108>            Zeile 108 nach rechts
:44,69>          Zeilen 44 bis 69 nach rechts
>4j              Aktuelle und 4 weitere Zeilen darunter nach rechts
4>j              dito              (siehe Kommandos:  c, y, j, k, etc.)
4>+              dito              (siehe Kommandos:  c, y, j, k, etc.)
4>>              Vier Zeilen nach rechts, ab aktueller
4<<              dito, nach links
------------------------------------------------------------------------

------------------------------------------------------------------------
:12,17s/ABC/CBA/     Ersetzt in Zeilen 12 bis 17 'ABC' durch 'CBA'
                     (nur jeweils erstes Vorkommen in den Zeilen)
:12,17s/ABC/CBA/g    Ersetzt in Zeilen 12 bis 17 'ABC' durch 'CBA'
                     (g = jeweils jedes Vorkommen in den Zeilen)
:2,333s/^/** /       Fügt an den Zeilenanfängen 2 bis 333 '** ' ein.
:g/^/s// w /         Fügt an allen Zeilenanfängen ' w ' ein.
:g/$/s// w /         Hängt an alle Zeilenenden ' w ' an.
:g/xyz$/s//XYZ/      Ersetzt alle 'xyz' durch 'XYZ', aber nur die
                     'xyz' direkt an Zeilenenden.
                     (Spezielle Bedeutung von '^' und '$' !)
:g/ABC/s//CBA/g      Ersetzt in der ganzen Datei 'ABC' durch 'CBA'
:45,$g/ABC/s//CBA/g  Wie zuvor, jedoch erst ab Zeile 45.
:g/ABC/s//CBA/gp     Ersetzt in der ganzen Datei 'ABC' durch 'CBA'
                     (p = Zeilen dabei herzeigen)
                     (jeweils jedes Vorkommen in den Zeilen)
:g/ABC/s//CBA/gc     Ersetzt in der ganzen Datei 'ABC' durch 'CBA'
                     (jeweils jedes Vorkommen in den Zeilen)
                     (und mit Erlaubniseinholung jeweils)
                     (<Delete> bricht ab)
:g/QQQ/s/CBA/WWW/g   In allen Zeilen, in denen QQQ vorkommt, wird
                     jedes CBA durch WWW ersetzt.
:4,79g/QQ/s/CB/WW/c  dito, beschränkt auf Zeilen 4-79
:g/ABC/s//xx&&&yy/g  Macht überall aus 'ABC'  'xxABCABCABCyy',
                     '&' steht (rechts) für das, was links resultiert.
                     ABC (links) könnte auch /  *[^s]printf/ sein!
:g//s//~/gc          '~' wirkt wie '&', erinnert sich jedoch an den
                     Ersatztext (rechts), der zuvor eingesetzt wurde.
                     g//  setzt vorhergehendes Suchmuster ein.
:g/[^S]TUV/p         Alle Zeilen mit TUV aber nicht S davor werden
                     angezeigt.
:g/\<TUV/p           Alle Zeilen mit TUV, aber nur, wo TUV der Anfang
                     eines Wortes oder Zeilenanfang ist.
:g/TUV\>/p           Alle Zeilen mit TUV, aber nur, wo TUV das Ende
                     eines Wortes oder Zeilenende ist.
:/[abcf]xyz          Sucht xyz mit einem der Zeichen a,b,c oder f davor.
:/[a-h]xyz           Hier mit einem der Zeichen a bis h.
:/a[^bcd]z           Hier alle 'a·z', aber nicht abz, acz und adz.
:/[^A-Z]             Hier alle Zeichen, aber keine Großbuchstaben.
:/[h-k]*swq/         Hier kann das, was [] beschreibt, beliebig oft
                     vorkommen, also auch nullmal.
:/[h-k][h-k]*swq/    Hier kann das, was [] beschreibt, >=1mal vorkommen.
:/qas...sdd          Hier stehen die Punkte für drei beliebige Zeichen.
:g/[0-9][0-9].*XYZ/s//   XYZ/
                     Überall, wo zwei Zeichen '0-9''0-9' und danach
                     beliebige Zeichen (.) in beliebiger Menge (*)
                     stehen, gefolgt von 'XYZ',
                     kommt hin: '   XYZ'.
:g/^$/s/^M^M/        Wo vorher 1 Leerzeile war sind jetzt 3.   ('^M'!)
········································································
Spezial-Operatoren:   \(   \)   \1   \2  ...  \9
abcdefghijklm                                     steht in Zeile 178.
:178s/a\(bcd\(ef\)gh\)i/A\1B\1C\2\2\2\2D/         Dieses Kommando
AbcdefghBbcdefghCefefefefDjklm                    macht <-- daraus !
A  bcd  ef  gh  B bcd ef gh C ef ef ef ef D jklm
Das hat was mit 1. und 2. Klammerebene zu tun.        (bis 9 Ebenen)
Die Klammer-Paare müssen nicht verschachtelt sein.
Auch bei nebeneinander stehenden zählt die öffnende Klammer \(
jeweils um eins weiter:
FTp[ix++][2]; FTp[NFND][0]; FTp[ifno][1]; 
:g/FTp\[\(....\)\]\[\([012]\)\]/s//FTp[\2][\1]/g
FTp[2][ix++]; FTp[0][NFND]; FTp[1][ifno];   ist das Ergebnis.
········································································
ed und sed können auch:  s/\([^ ]\)\1\1\1/\1/g       (\1 linksstehend!)
Alle Zeichen !=' ' 4-fach-gleich z.B. 'AAAA' werden vereinzelt:==> 'A'.
Weiterhin:  \{n\}   \{n,\}   \{n,m\}   (?-mal 1-char-expr.)
········································································
:g/Hier/s//\UHier/   Macht aus Hier HIER. '\U' schaltet auf Uppercase.
:g/Hier/s//\U&/      dito !
:g/HIER/s//\Uh\LIER/ Macht aus HIER Hier. '\L' schaltet auf Lowercase.
                     '\u' und '\l' müssen von einem Buchstaben direkt
                     gefolgt werden, für den das dann gelten soll.
                     '\E' oder '\e' schaltet '\U' und '\L' ab.
········································································
Steuerzeichen:  ^, $, /, &, [, ], \, ., *, ~, ? 
Diese müssen -links stehend- mit \ maskiert werden. Das heißt, wenn
sie als normale Zeichen aufgefaßt werden sollen.  (also: '\$'='$', usw.)
(zwar nicht alle - aber sicher ist sicher!)
Für \, &, ~ und / gilt das auch rechts.
········································································
Mit  //  und  ??  kann man sich auf ein vorangegangenes Muster
beziehen.  Dabei ist das einzige oder aber das linke Muster gemeint.
Also  g//p  wiederholt g/abc/p oder auch andere Sequenzen mit /abc/.
------------------------------------------------------------------------
Bei Eingabefehlern (:asbw76@4#,) :  <Delete> oder mit <BackSp>
                                     zurück bis über ':' hinweg.
Bei dd z.B. kann man das erste d noch mit <Esc> löschen, wenn man
es sich anders überlegt hat.
------------------------------------------------------------------------

------------------------------------------------------------------------
:w     Bisherigen Zustand zur Festplatte schreiben.
       Die wirkliche aktuelle Datei wird (zwischendurch) aktualisiert.
       Quasi wie :x - jedoch ohne vi zu verlassen.
:w!    Bisherigen Zustand zur Festplatte schreiben.
       Überwindet Schreibschutz (Read only)!
:w b   Wenn Editor mit 'vi a' gestartet wurde, wird der Inhalt des
       vi-Puffers in b geschrieben, wobei b dazu erzeugt wird.
       Wenn nur mit 'vi' begonnen wurde, wird b erzeugt.
       Wenn b bereits existiert, gibt's eine Warnung!
:w! b  Wenn b bereits existiert, wird b überschrieben!
       Überwindet also Warnungen!
:w>>b  Hängt vi-Puffer-Inhalt an existierenden Datei-Inhalt von b an.
       (es darf auch ein Leerzeichen (Space) vor b stehen.)
:w !cmd         Schreibt Puffer-Inhalt zu einem UNIX-Kommando.
:160,175w b     Schreibt Puffer-Zeilen 160 bis 175 in b. (siehe ':w b')
:160,175w>>b    Schreibt Puffer-Zeilen 160 bis 175 ans Ende von b.
:160,175w !cmd  Schreibt Puffer-Zeilen 160 bis 175
                zu einem UNIX-Kommando.
:1,15w !more    BEISPIEL:  übergibt Zeilen 1 bis 15 an 'more'.
:160,185 !cmd   Übergibt die Zeilen an 'cmd', löscht diese Zeilen (!),
                und fügt die Ausgabe von 'cmd' dort ein.
                :50,70 !sort   sortiert die Zeilen 50 bis 70 !
                (Argumente und shell-metachars sind erlaubt)
:%!sort         Sortiert gesamten Pufferinhalt. (% = 1,$)
                Nach % kein Leerzeichen!
:160,185 !tr "m" "\234"               (PC8-Zeichensatz)
                Ersetzt von 160-185  'm' durch '£'   (siehe 'man tr')
········································································
:n     Zur nächsten Datei gehen   (bei mehreren gleichzeitig)
       (Gegenwärtige Einstellung macht vorher automatisch :w !)
:n!    Überwindet Warnungen, daß :w nicht benutzt wurde.
:n e f Bearbeitet eine neue Datei-Liste, bestehend aus den Dateien
       e und f.  Die alte Liste wird verlassen.
:args  Zeigt aktuelle Datei-Liste an, mit Markierung der gerade in
       Arbeit befindlichen.
       :n und :args haben zueinander Bezug, nicht jedoch mit :f (s.u.).
:rew   Geht zur ersten Datei in der args-Liste.
:rew!  Überwindet Warnungen, daß :w nicht benutzt wurde.
········································································
:e g   Eine andere Datei g wird editiert, ggf. zuvor erzeugt.
       Man kann zwar so zu beliebig vielen Dateien springen, aber
       der vi behält nur zwei gleichzeitig 'in sich'.
:e#    Springt zur vorherigen zurück, und wieder zurück, usw.
:e%    Bezieht sich auf die gegenwärtige (:f), löscht den ':e#'-Bezug,
       und liest die aktuelle Datei (:f) (neu) in den Puffer ein.
       Hat generell keinen Bezug zur :args-Liste mit 'a [b] c d ...'.
:e! g  Überwindet Warnungen, daß :w nicht benutzt wurde. (siehe :e g)
:f     Gibt Informationen über Datei
:f nn  Gibt aktuellem Pufferinhalt neuen Namen (nn), also einen anderen
       als den, mit dem man vi aufrief:  vi aaa ; jetzt: aaa --> nn
       Datei aaa existiert aber weiter, jedoch was ihren Inhalt
       angeht, bleibt dieser uneditiert, wenn nicht :w gemacht wurde,
       bevor :f nn  gegeben wurde  !
       Es ist also eine Übernahme des Inhalts von aaa in eine neue
       Datei nn hinein, um in dieser neuen weiterzueditieren.
       Und man muß den Puffer ausschreiben, damit nn auch existiert.
       Es sei denn, nn war vorher schon existent.
········································································
:r d   Holt angegebene Datei 'd' hinter aktuelle Zeile herein
:12r d Holt angegebene Datei 'd' hinter Zeile 12 herein
:0r d  Holt angegebene Datei 'd' an den Puffer-Anfang herein
:$r d  Holt angegebene Datei 'd' an das Puffer-Ende herein
       (Bei Start mit 'vi' und leerem Puffer editiert man dann quasi d.)
:r !cmd  Holt die Ausgabe eines UNIX-Kommandos hinter aktuelle Zeile.
BEISPIEL:  :$r !find . -print
           schreibt die von 'find' gefundenen Dateinamen im aktuellen
           Directory (.) an's Puffer-Ende.
!!cmd    Die Ausgabe eines UNIX-Kommandos ERSETZT die aktuelle Zeile.
3!!cmd   Die Ausgabe eines UNIX-Kommandos ERSETZT aktuelle +2 Zeilen.
!!cc -Zs %     Für % wird der aktuelle Dateiname eingesetzt.
------------------------------------------------------------------------

------------------------------------------------------------------------
vi         Startet vi-Editor nur im 'unsichtbaren' Puffer
vi d       Startet vi-Editor mit Datei d
vi a b c   Startet vi-Editor mit Dateien a, b und c  (siehe :n)
vi *.c     Startet vi-Editor mit allen c-Dateien im Directory
vi -R d    Startet vi-Editor mit Datei d und nur Lesen ist erlaubt
vi -L      Listet alle nach einem Crash gesicherten Dateien
vi -r f    Nach einem Crash kann man hiermit Datei f herholen.
           (siehe auch  :preserve  und  :recover)
vi -w10 f  Macht Fenster nur 10 Zeilen groß.
:!vi s     Startet vi nochmal aus vi heraus - als weiteren Prozeß !
:!cmd      Führt UNIX-Kommando 'cmd' aus   (z.B.:  :!cp engl.c /u/gabi)
           (Gegenwärtige Einstellung macht vorher automatisch :w !)
:!csh      Startet eine neue C-Shell.  Ende durch <Ctrl><d> oder 'exit'.
:!sh       Startet eine neue Bourne-Shell.  Ende wie oben.
:sh        Startet eine neue Shell.  (sh/csh/ksh gemäß :setall-shell)
:cd d      Wechselt das Directory nach d. (And. Wrkg. als bei ':!cd d')
········································································
:x     Editor beenden, mit Aktualisierung der 'echten' Datei.
ZZ     dito
:x a   Editor beenden, mit Puffer-Schreiben zur Datei a.
       (vi-Warnung, falls a existiert.)
:q     Editor beenden, ohne Änderungen zu berücksichtigen (vi-Warnung)
:q!    Editor beenden, ohne Änderungen zu berücksichtigen
       Überwindet Warnungen!
:wq    Wie :w  und dann :q  oder auch wie :x
:wq!   Wie :w! und dann :q. Überwindet auch 'Read only' (Nur lesen) !
:wq b  Wie ':w b'  und dann :q.                           (vi-Warnung)
:wq! b Wie ':w! b' und dann :q.                           (vi-Warnung)
Q      Geht in den ex-Editor bzw. zeilen-orientierten Modus;
:vi    geht wieder zum bildschirm-orientierten Modus zurück.
------------------------------------------------------------------------
:=          Zeigt aktuelle Anzahl Zeilen im Puffer an.
:nu         Zeigt aktuelle Zeile mit deren Nummer
:1,10nu     Zeigt Zeilen 1-10 mit deren Nummern
:preserve   Sichert Puffer in schlimmen Situationen
            (mail-Paket muß installiert sein!)
:recover d  Holt Datei d von dem Absicherungsbereich
········································································
:set all     Zeigt alle Einstell-Optionen, jedoch nicht die Abkürzungen
:set         Zeigt alle, die von der Standardeinstellung abweichen
:set ai?     Zeigt den Zustand von ai an
:set nonu    Schaltet Zeilen-Numerierung ab             (nonumber)
:set nu      Schaltet Zeilen-Numerierung ein              (number)
:set ai      Erzeugt automatische Absatz-Einfügung    (autoindent)
             Es werden Leerzeichen und Tabs eingefügt.
:set noai    Stellt wieder Normal ein               (noautoindent)
:set list    Macht Tabs und Zeilenenden sichtbar
:set nolist  ...
Siehe Datei /u/sc/.exrc (vi-Konfigurations-Datei): set, map, map!, abbr
:map @ A;^[
:map! oe ö   Schreibmodus-map!  Bei 2 Zeichen diese schnell drücken!
:unmap  ^T
:unmap! oe¦ö
:unabbr vvv  Machen rückgängig.
Folgende Zeichen sind im Kommandomodus nicht belegt:
g q v K V ^A ^C ^K ^O ^Q ^T ^V ^W ^X ^Z (^=<Ctrl>)
- können also gemapt werden!
------------------------------------------------------------------------

^

Zur Hauptseite