|
||
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 Portal-Datei |
Installation |
Lieferumfang: 4 Handbücher/Prospekt, CD, Boot-Diskette. Inklusive 5 CDs, darunter Skunkware98, etwa 4cm dickem deutschen Handbuch und Boot-Diskette. Wichtige Hinweise (Die ältere Version 5.0.2 gab es von Firma PEM, mit Lizenz, jedoch für 69DM) darin, dazu die notwendigen Informationen dem ganzen Text dieser Beschreibung entnehmen. 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. 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) zumindest hinsichtlich der Internationalisierung zu wählen, jedenfalls für noch unerfahrene Anwender. falls man nicht während der Installation auch dies festlegen will. Der Unix-Kernel wird entpackt, gestartet und erzeugt eine RAM-Disk. Dann erneut <Enter>. Dabei den Anweisungen folgen und stets (unten) lesen, welche Tasten welche Bedeutung haben. Leerzeichen, Enter, Tab und die Pfeiltasten werden zur Steuerung gebraucht. In der Regel ist dies IDE CDROM - primary - slave. (Mitteleurop. Zeit, Sommerzeit, -1 Std. von GMT-Zeit) Ich empfehle den Standard, u.a. weil ggf. nur die hierarchieobersten Dokumente deutsch sind. oder Ohne Grafik(no) plus Large Database(no). (voll konfigurierbar: dparam,fdisk,badtrk,divvy siehe unten) Ich würde Doctor Lite (und ggf. German Supplement) zusätzlich wählen. Im Zweifelsfall IBM VGA / VGA 60Hz wählen! Und scologin=off ! Nach der Installation kann man diese Einstellungen ändern. 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) Ab hier läuft die Installation allein. Etwa 1 bis 2 Stunden: 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-PartitionEs 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
Man sollte nicht voreilig oder irrtümlich 'q' für das Verlassen
eines dieser Kommandos eingeben!
Das erste dieser Kommandos ist 'dparam', welches Festplatten-Parameter
# 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.
Wenn man schließlich mit 'q' beendet, kommt eine weitere Auswahl,
# 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 systemHier 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 systemDas 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
|
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. Verwenden Sie stattdessen z.B. CD_PATH und setzen damit CDPATH bzw. cdpath (csh) shell-intern. Andernfalls bleibt X-Windows hängen! 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 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. 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 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! 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! Hier müssen wieder Lizenz-Daten eingetippt werden. Die Kommandos cc, CC und cscope sind die wichtigsten. IBM COM2 2f8 3 hinzufügen. (/dev/tty2a, 2A) Kernel-Link = no. 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! Kein Kernel-Link. 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). 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 /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ß. 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.) werden. Schließlich ist Unix ein MultiUser-System! 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
|
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:
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.
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.0000999999999 = 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,
Nach der Konfiguration mit dem Internet-Manager müssen die Inhalte
der
/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 0191011Ich 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
Schreiben Sie über die erste Syntax-Zeile in /etc/rc2.d/S89mstppp
/etc/resolv.conf:
nameserver 194.25.2.129 nameserver 0.0.0.0 hostresorder local bindZum Online-Betrieb in den MultiUser-Modus gehen! Erwähnenswert ist, daß PPP-MorningStar ein zweites
PPP-System
Netscape NavigatorDer 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
Der Startseiteneintrag www.sco.COM muß entfernt werden.
Editor 3.0x hat eine seltsame Fehlererscheinung bei kleineren
Dateien:
Bei Offline-Öffnung einer .html, die Online-URLs zu Grafik-Dateien
enthält
Bei den MIME-Typen sollte man text/plain(.txt) auf 'Navigator'
ändern.
Die Tasten <Alt>+<Tab> und <Alt>+<Pfeile> sind wichtig für
das
Die Eingabe von Sonderzeichen gestaltet sich anders und besser als unter
DOS.
Ein Umbenennen der Dateien /usr/lib/X11/app-defaults/Netscape
Installiert ist Navigator3.01gold,
Der Communicator ist besser ausgestattet als Nav3.0x,
Nach weiterer Beschäftigung mit dem Comm4.5 habe ich dazu Lösungen
gefunden,
Jedenfalls ist der Comm4.5 besser als der 4.05, weil (wieder) übersichtlicher
organisiert,
Die oben genannten störenden Details sollen aber nicht den Eindruck
erwecken,
Zum Thema 'ftp-Programm' siehe unten ('Hinweise').
Anwahl-/Abwahl-Icon erzeugenMit 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
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.5Eine 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...)
Es gibt ein BTLD-Disketten-Image mit verbesserten Treibern.
Ganz entscheidend sind Syntax-Fehler in der Script-Datei
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
Mittlerweile gibt es ein neues PreRelease des MST_PPP ...
Hardware-VoraussetzungenErkannt 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.
Es werden viele Dateisystem-Typen unterstützt, auch DOS-FAT.
|
Tricks |
Hinweise für FortgeschritteneAnzahl der Inodes in FilesystemenWenn mit divvy ein Filesystem anlegt wird, erfolgt eine Festlegung der maximalen Dateianzahlim 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!
mkfs -y -f HTFS /dev/rscratch 4000000:100000Gehen 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 sfmtModerne 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 passwdSo habe ich neulich einen Verwandten gerettet, mit Boot-Diskette von OpenServer 5.0.4 . -- |
Binärer
|
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
Schreiben Sie ans Ende der nachfolgend genannten Datei
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! ------------------------------------------------------------------------ |