Die sogenannte Telnet Shell ist unter UNIX auch heute noch das Standardwerkzeug, mit dem man Programme und Dämonen starten und stoppen, Konfigurationen verändern, den Systemstatus eines Prozesses ermitteln, die Priorität eines Prozesses ändern, Systeme verbinden und Handbücher lesen kann.
Natürlich geht die Tendenz in zwischen stark zu einer grafischen Benutzeroberfläche und zur Administration über KDE, LINUXCONF, WEBMIN oder WUI.
L eider lassen sich noch nicht alle Programme und Dämonen über eine grafische Benutzeroberfläche vollständig administrieren. Insbesondere bei der Installation von Softwarepaketen kann es dazu kommen, daß man Nachkonfigurieren muß. Das Paketformat RPM erspart dem Systemadministrator viel Arbeit, sodaß Programme meist schon direkt nach deren Installation lauffähig sind. Es gibt aber noch eine Reihe von guten Paketen, die nicht als RPM vorliegen, sondern noch in dem alten UNIX Archiv-Format .tar.gz, tar.Z, .... Hier muß man leider oft sogar noch selber kompilieren. In diesem Handbuch ist aber in diesen Fällen genau beschrieben, was dann zu tun ist.
Die wichtigsten, alltäglichen Dinge sind jedoch alle inzwischen mit einer grafischen Benutzeroberfläche administrierbar. Es gibt unter UNIX Kommando's, die es unter keinem anderen Betriebssystem gibt. Da ist z.B. die Analyse riesiger Dateien mit awk oder sed bzw. deren Nachfolger PERL zu nennen. Unter Microsoft Windows NT muß man vor diesen großen Dateien kapitulieren, da allein das Laden in Winword schon Tage dauern kann, warum auch immer. AWK kann z.B. Spaten addieren und Summen erstellen, ganz wie in EXEL, allerdings ist auch bei Millionen Zeilen noch nicht Ende, während bei Excel schon bei 65535 Zeilen Schluß ist. SED ist ein Stream-Editor, der sehr komplexe Such-und Ersetzungsarbeiten durchführen kann. Die Verarbeitungsgeschwindigkeit ist dabei so hoch, daß man in einer Datei der Größe von 10 MByte Größe in 2 Sekunden einen String durch einen anderen ersetzt hat.
Es lohnt sich nicht, sich mit jedem UNIX Kommando auseinanderzusetzten. Das wichtigste ist jedoch, zu wissen, wie man an Informationen kommt. LINUX hat im Prinzip alle Handbücher schon eingebaut, und in einer Datenbank indiziert, die Frage ist oft nur: Wie komme ich an die benötigten Informationen ?
Im nun folgenden Kapitel werden wir eine Art Streifzug durch die BASH und einige wichtige Kommando's machen. Gedacht ist dieses Kapitel für Einsteiger, aber auch Fortgeschrittene werden einige neue Dinge lernen können...
Systemadministration unter UNIX ist für Einsteiger oft ein Buch mit sieben Siegeln. Während andere Betriebssysteme mit einer grafischen Benutzeroberfläche dem Administrator schon Hinweise darauf geben, was die Software alles an Eigenschaften beherrscht, so hat der Einsteiger unter UNIX oft keinerlei Möglichkeit, tiefer das System und seine unglaubliche Mächtigkeit der Kommando's zu blicken.
Mit LINUX als UNIX Clone ist nun UNIX in der Verbreitung so rasant gewachsen, daß dieses Betriebssystem alle anderen UNIXe und sogar Windows NT als Serversystem überflügelt hat, zumindest in dem mission critical Bereich Internet-Server, wo die Systeme Tag und Nacht zuverlässig laufen müssen. Mit LINUX kann man jedoch hervorragend für andere UNIXe trainieren, da es unglaublich viele Ähnlichkeiten zu anderen UNIXen oder UNIX Derivaten besitzt, allen voran SUN Solaris.
Wir werden nun LINUX mit allen seinen Eigenschaften einmal genau unter die Lupe nehmen, d.h. angefangen von der Startprozedur über die Startup-Dateien bis hin zu Backups alle Möglichkeiten genau studieren.
Wir beschränken uns hierbei auf alle Dateien, die LINUX mit anderen UNIXen gemeinsam hat. Wer also sich in andere UNIXe einarbeiten muß, der kann im Prinzip dieses UNIX genauso, wie hier vorgestellt, untersuchen.
Wir gehen im Folgenden nun davon aus, daß bereits LINUX installiert wurde, und sich Ihnen an der Konsole ein Login: Prompt zeigt. Die Installationsprozeduren sind leider von Anbieter zu Anbieter verschieden, jedoch ist es bisher vielen Einsteigern gelungen, LINUX zu installieren, wenn auch oft ohne grafische Benutzeroberfläche. Inzwischen sind unter LINUX die Installationsprozeduren so ausgereift, daß sogar oft schon X-Windows automatisch korrekt installiert ist.
Also keine Angst vor UNIX, es ist einfacher, als man denkt. Dieses Tutorial ist nicht in einzelne Kapitel gegliedert, ähnlich einem Nachschlagewerk, sondern man muß es von Anfang an bis zum Ende durcharbeiten. Danach erst werden (hoffentlich) die Zusammenhänge in UNIX viel klarer.
Sie haben bei der Installation einen Beispielbenutzer anlegen müssen. Loggen Sie sich nach dem Booten als Beispielbenutzer ein, da ansonsten die Gefahr besteht, daß Sie durch einen Tippfehler das System zerstören. Diese Regel gilt, nebenher gesagt, generell auch für Systemadministratoren. Jeder Systemadministrator solle alle Arbeiten stets mit den minimal notwendigen Rechten durchführen. Ein angelegter Beispielnutzer kann am System oder der Konfiguration nichts verändern, das System jedoch (fast) ungehindert untersuchen, was wir im Folgenden auch nun tun.
Wir werden nun einmal die Benutzershell von UNIX direkt nach dem Einloggen als User genau untersuchen und vorstellen. Wir haben einen User gast angelegt, mit dem Paßwort gast und Loggen uns nun ein:
Willkommen auf RedHat Linux V7 (ARM) Kernel 2.2.14 (tty1)
tunix login:gast
Password:
Have a lot of Fun !
gast@tunix:~ > _
Die ersten Informationen, die wir über das System erfahren, ist daß es eine RedHat LINUX Distribution auf einem ARM Prozessor ist, und der Kernel 2.2.14 verwendet wird. RedHat ist eine Distribution, die sich dadurch auszeichnet, daß Sie recht einfach zu installieren ist. Der ARM Prozessor ist ein recht wenig verbreiteter, jedoch äußerst schneller und stromsparender Prozessor, im Vergleich zu INTEL Prozessoren. LINUX ist auf viele Prozessoren und Hardware portiert worden und wird für diese auch weiter gepflegt und supportet. Einen Reinfall, wie mit Windows NT 4.0, dessen Entwicklung für MIPS und ALPHA sowie PPC Prozessoren einfach stillschweigend eingestellt wurde, werden Sie mit LINUX nicht erfahren. LINUX wird immer so entwickelt werden, daß auch ältere Hardware immer noch eingesetzt werden kann. Sie werden also niemals vor dem Problem stehen, daß nach einem System-Update Sie plötzlich Teile der Hardware austauschen müssen, oder sogar ein ganzes System verschrotten müssen, weil es keine Treiber mehr gibt, Wie gerade im Falle von Windows NT 4.0 SP5 auf DEC Alpha, oder anderen UNIX Derivaten.
Die Versionsnummer des Kernels 2.2.14 sagt uns, daß wird es mit der zweiten Generation von LINUX zu tun haben. Die zweite 2 besagt, daß es eine erwiesenermaßen stabile Version ist. Unter LINUX werden alle Entwicklerversionen mit ungeraden Zahlen, alle stabilen Versionen mit geraden Zahlen bezeichnet. Die 14 am Ende sagt nur aus, daß der Kernel seine 14. Erweiterung ider Veränderung erfahren hat. Erweiterungen können z.B. neue Treiber beinhalten, oder auch kleinere Fehlerkorrekturen, ähnlich den Service Packs von Windows, allerdings nur auf den Kernel bezogen. Das bedeutet nicht, daß LINUX Probleme hätte, oder instabil wird, wenn man die Patches nicht aufspielt. Wie wenigsten Patches sind Fehlerkorrekturen.
Die Angabe von tty1 sagt uns, daß wir lokal an der Konsole eingeloggt sind, also direkt neben dem Server sitzen. Wäre wir über das Netzwerk eingeloggt, so würde man ttyp1 z.B. sehen.
Wir befinden uns nun auf dem Rechner tunix. Der Name wurde bei der Installation frei vergeben, und ist auch nachträglich veränderbar, wie übrigends alles an LINUX bzw. UNIX.
Wir befinden uns in der SHELL von UNIX. Diese entspricht funktionell dem COMMAND.COM unter MSDOS. Allerdings hat die SHELL unter LINUX gigantische Fähigkeiten, die SHELLS von anderen UNIXen weit in den Schatten stellen. Diese Fähigkeiten erst ermöglichen es einem Systemadministrator erst, schnell auf UNIX arbeiten zu können.
Diese SHELL nennt sich BASH und ist Teil der sogenannten GNU Toolkits für UNIX. Die GNU Toolkits wurden von einem Programmierer namens Richard Stallmann erfunden, der vor ca. 10 Jahren besessen davon war, UNIX einfach nachzuprogrammieren und der Allgemeinheit frei zur Verfügung zu stellen. Er programmierte daher zunächste viele UNIX Werkzeuge einfach nach und verbesserte deren Eigenschaften so, wie er sich diese Toolkits vorstellte.
Heraus kamen z.B. die BASH, der GCC, ein freier C-Kompiler, der frei portierbar auf alle Betriebssysteme war, der legendäre EMACS Editor, u.s.w.
Er gründete die sogenannte Free Software Foundation (FSF) zu dem Zweck, ausschließlich Software zu verteilen, die frei von Lizenzgebühren sein sollte. Er fand viele Anhänger und Mitprogrammierer, inzwischen viele 10.000, die alle mithalfen und die Programme stets verbesserten. Damit auch alle Verbesserungen stets auch der Allgemeinheit wieder zugänglich gemacht werden konnten, stellte der seine Programme einer besonderen Lizenz, die in Kurzform folgendes besagt:
Jedermann/frau kann die Software frei nutzen und Verteilen, das ursprüngliche Copyright darf nicht verändert werden. Wer etwas verändert, oder verbessert, muß die Änderungen an den ursprünglichen Entwickler bzw. Maintainer, also der Person, die das Softwarepakt betreut, wieder zurücksenden. Damit stellte er sicher, daß seine Pakete ständig verbessert und weiterentwickelt werden. Der Name GNU ist auf die Liebe von Richard Stallman zu der rekursiven Programmiersprache LISP zurückzuführen, die z.B. dem EMACS zurunde liegt. GNU heißt:GNU is Not Unix.
Das GNU als Tier schmückt heute viele Bücher zu LINUX. Das liegt einfach daran, daß LINUX nur aus GNU Toolkits besteht. Nur der Kernel ist LINUX.
Entwickler von anderen Programmpaketen unter GNU Lizenz sind diesem Beispiel gefolgt, und haben ebenfalls Bücher mit einem Tier auf der Frontseite geschmückt. Wenn Sie einmal in Buchhandlungen genau darauf achten, werden Sie feststellen, daß GNU Software einen riesigen Anteil ausmacht. Die Lizenz nennt sich inzwischen GNU Public License (GPL). Wenn also immer Ihnen dieser Ausdruck begegnet, dann steckt dahinter eine ausgereifte Software, hinter der viele freie Entwickler stehen, und die Sie persönlich frei verwenden dürfen, wozu auch immer, kommerziell oder privat.
Die GNU Tools gibt es inzwischen für alle anderen UNIX Betriebssysteme. Fragen Sie einfach Ihren UNIX Hersteller nach den GNU Toolkits. In vielen Fällen liegen diese jedoch schon Ihrem UNIX auf einer CDROM bei. Im Internet finden Sie diese auf der Website http://www.gnu.org. LINUX und viele BSD UNIXe bestehen fast gänzlich aus diesen GNU Programmen. Im Grunde besteht LINUX vollständig aus den GNU Toolkits. Hätte es diese Toolkits nicht gegeben, hätte Linus Torwalds nicht in so kurzer Zeit einen UNIX Clone programmieren können.
LINUX ist im Grunde also nur der Betriebssytem Kernel, alles andere sind GNU Toolkits oder Software von LINUX Distributoren (Verteilern).
Von diesen stammen dann die mehr oder weniger komfortablen Installationsprozeduren. Es gibt nur ein LINUX, jedoch unterschiedlich komfortable Installationssoftware.
Die RedHat Distribution ist neben der Debian Distribution die einzige, die die selbstentwickelten Installationsprozeduren unter die GNU Public License stellen. Diese Tatsache haben sich dann einige Firmen genutzt, um auf der Basis der RedHat Distribution eigene, zu RedHat kompatible Distributionen anzubieten, die dann Halloween, RedLinux, Caldera, oder auf der Basis von der Debian Distribution z.B. Corel Linux heißen. Während die Debian auf einem anderen Paketformat (.deb) basiert, lassen sich aber zwischen den zu RedHat kompatiblen Distributionen fast alle Softwarepakete beliebig austauschen.
Eine Ausnahme in vielerlei Hinsicht sind S.u.S.E. und E.I.T. mit Easy LINUX. Obwohl z.B. S.u.S.E. das RPM Format benutzt, ist die S.u.S.E. Distribution künstlich inkompatibel zu den RedHat Distributionen gemacht worden. Da, international gesehen, RedHat mit großen Abstand Marktführer ist und fast alle Software - und Kernel-Entwickler für RedHat arbeiten, werden Software-Updates und Patches immer zuerst für die RedHat Distributionen veröffentlicht. Bei S.u.S.E. müssen Sie eventuell einige Tage warten, bis ein Security Fix verfügbar ist. Falls Sie also Linux in mission critical Systemen einsetzen, sollten Sie stets auf RedHat basierende Distributionen verwenden. Außerdem unterliegt die RedHat GPL Distribution zusammen mit allen Installationsprozeduren der GPL, bei S.u.S.E. haben Sie, falls Sie die originale S.u.S.E. LINUX CDROM unerleubt kopieren, Kosten für Rechtsanwalt und eine Schadensersatzklage am Hals. Die Kosten hierfür liegen hierbei nicht unter ein paar tausend DM.
Kommen wir nun zurück zu der BASH - SHELL, die über sehr wichtige Funktionen verfügt:
Als absoluter Einsteiger in UNIX hat man noch keine Ahnung von dem, was man mit UNIX alles so anstellen kann, hier nun ein kurzer Überblick, was Sie alles entdecken können:
LINUX hat in der Grundinstallation rund 1700 Programme auf der Festplatte, die alle zum System gehören. Alle Programme sind vollständig dokumentiert und ebenfalls auf der Festplatte zu finden. Die Dokumentationen nennen sich MAN - Pages. Wer immer z.B. nach der Syntax eines Kommandos sucht, der kann in diesen MAN - Pages die Beschreibungen finden. Darüber hinaus finden Sie im Verzeichnis /usr/doc/ alle Dokumentationen von Softwarepaketen auch im HTML Format, welches Sie mit Netscape, dem KDE Viewer oder mit dem ASCII-Browser lynx lesen können
Für einen Einsteiger ist dies das Henne-Ei Problem. Ohne Kenntnis des Kommandos auch keine Dokumentation. Genau das hat Richard Stallman arg gestört, weil man oft nach der Funktionalität sucht, jedoch nicht weiß, welches Kommando dieses bewirken kann.
Er hat hierzu alle Manpages in einer Datenbank archiviert, und mit einer Suchfunktion ausgestattet. Diese Suchfunktion und Datenbank hat der direkt in die BASH SHELL einprogrammiert.
Tippen Sie einfach einmal "help" ein:
gast@tunix:~ > help
GNU bash, version 2.03.0(1)-release (arm-pc-linux-gnu)
These shell commands are defined internally. Type 'help' to see this list.
Type Help name' to find out more about the function 'name'.
Use 'info bash' to find out more about the shell in general.
A star (*) next to a name means that the command is disabled.
%[DIGITS | WORD] [&] . filename
: [ arg... ]
alias [-p] [name[=value] ... ] bg [job_spec]
bind [-lpvsPVS] [-m keymap] [-f fi break [n]
builtin [shell-builtin [arg ...]] case WORD in [PATTERN [| PATTERN].
cd [-PL] [dir] command [-pVv] command [arg ...]
continue [n] declare [-afFrxi] [-p] name[=value
dirs [-clpv] [+N] [-N] disown [-h] [-ar] [jobspec ...]
echo [-neE] [arg ...] enable [-pnds] [-a] [-f filename]
eval [arg ...] exec [-cl] [-a name] file [redirec
exit [n] export [-nf] [name ...] or export
false fc [-e ename] [-nlr] [first] [last
fg [job_spec] for NAME [in WORDS ... ;] do COMMA
function NAME { COMMANDS ; } or NA getopts optstring name [arg]
hash [-r] [-p pathname] [name ...] help [pattern ...]
history [-c] [n] or history -awrn if COMMANDS; then COMMANDS; [ elif
jobs [-lnprs] [jobspec ...] or job kill [-s sigspec | -n signum | -si
let arg [arg ...] local name[=value] ...
logout popd [+N | -N] [-n]
printf format [arguments] pushd [dir | +N | -N] [-n]
pwd [-PL] read [-r] [-p prompt] [-a array] [
readonly [-anf] [name ...] or read return [n]
select NAME [in WORDS ... ;] do CO set [--abefhkmnptuvxBCHP] [-o opti
shift [n] shopt [-pqsu] [-o long-option] opt
source filename suspend [-f]
test [expr] time [-p] PIPELINE
times trap [arg] [signal_spec ...] or tr
true type [-apt] name [name ...]
typeset [-afFrxi] [-p] name[=value ulimit [-SHacdflmnpstuv] [limit]
umask [-p] [-S] [mode] unalias [-a] [name ...]
unset [-f] [-v] [name ...] until COMMANDS; do COMMANDS; done
variables - Some variable names an wait [n]
while COMMANDS; do COMMANDS; done { COMMANDS ; }
gast@tunix:~ >
Wir sehen hier alle Kommando's , die die BASH beherrscht. Damit Sie auch die obenstehenden Kommandos lesen können, geben Sie folgendes ein:
gast@tunix:~ >help|more
Mit den Tasten "f" und "b" können Sie nun forwärts und rückwärts Blättern. Das Kommando "more" kennen Sie eventuell schon von MSDOS, unter UNIX ist es aber ungleich mächtiger.
more kann nicht nur blättern, sondern auch im Text suchen. Hierzu geben Sie SHIFT-7 ein, und Sie sehen unten am Bildschirm ein "/" An dieser Stelle werden Sie aufgefordert, ein Suchbegriff einzugeben. Mit ENTER können Sie im Text suchen. Vorab gesagt, auch in den Man-Pages können Sie diese Kommando's verwenden.
Sie sollten sich diese Kommando's merken, sie sind unentbehrlich für die weitere Arbeit.
Oben bei der HELP Funktion ist beschrieben, daß Sie auch "help name" verwenden können. Wir probieren einmal "help cd" aus:
gast@tunix:~ > help cd
cd: cd [-PL] [dir]
Change the current directory to DIR. The variable $HOME is the
default DIR. The variable CDPATH defines the search path for
the directory containing DIR. Alternative directory names in CDPATH
are separated by a colon (:). A null directory name is the same as
the current directory, i.e. '.'. If DIR begins with a slash (/),
then CDPATH is not used. If the directory is not found, and the
shell option 'readable_vars' is set, then try the word as a variable
name. If that variable has a value, then cd to the value of that
variable. The -P option says to use the physical directory structure
instead of following symbolic links; the -L option forces symbolic links
to be followed.
gast@tunix:~ >
Fein, wir sehen also, daß "help cd" uns eine Anleitung für den schon von MSDOS bekannten Befehl liefert.
Diese Befehle sind interne Befehle der SHELL. Die sind zwar nützlich für die Programmierung von Skripten, ähnlich den .bat Skripten unter MSDOS, jedoch besitzt UNIX genauso wie MSDOS auch externe Befehle, wie format u.s.w., die nicht mehr in die Shell passten, und daher als eingenständige Programm ausgelagert wurden.
Wie schon erwähnt, gibt es unter UNIX MAN-Pages, die man mit dem Kommando "man befehl" sich anzeigen lassen kann. Nehmen wir z.B. das Kommando: "man format|more", dann wird die Beschreibung einer C-Routine geliefert. Mit formatieren von Festplatten oder Disketten hat diese Anleitung speziell aber nichts zu tun.
An dieser Stelle wären Sie als Einsteiger auf anderen UNIXen am Ende. Sie müßten sich ein UNIX Handbuch für Einsteiger kaufen, und einige Befehle Schritt für Schritt durchgehen und wie Vokabeln alle Kommandos lernen. Mit den GNU Toolkits hat Richard Stallmann eine Datenbank implementiert, in der man mit Hilfe des Kommandos "apropos Begriff" suchen kann:
gast@tunix:~ > apropos format|more
AddErrInfo (3) - record information about errors
Apache::Status (3pm) - Embedded interpreter status information
Config (3pm) - access Perl configuration information
PDL::IO::FastRaw (3pm) - A simple, fast and convenient io format for PerlDL.
PDL::IO::FlexRaw (3pm) - A flexible binary i/o format for PerlDL.
PDL::IO::Pnm (3pm) - pnm format I/O for PDL
...
...
Pod::Text (3pm) - convert POD data to formatted ASCII text
man (7) - macros to format man pages
me (7) - troff macros for formatting papers
megatron (1) - Macintosh file format transformer
menu_format (3x) - set and get menu sizes
mformat (1) - add an MSDOS filesystem to a low-level formatted floppy d
mimencode (1) - Translate to and from mail-oriented encoding formats
mmencode (1) - Translate to and from mail-oriented encoding formats
modinfo (8) - display information about a kernel module
Sie sehen nun alles aus den Handbüchern, was mit formatieren zu tun hat. Es
ist eine riesige Liste. Interessant ist z.B. das Kommando "mformat", es soll
angeblich eine Diskette im MSDOS Format formatieren. Wir befinden uns zwar
unter LINUX bzw. UNIX, es könnte jedoch sein, daß jemand eine Art Treiber
für MSDOS Disketten geschrieben hat.
Falls das Kommando apropos noch nicht funktioniert, dann liegt das daran, daß der Datenbank - Index noch nicht aufgebaut ist. Dies ist insbesondere bei RedHat direkt nach der Installation der Fall. Geben Sie daher einfach: makewhatis, zu deutsch: machmirwaslosist. Völlig Blödsinn. Was ist den schon los ? Nun ja. Aber - und das ist das wichtigste - die Festplatte müsste nun viel Arbeit haben, da alle Man-Pages nun in einer Datenbank indiziert werden. Danach müsste dann das Kommando apropos wunderbar funkionieren.
Nachdem wir uns mit "apropos" ein paar Vorschläge zu Formatierung vom System geholt haben, können wir uns mit "man 1 mformat" die Dokumentation anschauen:
Formatiere mformat(1) neu, bitte warten...
mformat(1) mformat(1)
Name
mformat - add an MSDOS filesystem to a low-level formatted
floppy disk
Note of warning
This manpage has been automatically generated from
mtools's texinfo documentation, and may not be entirely
accurate or complete. See the end of this man page for
details.
Description
The mformat command is used to add an MS-DOS filesystem to
a low-level formatted diskette. Its syntax is:
--More--
Wenn Sie nun mit ENTER zeilenweise herunterscrollen, dann sehen Sie, daß wir es mit einem Format - Kommando für MSDOS Disketten zu tun haben.
Mit "q" oder der ESC - Taste können Sie more z.B. verlassen.
Mit "b" können Sie zurückscrollen und mit "f", ENTER oder der Leertaste scrollen Sie vorwärts.
An diesem Punkt sei auch erwähnt, daß man mit STRG-C und STRG-D bzw. ESC alle Kommandos unter UNIX abbrechen kann.
Wenn Sie sich diese Zeilen durchlesen, dann stoßen Sie auf den Begriff mtools zu denen das Kommando mformat offensichtlich gehört. Schauen wir einmal nach den "mtools" mit "apropos mtools" nach:
gast@tunix:~ > apropos mtools
mtools (1) - utilities to access DOS disks in Unix. TQ
mtools (5) - mtools configuration files TQ
mtoolstest (1) - tests and displays the configuration TQ
gast@tunix:~ >
Fein, es gibt also auch Beschreibungen zu dem Begriff "mtools". Merkwürdig
ist dabei die (1) und (5). Der Grund liegt darin, daß es mehrere Handbücher
unter UNIX gibt, ähnlich den verschiedenen Bänden bei Lexika. Diese werden durch Nummern unterschieden. Der Befehl "man 1
mtools" müßte also etwas anderes Dokumentieren, als "man 5 mtools":
Probieren wird es aus:
mtools.1(3) mtools.1(3)
Name
mtools - utilities to access DOS disks in Unix.
Introduction
Mtools is a public domain collection of tools to allow
Unix systems to manipulate MS-DOS files: read, write, and
move around files on an MS-DOS filesystem (typically a
floppy disk). Where reasonable, each program attempts to
emulate the MS-DOS equivalent command. However, unneces
sary restrictions and oddities of DOS are not emulated.
For instance, it is possible to move subdirectories from
one subdirectory to another.
Mtools is sufficient to give access to MS-DOS filesystems.
Manual-Seite mtools(1) zeile 1
Aha, also gibt es offensichtlich eine riesige Sammlung von MSDOS Toolkits unter UNIX/LINUX. Fein. Am Ende sehen Sie, wenn Sie mit der Leertaste durchblättern, einen Abschnitt "See also", der auf verwandte Kommandos unter UNIX verweist, darunter auf mcd, mcopy, mdel, mdir, mlabel, u.s.w.
Diese Kommandos finden sich auch unter MSDOS, allerdings ohne vorangestelltem "m". Die Sammlung von MTOOLS wurde ursprünglich unter SUN SOLARIS programmiert und dann an LINUX angepaßt. Somit wissen Sie also, wie Sie Ihre Disketten unter LINUX oder UNIX z.B. formatieren können, von der Festplatte auf eine Diskette kopieren können u.s.w.:
Probieren Sie einmal einige Kommandos aus, nachdem Sie eine Diskette eingelegt haben:
# cd /etc
# mcopy passwd a:
# mdir a:
# mformat a:
Sie haben nun den Umgang mit der GNU Datenbank für die MAN-Pages gelernt. Mit apropos können Sie nach einem Begriff suchen, der beschreibt, was Sie tun möchten. Möchten Sie z.B. etwas kopieren, suchen Sie zuerst nach copy. Geben Sie also apropos copy ein. Die erhalten einige Vorschläge zu Man-Pages, in denen Sie dann weiter suchen können. Mit dem Kommando: man [Nummer] Kommando können Sie sich dann die Syntax und Bedeutung der Befehle ausgeben lassen.
Sie haben vielleicht bemerkt, daß alle Befehle mit einem "m" anfangen. Wenn Sie nach ein paar Wochen sich vielleicht erst wieder an ein UNIX System setzen, wissen Sie vielleicht noch, daß der Befehl mit einem "m" angefangen hat, jedoch werden Sie sich wohl kaum an alle "m-" Befehle erinnern. Auch hier kann die BASH helfen.
Tippen Sie einmal ein "m" ein und drücken Sie 2x auf die Tabulatortaste:
gast@tunix:/etc > m
Display all 119 possibilities? (y or n)
Die Datenbankfunktion in der BASH hat 119 Befehle gefunden, die alle mit "m"
beginnen. Nun drücken Sie auf "y":
mcomp mrd
mcookie mread
mcopy mren
mcserv mshowfat
md mt
md5sum mtools
mdel mtoolstest
mdeltree mtrace
mdir mtst
mdu mtvtoppm
megatron mtype
merge munchlist
mergelib mutt
mesg mv
metamail mwm
metasend mxtar
mev mydvichk
mf mysql_fix_privilege_tables
mformat mysql_install_db
mft mysql_setpermission
mfw mysql_zap
mgdiff mzip
mgetty+sendfax
gast@tunix:/etc >
Wow ! Es gibt offensichtlich eine riesige Menge von UNIX Kommando's, die mit
m beginnen. Für alle Kommandos gibt es ausführliche Manpages. Wieviele
Kommandos's gibt es überhaupt ?
Nun ganz einfach ! Drücken Sie einfach, ohne einen Buchstaben eingegeben zu haben, 2x auf die Tabulatortaste:
gast@tunix:/etc >
Display all 1741 possibilities? (y or n)
Es gibt also im direkten Zugriff 1741 Komando's, die alle dokumentiert sind.
Dazu noch ein paar tausend, die nicht dokumentiert sind, bzw. nicht in dem
Suchpfad (PATH) liegen.
Mit dem Suchpfad ist es wie in MSDOS oder dem MSDOS Fenster unter Windows NT. Einige Kommando's werden direkt gefunden, andere sind nur erreichbar, wenn man den absoluten Pfad voranstellt. Hierzu später mehr.
Die Tabulatortaste erspart Ihnen aber auch viel Tipparbeit. Es gibt einen sogenannten Komplettierungsmodus der BASH geben Sie z.B. folgendes ein:
gast@tunix:/ > cd /u
nun drücken Sie die Tabulatortaste. Sie sehen nun:
gast@tunix:/ > cd /usr/
Geben Sie nun ein do ein, und tippen Sie wieder auf die
Tabulatortaste:
gast@tunix:/ > cd /usr/doc/
Nun tippen Sie 2x auf die Tabulatortaste. Sie sehen:
gast@tunix:/ > cd /usr/doc/
FHS packages sgml-tools support-db
howto sdb support susehilf
gast@tunix:/ > cd /usr/doc/
Tippen Sie nun ein "p" und die Tabulatortaste:
gast@tunix:/ > cd /usr/doc/packages/
Nun tippen Sie 2x auf die Tabulatortaste und einmal auf "y":
bootpc iglooftp ltrace pixmaps tarfix wvdial
bzip ImageMagick lynx plan tcl7.6 wwwoffle
cdcons imlib lyx pop tcl8.0 xanim
cdparano inetcfg mail portmap tcpdump xaw3d
cdrdao intlfnt marsnwe ppa tcsh xbanner
cdrecord ipchains mc ppp_nt te_ams xdelta
conv ipxrip mdutils procmail te_etex xf86
cracklib isapnp mesa proftpd te_latex xfig
ddd ispell metamail psutils te_mpost xforms
dhcp java mgetty pygdmod te_pdf xftp
diald jed minicom pygtk te_pscm xinfo
dip joe mkdosfs pyldapm tetex xntp
dochost jpeg mkisofs python texcad xosview
dvi2tty kadmin modules qt texi2html xpm
Dviutils kbase mpegplay quota texi2roff xspeakf
egcs kbd mtools ripe-whois tiff xsysinfo
emacs_w3 kernmod mutt rman tin xwpe
esound kgames mysql rpm tix yast
f2c kgraph nc rsync tk zip
firewall klibs ncpfs samba tkdraw zsh
freeamp kmulti ncurses sash traceroute
freetype knet netatalk sax transfig
fvwm korganiz netcat seejpeg umsprogs
gast@tunix:/ > cd /usr/doc/packages/
Drücken Sie auf ENTER !
Was Sie nun sehen, ist die vollständige Dokumentation zu allen installierten LINUX Paketen. Zugegeben, da wären Sie nicht ohne Hilfe drauf gekommen, aber dafür ist ja dieses Tutorial auch da.
Es gibt hier z.B. ein Verzeichnis "mc". Wechseln Sie mit "cd mc" in dieses Verzeichnis und lassen Sie sich mit "ls" das Inhaltsverzeichnis ausgeben:
gast@tunix:/usr/doc/packages/mc > ls
ABOUT-NLS COPYING NEWS README
gast@tunix:/usr/doc/packages/mc >
Typisch für Dokumentationen ist die Datei README. Mit "more README" können
Sie sich nun die Dokumentation durchlesen. Nicht vergessen: Mit "q" beenden
Sie more !
gast@tunix:/usr/doc/packages/mc > more README
-*-Text-*-
Contents:
---------
Requirments
GNOME edition requirments
Features
Midnight Commander editions
Where to get more information
The Midnight Commander
Mini-docs
Obtaining the Midnight Commander
Reporting problems.
This version of the Midnight Commander comes with two interfaces: a
graphical one for the GNOME desktop (http://www.gnome.org) and a text
mode interface (the same old user interface we have had for a long
time).
Most of the engine is shared between both versions, but they come with
radically different interfaces: the GNOME version is aimed to be a
simple to use tool for novice users.
--More--(9%)
Es ist die Rede von einem Midnight Commander. Klingelt es ? Vielleicht kennen Sie ja den Norton Commander "nc". Geben Sie einmal "mc" ein. Mit der Funktionstaste F10 beenden Sie diesen. Sie können also hiermit ebenfalls Dateien anschauen, Verzeichnisse wechseln, Dateien kopieren u.s.w. Der Midgnight Kommander ist ein Werkzeug, welches viele UNIX Kommando's einfach überflüssig macht. Er ist auf alle UNIX Systeme portiert und Teil des GNU Toolkits.
UNIX bzw. LINUX ist offensichtlich das größte Textadventure der Menschheit. Sie können Tage, Wochen, Monate und Jahre damit zubringen, sich die Syntax und Funktionalität von UNIX-Befehlen anzuschauen, Sie werden jedoch kaum in der Lage sein, sich diese zu merken. Genau dieses Problem beseitigen die GNU Tools.
Dank der Datenbank können Sie also als Systemadministrator auch ohne Kenntnisse eines Befehls sich mit Hilfe von apropos befehl und man x befehl durch das System hindurchfinden. Ohne diese GNU Toolkits ist ein UNIX System für Einsteiger nicht zu erlernen.
Falls Sie also auf die Idee kommen sollten, die Manpages auszudrücken, kann ich Ihnen versichern, daß Ihr Drucker es nicht überleben wird.
Vielleicht sollten wir uns einmal das Verzeichnis der verschiedenen Man-Pages und Dokumentationen ansehen. Sie finden Man-Pages für UNIX unter /usr/man/ mit einem Volumen von 21 MByte, unter /usr/X11R6/lib/man mit einem Volumen von 1.6 MByte, und alle weiteren Dokumentationen mit allen HOWTO's in verschiedenen Formaten und Sprachen im Verzeichnis /usr/doc/ mit einem Volumen von ca. 80-350 MByte, je nachdem, welche Pakete Sie installiert haben. Insgesamt hätten Sie, wenn man ca. 1000 Zeichen/Seite veranschlagt, etwa 370.000 Seiten zu drucken, das würde mit einem Laserdrucker bei 3 Seiten/Minute etwas über 80 Tage dauern, wobei der Drucker 24 Stunden am Tag drucken müßte.
Ein Systemadministrator muß stets wissen, wie er einem UNIX System diejenigen Informationen entlockt, die er für die tägliche Arbeit benötigt. Die GNU Toolkits sind eine unentbehrliche Hilfe dabei. Wenn Sie sich also an ein fremdes UNIX System setzen, können Sie fast davon ausgehen, daß der Systemadministrator schon diese GNU Toolkits installiert hat. Wenn nicht, installieren Sie diese, und Sie sind in der Lage sich auf jedem UNIX zurecht zu finden.
Eine wichtige Kleinigkeit soll natürlich ebenfalls nicht verschwiegen werden. Alle Kommando's, die Sie bisher eingegeben haben, werden in einer versteckten Datei.bash_history mitprotokolliert. Mit den Cursortasten nach oben und unten können Sie jeden einzelnen Befehl wiederholen, das erspart oft viel Tipparbeit. Sie können aber auch mit Hilfe von STRG-R die Suche nach bisherigen Befehlen eröffnen. Es öffenet sich ein Suchfenster:
gast@tunix:~ >
(reverse-i-search)':
Wenn Sie nun z.B. irgendein Substring eines vorhergehenden, längeren Kommandos eingeben, wird Ihnen die letzte Eingabe angezeigt, die diesen Substring enthält. Tippen Sie beispielsweise ein "d" ein:
gast@tunix:~ >
(reverse-i-search)'d': cat < /dev/mouse
Das war vielleicht noch nicht der Befehl, den Sie suchten, also Tippen Sie noch mehrmals STRG-R ein:
(reverse-i-search)'d': ls -fsdfsfsdfrerwre > 88 2>&1
Sie Blättern also durch die History (Geschichte) der eigegebenen Kommandos und filtern gleichzeitig nach bestimmten Substrings.
Die Datenbankfunktionen gehen aber noch weit darüber hinaus. Wir sprachen ja von externen Kommandos, die wir aufrufen können. Die große Frage ist jedoch: "Wo sind diese Befehle in den Verzeichnissen auf der Festplatte abgespreichert ?"
Die Antwort liefert der Befehl: "which". Probieren wir einmal folgendes aus:
gast@tunix:/etc > which more
/bin/more
gast@tunix:/etc >
Aha ! Der externe Befehl more liegt also im Verzeichnis
/bin. Welchseln wir einfach einmal dorthin:
gast@tunix:/bin > cd /bin
gast@tunix:/bin > ls -la more
-rwxr-xr-x 1 root root 25204 Aug 22 19:53 more
gast@tunix:/bin >
Nun, der Befehl more hat eine Größe von 25204 Byte, gehört dem Benutzer root und zu der Gruppe root, was nicht weiter verwundert, da es ein Kommando ist, welches zum System gehört. Alle Kommando's, die zum System gehören, gehören dem User root. Er ist derjenige User, der mit allen Super-User Privilegien ausgestattet ist.
Was ist z.B. mit den MTOOLS oder der BASH Shell selber ? Wo liegen diese ?
gast@tunix:/bin > which mformat
/usr/bin/mformat
gast@tunix:/bin >
Diese liegen offensichtlich im Verzeichnis /usr/bin/. Das Kommando "which" zeigt offensichtlich den Aufenthaltsort des Kommandos an.
Wir sind nun am Ende unserer kleinen Analyse der BASH und stellen fest: Ein UNIX System ohne BASH macht viel mehr Tipparbeit. Daher ist die Installation der GNU Toolkits auf Ihrem UNIX immer eines der ersten Übungen, die man direkt nach der Basisinstalltion als erfahrener Systemadministrator vornimmt. Bei LINUX, FreeBSD, OpenBSD, BSDI, NetBSD und Solaris sind diese Pakete inzwischen im Standard Lieferumfang enthalten. LINUX besteht ausschließlich aus GNU Software.
Von MSDOS her wissen wir, daß es sowohl ausführbare Programme als auch Shellskripte gibt. Wie können wir zwischen verschiedenen Typen von Dateien unterscheiden ?
Hierzu gibt es den Befehl "file". Geben Sie bitte einmal ein:
gast@tunix:/bin > file *|more
arch: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
ash: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
awk: symbolic link to ../usr/bin/awk
basename: symbolic link to ../usr/bin/basename
bash: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
bash1: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
cat: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
chgrp: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
chmod: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
chown: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
compress: symbolic link to /usr/bin/compress
cp: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
csh: symbolic link to tcsh
...
...
touch: symbolic link to ../usr/bin/touch
true: Bourne shell script text
umount: setuid ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
umssync: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked (uses shared libs), stripped
uname: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically li
--More--
Es wird also zwischen Binaries, Shell-Skripten und symbolischen Links unterschieden.
Über den Komplettierungsmodus der BASH können Sie nun durch zweimalige Benutzung der TAB Taste alle Kommandos von LINUX, die im Suchpfad enthalten sind, anzeigen. Probieren Sie es einfach einmal mit allen Buchstaben des Alphabets, beginnen Sie mit "a" und 2x Tabulatortaste und schließen Sie mit z ab. Sie werden Programme finden, von denen Sie nicht einmal wußten, daß LINUX so etwas kann.
Betrachten Sie diesen Abschnitt als Hilfe zur Selbsthilfe. Wir werden uns nun einmal einige wichtigen Kommandos unter LINUX / UNIX anschauen:
cd
ls
pwd
who
who am i
Mit dem Befehl "ls" können Sie sich Ihr aktuelles Verzeichnis anschauen.
Sie befinden sich vielleicht noch im Verzeichnis "/bin" und haben eigentlich
keine Ahnung, in welchem Verzeichnis Sie ursprünglich waren.
Da hilft ein einfaches cd, und schon sind Sie in Ihrem persönlichen Homeverzeichnis. Mit dem Kommando pwd können Sie sich Ihr aktuelles Verzeichnis anzeigen lassen:
pwdgast@tunix:/bin > pwd
/bin
gast@tunix:/bin > cd
gast@tunix:~ > pwd
/home/gast
gast@tunix:~ >
Nun wissen Sie also, wo auf UNIX /LINUX Ihr Stammverzeichnis ist. In
Ihrem Verzeichnis angelangt, können Sie Dateien anlegen, löschen, kopieren
u.s.w. LINUX/UNIX ist ein Multiuser/Multitasking Betriebssystem. Sie dürfen
also sich eventuell andere Verzeichnisse anschauen, es dürfte jedoch völlig
vergeblich sein, außerhalb Ihres Homeverzeichnisses etwas zu verändern, oder
eine Datei anzulegen.
Apropos Verzeichnis, vielleicht sollten an dieser Stelle einige wichtige Kommando's noch einmal vorgestellt werden:
ls Zeigt das Inhaltsverzeichnis an
pwd Gibt das aktuelle Verzeichnis an
cd Bringt Sie in Ihr Homeverzeichnis zurück
who Sagt Ihnen, wer noch im System eingeloggt ist
who am i Sagt Ihnen Ihre Benutzerkennung
which Sagt Ihnen, wo sich eine Datei im System befindet
apropos Sucht nach Schlagworten
<tab><tab> Ist der Komplettierungsmodus der BASH
Wir möchten nun etwas sinnvolles unter UNIX tun. Wir legen eine Datei an.
Dazu verwendet man entweder einen Editor, oder man benutzt die Umleitung von
Eingabekanälen unter UNIX. Vielleicht haben Sie unter MSDOS einmal von PIPES
gehört. Das Kommando "ls|more" ist z.B. eine solche Funktion, die
ursprünglich aus UNIX stammt. Die Ausgabe von "ls" wird an "more"
weitergegeben und seitenweise dargestellt. Unter UNIX gibt es 3 Kanäle:
STDIN, STDOUT, STDERR, was für Standard IN, Standard OUT, und Standard Error steht.
Standard IN ist bei der SHELL, sofern Sie normal eingeloggt sind, die Tastatur.
Vielleicht haben Sie sich ja noch keine Gedanken darüber gemacht, aber Ihre SHELL bezieht die Kommando's ja von der Tastatur, vor der Sie gerade sitzen und Befehle eintippen. STDOUT ist offensichtlichh Ihr Bildschirm. Alle Ausgaben werden auf Ihren Bildschirm geleitet. Das muß aber nicht so sein. Man kann die Datenflüsse in UNIX umleiten, z.B. in eine Datei oder an eine serielle Schnittstelle.
Wir probieren einmal, die Ausgabe den Kommandos von "ls /etc/" nicht auf den Bildschirm, sondern in eine Datei "123" umzuleiten:
gast@tunix:~ > ls /etc/ > 123
gast@tunix:~ >
Wir probieren den ls - Befehl einmal ohne "> 123" aus:
diald.conf motd shadow.orig.o
diphosts mtab shells
exports mtools.conf skel
fdprm named.conf slip
fstab netgroup smb.conf
fstab~ networks smbpasswd
ftpaccess news squid.conf
ftpconversions nntpserver su1.cache
ftpusers nscd.conf su1.priv
gpm-root.conf nsswitch.conf sudoers
group ntp.conf syslog.conf
group.orig nwserv.conf termcap
group.orig.o openldap texmf
group~ opt ttytype
gshadow pam.d uucp
host.conf pam_smb.conf vbox
hosts passwd vboxconfrc
hosts.allow passwd.orig vga
hosts.deny passwd.orig.o vimrc
hosts.equiv passwd~ wgetrc
hosts.lpd pcmcia wvdial.conf
httpd permissions wwwoffle
hushlogins permissions.easy zshrc
gast@tunix:~ >
Der Bildschirm ist durchgelaufen und hat uns das Inhaltsverzeichnis von "/etc" ausgegeben. Bei dem Kommando "ls /etc/ > 123" hat sich nichts gerührt, da ja die Bildschirmausgabe in die Datei umgeleitet wurde. Geben Sie einmal more "123" ein:
gast@tunix:~ > more 123
DIR_COLORS
HOSTNAME
Muttrc
SuSE-release
SuSE-release~
SuSEconfig
TextConfig
XF86Config
XF86Config.saxsave
a2ps-site.cfg
a2ps.cfg
adjtime
aliases
aliases.db
at.deny
atalk
auto.master
auto.misc
autolog.conf
conf.modules
conf.modules.orig
cron.d
--More--(14%)
Aha ! Es ist offensichtlich so, daß der Zusatz "> 123" die Ausgabe vom Bildschirm in eine Datei umgelenkt hat. Das ist ganz sinnvoll, wenn man z.B. die Ausgabe eine Programmes aufzeichnen möchte. Etwas anderes ist es, wenn man Eingaben der Tastatur in eine Datei umzulenken möchte. Dabei hilft der Befehl "cat":
gast@tunix:~ > cat > 456
Hallo !
gast@tunix:~ > more 456
Hallo !
gast@tunix:~ >
Wie Sie sehen, kann man auch ohne Editor Dateien anlegen, indem man die
STDIN mit Hilfe von cat in eine Datei umlenkt. Wir probieren einmal
folgenden Befehl:
gast@tunix:~ > cat
fdfs
Geben Sie nun "ENTER" ein. Sie sehen ein Echo Ihrer Eingabe:
gast@tunix:~ > cat
fdfs
fdfs
Sie haben also ohne Angabe von "> 456" also die Eingabe nicht in eine Datei
umgelenkt, sondern dafür gesorgt, daß cat Ihre Eingabe wieder auf den
Bildschirm ausgibt, also eine Art Echo erzeugt.
Wir wissen nun also, was STDIN und STDOUT ist, und daß man diese umlenken kann. STDIN bei cat ist also standardgemäß die Tastatur. Was aber ist STDERR ?
STDERR ist ein Kanal, der Fehlermeldungen ausgibt. Z.B. könnten Sie ein Kommando falsch verwenden:
gast@tunix:~ > ls dffsfs
ls: dffsfs: Datei oder Verzeichnis nicht gefunden
gast@tunix:~ >
Es erscheint eine Fehlermeldung auf dem Bildschirm. Offensichtlich wird
STDERR auf STDOUT umgeleitet. Das kann man daran sehen, daß z.B. folgendes
nicht wie gewünscht funktioniert:
gast@tunix:~ > ls dffsfs > 789
ls: dffsfs: Datei oder Verzeichnis nicht gefunden
gast@tunix:~ >
Normalerweise müßte die Ausgabe des Befehls "ls dffsfs" ja in der Datei 789 gespeichert werden. Es wird auch die Datei 789 angelegt, aber die Fehlermeldungen werden nicht darin gespeichert, sondern immer noch auf den Bildschirm ausgegeben. Was also läuft hier falsch ?
Bevor ich nun das Problem aufkläre, ist es vielleicht für einen Einsteiger sinnvoll, zu sehen, wie ein Profi sich diese Informationen beschafft:
Diese Mechanismen nennen sich ja PIPE und beschreiben die Umleitung der Ein-und Ausgabekanäle unter UNIX.
Wo also könnten diese dokumentiert sein ? Nun, wir befinden uns in der BASH Shell. Mit "man bash" sollten wir also hierzu weitere Dokumentationen finden können:
gast@tunix:~ > man bash
...
...
Note that the order of redirections is significant. For
example, the command
ls > dirlist 2>&1
directs both standard output and standard error to the
file dirlist, while the command
ls 2>&1 > dirlist
directs only the standard output to file dirlist, because
the standard error was duplicated as standard output
before the standard output was redirected to dirlist.
A failure to open or create a file causes the redirection
to fail.
Redirecting Input
Redirection of input causes the file whose name results
from the expansion of word to be opened for reading on
...
Stimmt, hier wird ausführlich alles über PIPE Mechanismen beschrieben. Sie sehen also, daß wirklich alles genau in den MANPAGES unter UNIX beschrieben ist. UNIX bzw. LINUX ist das einzige Betriebssystem, wo wirklich alle Dokumentationen auf dem System vorhanden sind. Wenn Sie z.B. Windows NT kaufen und 500 DM für eine Server-Lizenz ausgeben, dann erhalten Sie zwar einige Hilfen, jedoch keine Handbücher dabei. Die original Handbücher zu Windows NT kosten bei Microsoft ca. 1500 DM. Insgesamt kostet als Windows NT über 2000 DM, genaugenommen. LINUX ist trotz Handbüchern kostenlos.
Kommen wir nun zurück auf die Umleitung der Ausgabekanäle SDTOUT und STDERR.
Verwenden wir direkt einmal das Beispiel aus den MAN-Pages:
gast@tunix:~ > ls -fsdfsfsdfrerwre > 88 2>&1
gast@tunix:~ > more 88
ls: Ungültige Option -- »e«
Try 'ls --help' for more information.
gast@tunix:~ >
Was ist hier genau passiert ? Der Kanal STDOUT wurde in die Datei 88 geleitet. Die Fehlermeldung erschien ja weiterhin aus dem Bildschirm, also auf STDOUT. Die Nummer 1 bedeutet STDOUT, die Nummer 2 bedeutet STDERR. Es wird also Der Fehlerkanal STDERR auf den Ausgabekanal STDOUT gelegt. Da direkt nach dem ls der Kanal STDOUT, also die Nummer 1 umgeleitet wurde, wird nun das Nachfolgende Kommando 2>&1 die Fehlermeldung auch in die Umleitung ausgeben.
Falls man diese anders herum tut, wie in den Man-Pages beschrieben, dann wird der Fehlermeldungskanal STRERR des ls Kommando's auf STDOUT geschrieben, und die eigentliche Ausgabe in die Datei. Das führt dann dazu, daß der Fehler weiterhin auf dem Bildschirm erscheint, und nicht in der Datei.
Es werden also die Standardausgabe und die Fehlermeldungen in die Datei 88 umgelenkt. Das kann z.B. sehr wichtig sein, wenn man ein Programm testet, die Fehlermeldungen aber zu schnell auf dem Bildschirm vorbeiscrollen. Der Befehl "more" funktioniert in diesen Fällen ja nicht, da er ausschließlich STDOUT puffert und seitenweise ausgibt. STDERR nimmt er nicht wahr. Damit Sie jedoch STDERR nach der Ausführung eines Programmes sich anschauen können, müssen Sie STDERR in eine Datei umleiten. Genau dies macht obiger Befehl.
Wir können aber auch cat dazu verwenden, Dateien zu kopieren. Hierzu lenkt man STDIN auf eine Datei um. Das einfachste Beispiel ist dieses:
gast@tunix:~ > cat < 88
ls: Ungültige Option -- »e«
Try 'ls --help' for more information.
gast@tunix:~ >
Wir sehen die Umlenkung des Inhaltes der Datei 88 auf STDOUT.
Diese Ausgabe kann man wieder in eine andere Datei umlenken, z.B. in die Datei 99:
gast@tunix:~ > cat < 88 > 99
gast@tunix:~ > more 99
ls: Ungültige Option -- »e«
Try 'ls --help' for more information.
gast@tunix:~ >
Was passiert hier ? Man muß sich im Klaren sein, daß alle Befehle immer von links nach rechts abgearbeitet werden. cat < 88 nimmt sich die Inhalte aus der Datei und übergibt Sie an STDOUT. Danach wird STDOUT in die Datei 99 umgeleitet. Auf diese Weise haben wir nun eine Datei kopiert. Nun wissen Sie auch, wie der Befehl "cp" unter UNIX funktioniert:
gast@tunix:~ > cp 88 22
gast@tunix:~ > more 22
ls: Ungültige Option -- »e«
Try 'ls --help' for more information.
gast@tunix:~ >
Wir wissen nun, daß der Befehl cp nichts anderes macht, als Kanäle anzusprechen. Unter UNIX ist im Übrigen alles als Kanal realisiert. Tastatur, Bildschirm, Serielle und parellele Schnittstellen, Festplatten, Streamer, einfach alles.
Demnach kann man also Datenströme von CDROM zur Festplatte, von Serieller Schnittstelle an die Parallele übergeben, eine CDROM in eine Datei und umgekehrt kopieren, u.s.w. Damit dieses Konzept der Umleitung von Dateien auch geradewegs auf Hardwarekomponenten angewendet werden kann, hat man unter UNIX die Devices erfunden. Devices sind nichts anderes, als Kommunikations-und Datenübergabekanäle zur Hardware, also z.B. Tapes, Floppy, Streamer, Festplatten, Drucker u.s.w.
Unter UNIX liegen diese Devices im Verzeichnis /dev/. Schauen wir uns hier einmal genauer um:
gast@tunix:/dev > cd /dev/
gast@tunix:/dev > ls |more
arp
audio
audio1
bc0
bc1
.....
ttyS0
vttuner
watchdog
zero
Es ist sicher müßig, alle Devices aufzulisten. Wichtig sind aber folgende:
/dev/fd0 Floppydisk
/dev/zero Liefert Nullen
/dev/hda Erste AT-BUS Festplatte, Master
/dev/hdb Erste AT-BUS Festplatte, Slave
/dev/hdc Zweite AT-BUS Festplatte, Master
/dev/hdd Zweite AT-BUS Festplatte, Slave
/dev/sda Erste SCSI Festplatte
/dev/sdb Zweite SCSI Festplatte
/dev/sdc
/dev/sdd
/temperature Temperatur der CPU
/watchdog Watchdog Karte zur Serverüberwachung
/rmt0 DAT/Floppy Streamer mit Rückspoolen
/dev/ippp0 Erster ISDN B-Kanal
/dev/ippp1 Zweiter ISDN B-Kanal
/dev/isdn0 Erster B-Wartungskanal für ISDN
/dev/isdn1 Zweiter B-Wartungskanal für ISDN
/dev/md0 RAID 0
/dev/md3 RAID 3
/dev/lp0 LPT1:
/dev/lp1 LPT2:
/dev/cua0 COM1:
/dev/cua1 COM2:
/dev/mouse Link auf COM1: (meistens)
/dev/ttyS0 Link auf COM1: (meistens)
/dev/ttyS1 Link auf COM2: (meistens)
/dev/mem Abbild des RAM
/dev/kmem Abbild des Kernel-RAM
So nun genug der Aufzählung der Devices, tragen wir nun einmal die Maus, was
sie uns erzählen möchte:
gast@tunix:~ > cat < /dev/mouse
bash: /dev/mouse: Keine Berechtigung
gast@tunix:~ >
Wir haben gottseidank als normaler User keinen Zugriff auf die Devices.
Ansonsten könnte ja ein einfacher User die Festplatte überschreiben, oder
Paßworte aus dem RAM auslesen, u.s.w.
Wir wechseln also einmal in den Supervisor-Modus und probieren noch einmal:
gast@tunix:~ > su root
Password:
root@tunix:/home/gast >
root@tunix:/home/gast > cat < /dev/mouse
@@@rLt8Le2L:L;L?L?L>L?C?O?=O8?C5C=@?C82cC
-aC.C1C8C9C9C:O<?C4O3<O8<L>L;Lb3Lo4L"2L*6Lu?@a@>C>C?C?O>?O?=O>>O==O==
Hier kommt nun die Sendung mit der Maus, der besser gesagt, von der Maus. Bewegen Sie diese ein wenig hin-und her, und sie wird lustige Geschichten erzählen ;-)
Wir Sie sehen, können wir nun die Zeichen, die die Maus an das Betriebssystem sendet, auslesen. Übrigends, mit STRG-C bricht man die Ausgabe ab !
Sie können sich vielleicht nun vorstellen, wie man LINUX in der Prozessleittechnik in der Industrie einsetzen kann. Man verbindet einen Temperaturfühler oder Regler mit einer Seriellen Schnittstelle, und kann mit cat < /dev/.... alles sauber mitprotokollieren. Es gibt für LINUX Karten mit bis zu 256 seriellen Schnittstellen, von denen auch mehrere Installiert werden können.
Eine andere Anwendung hängt z.B. mit dem Device /dev/zero zusammen. Dieses Device liefert endlos Nullen. Unter LINUX kann man damit z.B. eine SWAP - Datei (Auslagerungsdatei für RAM) anlegen. Normalerweise wird ja eine SWAP-Partition angelegt. Es kann jedoch passieren, daß Sie Anwendungen starten, die viel RAM benötigen. Da es kompiliziert ist, die Festplatte umzupartitionieren, kann man einfach eine Swap-Datei anlegen, als Swap-Datei formatieren und an das RAM anhängen.
Sie kennen die Befehle noch nicht ? Das macht nichts. Mit Hilfe von apropos swap, apropos mount, apropos format finden Sie früher oder später zu genau diesen Kommando's:
mkswap
swapon
mount
Wir müssen nur noch eine Datei einer bestimmten Größe anlegen, die z.B. mit
Nullen gefüllt ist. Erinnern wir uns an die Umleitung einer Dateiausgabe:
Der Befehl cat < /dev/zero > /swapdatei würde hier nicht
funktionieren, da wir die Größe der Swapdatei nicht begrenzen könnten. Das
Kommando würde solange weiterlaufen, bis die Festplatte voll wäre. Es muß
also ein Kommando geben, mit welchem man eine bestimmte Zahl von Bytes aus
dem Device /dev/zero auslesen, und auf die Festplatte schreiben
kann.
Dieses Kommando ist schwierig zu finden, es lautet dd. Schauen Sie sich mit "man dd" einmal die Syntax genau an. Wir legen nun im Verzeichnis / (Das ist das Rootverzeichnis, also das oberste Verzeichnis des Verzeichnisbaumes, nicht zu verwechseln mit dem Homeverzeichnis des Users root, welches sich in /root befindet) eine Datei "swapdatei" von der Größe 100 MBytes an:
root@tunix:/home/gast > dd if=/dev/zero of=/swapdatei bs=1024 count=100000
100000+0 records in
100000+0 records out
root@tunix:/home/gast >
Bitte beachten Sie, daß Sie hierzu Supervisor, also root sein müssen. Nun formatieren wird die Datei als Swapdatei:
root@tunix:/home/gast > mkswap /swapdatei
Setting up swapspace version 0, size = 102395904 bytes
root@tunix:/home/gast >
Nun schauen wir uns, bevor wir unseren Swapspace erweitern, diesen einmal
an:
root@tunix:/home/gast > free
total used free shared buffers cached
Mem: 127952 124828 3124 29964 90828 4668
-/+ buffers/cache: 29332 98620
Swap: 86684 0 86684
root@tunix:/home/gast >
Wir sehen, daß momentan schon ca. 86 MByte an Swapspache zur Verfügung stehen. Nun
erweitern wir den Swap-Space und schauen uns den Speicher noch einmal
an:
root@tunix:/home/gast > swapon /swapdatei
root@tunix:/home/gast > free
total used free shared buffers cached
Mem: 127952 124896 3056 29964 90832 4676
-/+ buffers/cache: 29388 98564
Swap: 186680 0 186680
root@tunix:/home/gast >
Es hat funktioniert ! Dieser Trick der Ramerweiterung funktioniert übrigends mit
allen UNIXen. Schauen Sie bitte dort in den Manuals nach der genauen
Syntax.
Eine andere, wichtige Anwendung des Kommando's dd ist die Sicherung des sogenannten Superblocks einer Partition. UNIX Filesysteme haben alle X Zylinder auf der Festplatte jeweils eine vollständige Kopie der FAT (File Allocation Table) gespeichert. Falls also ein Fehler auf der Festplatte auftreten sollte, z.B. durch Beschädigung der Oberfläche, kann das Filesystem diese mit Hilfe von e2fsck erkennen und reparieren, indem es die Bereiche als defekt markiert, und in einen nicht defekten Bereich verlagert. Alle diese Kopien der FAT's orientieren sich an dem sog. Superblock, der ganz am Anfang der Partition angesiedelt ist. Ist dieser defekt, dann gibt es keine Rettung des Filesystems mehr. In diesem Fall muß man dann eine neue Festplatte einbauen, die defekte Festplatte spiegeln, und die Sicherung des Superblocks von Diskette auf der neuen Festplatte über die defekten Informationen der defekten Festplatte schreiben. Erst dann kann man e2fsck starten. Um den Superblock zu sichern, was man regelmäßig tun sollte, genügt es, mit Hilfe von dd das erste Megabyte einer Partition auf Diskette zu sichern:
root@tunix:/home/gast > dd if =/dev/hda1 of=/dev/fd0 bs=1024 count=1000
Bei der Rücksicherung müssen Sie nur if und of vertauschen. Zugegeben, dies war ein Beispiel aus der Mottenkiste eines erfahrenen Systemadministrators. Zu Zeiten, als Festplatten noch erheblich fehleranfälliger waren, konnte es passieren, daß alle Daten der FAT gelöscht waren, aber das fsck Toolkit die Festplatteninhalte nicht mehr restaurieren konnte. Im allgemeinen kann man dann mit e2fsck unter LINUX durch die Angabe der nächsten FAT , also mit e2fsck -b 8192 u.s.w. versuchen, eine noch intakte FAT zu finden, die in der Lage wäre, die Verzeichnisstruktur wieder herzustellen. In seltenen Fällen sind aber alle FAT's unbrauchbar. Dann ist man dankbar, wenn man regelmäßig eine Kopie einer FAT hat, die man dann mit dd auf die Festplatte zurückspielen kann. Dann funktioniert auch e2fsck oder fsck wieder, und die verlorenen Daten sind wieder da. Dieser Trick funktioniert auch, wenn Sie die Festplatte versehentlich formatiert und umpartitioniert haben.
Sie sehen also, daß man mit kleinen Tricks schon seit Urzeiten unter UNIX mit wenigen Kommando's Dinge machen kann, die selbst der Norton Disk Doctor nicht mehr reparieren kann.
Eine weiteres Beispiel des dd Kommandos ist das Kopieren einer CDROM:
Angenommen, die besitzen einen EIDE CDROM Spieler und einen Yamaha Brenner mit SCSI Schnittstelle. Das CDROM wird meistens als Device /dev/hdc angesprochen (AT-BUS) und das erste SCSI Device als /dev/sda adressiert.
Aber Achtung ! Falls Sie sich nicht sicher sind, schauen Sie mit mount nach, welches Ihre Festplatten sind. Sie könnten sich ansonsten Ihre Festplatte mit den Inhalten der CDROM überschreiben.
Nachdem das geklärt ist, können Sie auf einfachste Weise Bit für Bit eine CDROM auf ein SCSI Device schreiben:
root@tunix:/home/gast > dd if =/dev/hda1 of=/dev/sda
Das Kommando dd bricht ab, wenn alle Bytes geschrieben wurden. Sie benötigen
also keinerlei Brennersoftware, um CDROM's zu kopieren.
Leider funktioniert das Byteweise auslesen der CDROM's nicht mit allen EIDE CDROM Laufwerken, jedoch immer mit SCSI CDROM Laufwerken. Wenn Sie sicher gehen möchten, daß das Brennen von CDROM's auch unter UNIX funktioniert, sollten Sie alles als SCSI Device kaufen. Das hat auch den Vorteil, daß auch keine CPU Zeit mehr benötigt wird, wenn sich die Betriebssysteme der SCSI CDROM und des SCSI Brenners erst einmal miteinander unterhalten. Alles, was man als LINUX Profi nur tun muß ist, diese Kommunikation zwischen den SCSI Devices in Gang zu bringen.
Es mag Ihnen etwas seltsam vorkommen, daß ein SCSI Device, also ein CDROM Brenner oder eine Festplatte ein Betriebssystem haben soll. Ja, die Festplatte bootet mit der Software, die auf dem äußersten Zylinder liegt. Diese Software kann man updaten. Auch AT-BUS Festplatten besitzen ein solches Betriebssystem. Vielleicht ist Ihnen in der Werbung einmal ein Produkt namens Copy-Card für SCSI aufgefallen. Diese Copy-Card ist nichts anderes als ein kleiner Prozessor, der quasi nur das dd Kommando an die beteiligten SCSI Devices absendet. Der Kopiervorgang läuft dann automatisch ab.
Diese besondere Eigenschaft von SCSI war in der Vergangenheit ein gutes Argument, diese Technik bei Servern einzusetzen. Heutzutage, wo auch EIDE Festplatten mit Ultra DMA sich ohne CPU Einsatz miteinander unterhalten können, und wo SCSI Festplatten und EDIE Festplatten aus derselben Produktionsstraße kommen, besteht kein Grund mehr SCSI Technik in Servern einzusetzen, wenn man nicht mehr als 4-8 Festplatten einsetzen möchte.
Eine weitere Anwendung ist die Erstellung einer Bootdiskette unter LINUX. Unter anderen UNIXen funktioniert dieser Trick natürlich nicht. Stecken Sie eine sauber formatierte Diskette (mformat a:) ins das Laufwerk und geben Sie folgendes ein:
root@tunix:/home/gast > dd if=/boot/vmlinuz of=/dev/fd0
Nun wird der kernel von der Festplatte auf Diskette geschrieben. Fertig ist die Bootdiskette ! Beim Booten mit LINUX über Floppy erkennt der LINUX Kernel seine LINUX Partition im System von alleine.
Eine andere Anwendung von dd ist z.B. auch ein Backup. Die Zeiten von Streamern sind heutzutage endgültig vorbei. Diese waren zu Zeiten, als Festplatten noch teuer waren, als langsame Backup Möglichkeit einer Festplatte gedacht. Heutzutage, wo 10 GByte Festplatte nur noch 300 DM kosten, lohnt sich der Einbau einer Wechselplatte. Diese schieben Sie nur ein und machen mit Hilfe von dd ein Binäres Abbild der Server-Festplatte. Danach können Sie die Wechselplatte ausbauen und sicher verwahren:
root@tunix:/home/gast > dd if=/dev/hda of=/dev/hdb
Sie sollten sich allerdings sicher sein, daß kein Prozeß oder User auf die Festplatte während des Kopiervorganges zugreift, da ansonsten Inkoinsistenzen autreten können. Geben Sie daher zuvor init 1 oder init S ein, damit Ihr Server in den Single User Modus wechselt. In diesem Modus wird die Festplatte nicht durch andere User oder Dämonen verändert.
In unserem Falle wird nun ein Backup einer AT-BUS Festplatte auf eine zweite gemacht. Mounten oder ähnliches ist nicht notwendig, da Sie ja direkt auf die Devices zugreifen.
Sie sehen, daß man mit cat und dd über direkten Zugriff auf die Hardware im System verfügt. Die Devices erscheinen fast wie Dateien, sind aber in Wirklichkeit Schnittstellen zur Hardware des Systems. Schauen Sie sich bitte einmal genau das Device der Maus, ttyS0 an:
root@tunix:/dev > ls -la ttyS0
crw-rw---- 1 root uucp 4, 64 Aug 23 10:00 ttyS0
root@tunix:/dev > ls -la ttyS1
crw-rw---- 1 root uucp 4, 65 Aug 23 10:00 ttyS1
root@tunix:/dev >
Es sind dort die Zahlen 4, 64 aufgeführt. Das sagt uns, daß die serielle
Schnittstelle über die Major Devicenummer 4 und die Minor Devicenummer 64
angesprochen wird. Diese Zahlen sind charakteristisch für Devices und im
Kernel festgelegt worden. Jeder Treiber für einen neuen Kontroller in LINUX
erhält eine neue Nummer. Die 2. serielle Schnittstelle wird mit der Minor Devicenummer 65 angesprochen.
Unter UNIX befinden sich die Devices im Verzeichnis /dev. Leider kann man
diese nicht einfach in ein andere Verzeichnis kopieren. Was passieren würde,
wenn Sie z.B. das Device /dev/zero kopieren würden, können Sie sich
vielleicht vorstellen. Die würden höchstens endlos Nullen in eine Datei
kopieren, aber kein Device anlegen. Hierzu gibt des das Kommando mknod:
MKNOD(1) MKNOD(1)
NAME
mknod - make special files
SYNOPSIS
mknod [options] filename {bcu} major minor
mknod [options] filename p
Options:
[-m mode] [--mode=mode] [--help] [--version]
DESCRIPTION
This documentation is no longer being maintained and may
be inaccurate or incomplete. The Texinfo documentation is
now the authoritative source.
This manual page documents the GNU version of mknod.
mknod creates a FIFO, character special file, or block
special file with the given file name. By default, the
...
Ein Blick in die MAN Pages reicht uns. Wechseln Sie mit su in den Superuser - Modus:
gast@tunix:/home/gast > su
Passwort:
root@tunix:/home/gast > mknod ttyS0 c 4 64
root@tunix:/home/gast > ls -la ttyS0
crw-r--r-- 1 root root 4, 64 Okt 2 23:42 ttyS0
root@tunix:/home/gast >
So, nun haben wir im Verzeichnis /home/gast ein Device für die serielle
Schnittstelle angelegt. Wenn wir noch dem User Gast alle Rechte an dieser
Datei geben, dann kann dieser nun direkt auf die serielle Schnittstelle
zugreifen. Was ansonsten nur dem Supervisor vorbehalten war, ist nun dem
User Gast auch möglich, nämlich einen direkten Zugriff auf die Hardware des
Systems zu erhalten. Sie sehen, unter UNIX kann man schlichtweg alles
verändern, sogar das Verzeichnis, in dem die Devices erscheinen.
Vielleicht ist nun die Anbindung der Hardware an den Kernel klarer geworden, und UNIX erscheint Ihnen nicht mehr so unbegreiflich.
Angenommen, Sie erweitern nun Ihr UNIX System um eine weitere Festplatte, da der Speicherplatz nicht mehr ausreicht. Sie bauen also im laufenden Betrieb, also ohne UNIX auszuschalten eine neue SCSI Festplatte in Ihr System ein. Diese Vorgehensweise ist für UNIX nichts ungewöhniches. UNIX wird auch bei Hardwareerweiterungen nicht abgeschaltet.
Nun muß die Festplatte vom SCSI Kontroller erkannt werden, nachdem Strom - und SCSI Kabel angeschlossen wurden. Dies tut das Betriebssystem nach ca. 10 Sekunden von alleine. Die 2. SCSI Festplatte läßt sich nun als Device /dev/sdb ansprechen. Wie schon gesagt, die Erkennung einer weiteren Festplatte im System läuft automatisch ab. Nun muß diese Festplatte formatiert werden. Unter LINUX müssen Sie hierzu das Kommando mke2fs verwenden:
root@tunix:/home/gast > mke2fs /dev/sdb
Der Vorgang dauert ca. 5 Sekunden je Gigabyte Festplattenplatz.
Danach erstellen Sie ein Verzeichnis, in die die Festplatte in den
vorhendenen Verzeichnisbaum eingebunden wird, auch mounting point
genannt:
root@tunix:/home/gast > mkdir /home2/
root@tunix:/home/gast > mount -t ext2 /dev/sdb
Muß eigentlich die Festplatte nicht partitioniert werden ? Nein, wenn Sie
beabsichtigen, die ganze Festplatte in einem Stück zu verwenden.
Partitionieren muß man nur, wenn man die Festplatte in mehrere Teile
aufteilen möchte. Warum MSDOS und Windows NT das nicht können - keine Ahnung !
Windows ist mit zu kompliziert und unberechenbar.
Kann man eine Datei ähnlich der Swap-Datei formatieren und mounten - klar, hier ein Beispiel, wir verwenden hierzu einfach wieder die Swapdatei, die wir zuvor von Ihrer vorherigen Aufgabe entbinden müssen:
root@tunix:/home/gast > swapoff /swapdatei
root@tunix:/home/gast > mke2fs /swapdatei 100000
mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
/swapdatei is not a block special device.
Proceed anyway? (y,n) y
Linux ext2 filesystem format
Filesystem label=
25064 inodes, 100000 blocks
5000 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
13 block groups
8192 blocks per group, 8192 fragments per group
1928 inodes per group
Superblock backups stored on blocks:
8193, 16385, 24577, 32769, 40961, 49153, 57345, 65537, 73729, 81921,
90113, 98305
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
root@tunix:/home/gast > mount -t ext2 -o loop /swapdatei /mnt
root@tunix:/home/gast >
Der entscheidende Unterschied zwischen dem Mounten einer Datei und dem
Mounten einer Festplatte ist die Option "-o loop", ansonsten gibt es keinen
Unterschied. So können Sie z.B. den maximalen Speicherplatzverbrauch eines
Users auf 100 MByte begrenzen, indem Sie dessen Homeverzeichnis auf die
gemountete Datei legen. Es gibt zwar kleine Geschwindigkeiteseinbußen, dafür
können Sie aber User beim Speicherplatzverbrauch in Ihre Schranken
verweisen. Es gibt jedoch als Alternative noch die sogenannten "quotas",
hierzu später mehr. Falls dieses Beispiel nicht so funktioniert, dann liegt
das wahrscheinlich daran, daß man in den Kernel erst die Fähigkeiten eines
Loopback Devices implementieren muß. Entweder man kopiliert den Kernel mit
dieser Option neu, oder man lädt diese Fähigkeit als Modul:
www:[/root]# insmod /lib/modules/2.2.9-17/block/loop.o
www:[/root]#
Danach klappt es auch mit dem mount -t ext2 -o loop ... Kommando.
Im Grunde haben alle Kommandos bisher (abgesehen von mount, mkswap, swapon, , free, mcopy, mknod) mit der Ein-und Ausgabeumleitung in der Shell zwischen STDIN, STDOUT, STDERR und den Devices zu tun.
Ich möchte nun an dieser Stelle einen kleinen Themenwechsel machen, da zur weiteren Nutzung der Devices weitere Kommando's eingeführt werden müssen, sprich einige Grundbefehle unter LINUX bzw. UNIX. Später werden wir auf die Devices noch einmal zurückkommen.
Nachdem das Anlegen einer Datei mit cat > datei klar ist, besteht natürlich der Bedarf danach, Dateien zu verschieben, zu löschen u.s.w., wie es auch von MSDOS her bekannt ist.
Wir möchten nun einmal Dateien z.B. kopieren. Beenden Sie hierzu Ihre Supervisor-Shell mit STRG-D und Sie befinden sich wieder als User gast eingeloggt, im System. Mit Hilfe von "cd" wechseln Sie in Ihr HomeVerzeichnis. Geben Sie "ls" ein:
gast@tunix:~ > ls
12 2 456 88 Desktop ttyS0
123 22 789 99 dirlist
gast@tunix:~ >
Wir haben in der Zwischenzeit einige Dateien und ein Device ttyS0 angelegt,
welches normalerweise im Verzeichnis /dev/ liegen sollte. Das soll uns im
Moment nicht weiter stören.
Wir möchten nun eine Datei kopieren. apropos copy liefert uns viele Hinweise zu Kopiermöglichkeiten, wir verwenden aber der Einfachheit halber cp:
gast@tunix:~ > cp 789 hallo
gast@tunix:~ > more hallo
ls: dffsfs: Datei oder Verzeichnis nicht gefunden
ls: 2: Datei oder Verzeichnis nicht gefunden
gast@tunix:~ > more 789
ls: dffsfs: Datei oder Verzeichnis nicht gefunden
ls: 2: Datei oder Verzeichnis nicht gefunden
gast@tunix:~ >
Das waren die Fehlermeldungen unserer Pipe-Umleitung, die wir gerade
kopierten, bzw. haben anzeigen lassen. Also keine Bange, die Kommando's sind
korrekt ausgeführt worden. Der Befehl "cp" besitzt einige ganz wichtige
Optionen:
Die Kombination cp -p -r Verzeichnis Ziel ermöglicht nun ein sauberes Backup eines ganzen Verzeichnisbaumes, z.B. auf eine Wechselfestplatte.
Man muß es ganz klar sagen: Bandlaufwerke sind Fossile der Vergangenheit, und es gibt keinen Grund mehr, diese überhaupt noch zu kaufen. Eine 10 GByte Festplatte im Wechselrahmen kostet heute nicht mehr, als 300 DM.
Wie läuft der Vorgang dann ab ?
Völlig geradlinig zu den bekannten Kommando's !
Man muß diese Wechselfestplatte zunächst formatieren, mounten, alle wichtigen Dateien darauf kopieren, unmounten und nach Hause mitnehmen. Dann erst sollte man den Server waschen, fönen, legen !-)
Mit cp kann man ein vollständiges Backup durchführen. Allerdings gibt es da ein Problem. Wenn man z.B. ein sogenanntes Grundbackup durchführen möchte, muß man alle Devices ja mitkopieren. Wir haben oben aber gelernt, daß Devices sich nicht so einfach kopieren lassen. In der Praxis ist ein Grundbackup unter UNIX völlig überflüssig. Alle Binärdateien haben wir ja von CDROM installiert. Wenn also die Festplatte defekt sein sollte, dan müssen wir ja sowieso das System neu aufbauen.
Was uns interessiert, sind ja nur alle Dateien, die sich seit der Installation verändert haben. Das sind Konfigurationsdateien, und Homeverzeichnisse mit den Userdaten. Wie also kann man alle Veränderungen, die z.B. am heutigen Tage am System vorgenommen wurden, auf z.B. ein Wechselplattenlaufwerk sichern ?
Zum einen kann man ein Backup-Programm, z.B. ARCSERV teuer kaufen. Andererseits weiß der erfahrene UNIX Systemadministrator, daß UNIX ein vollständiges Betriebsystem ist, wo im Prinzip alles bereits serienmäßig vorhanden ist, man muß nur wissen, wo !
Wir gehen nun einmal davon aus, daß wir eine AT-BUS Festplatte in einem Wechselrahmen gerade in das Gehäuse eingebaut haben. Diese Festplatten sind billig und eigenen sich hervorragend für Backups von großen SCSI Festplatten. Diese sei am 1. EIDE Kontroller als Slave angebunden. Falls Sie nicht genau wissen, wie man dieses feststellt, schauen Sie im BIOS nach. Aus unsererem Abschnitt über Devices und wie man diese anspricht, wissen wir, daß wird die Eide Festplatte zuerst formatieren müssen. Hierzu müssen wir zuerst Superuser werden:
gast@tunix:~ > su
Password:
root@tunix:/home/gast > mke2fs /dev/hdb 10000000
mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
Linux ext2 filesystem format
Filesystem label=
25064 inodes, 100000 blocks
5000 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
13 block groups
8192 blocks per group, 8192 fragments per group
1928 inodes per group
Superblock backups stored on blocks:
8193, 16385, 24577, 32769, 40961, 49153, 57345, 65537, 73729, 81921,
90113, 98305.....
......
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
root@tunix:/home/gast >
Fein, das war's auch schon mit der Formatierung. Nun müssen wir die
Festplatte in das Verzeichnissystem von UNIX irgendwo einklinken. Hierzu
gibt es einen Standard. Alles Dateisysteme, die nur vorübergehend
eingebunden werden, werden an das Verzeichnis /mnt gemountet. Vergessen Sie
also nicht, nach einem Backup die Festplatte zu unmounten. Wenn Sie nämlich
versuchen, Software von CDROM nachzuinstallieren, werden Sie feststellen,
daß das System auch hierfür den Mountingpoint /mnt benutzen möchte.
Zwei Dateisysteme an einem Mount-Point /mnt sind nicht zulässig. In diesem
Falle muß man dann unterhalb von /mnt/ weitere Verzeichnisse anlegen, z.B.
cdrom, hdb1, sdb1 ...
Wir mounten also einmal:
root@tunix:/home/gast > mount -t ext2 /dev/hdb /mnt
root@tunix:/home/gast >
Fertig ! Nun müssen wir alle wichtigen Dateien mit "cp -p -r" sichern. Bei
den Homeverzeichnissen werden wir beginnen:
root@tunix:/home/gast > mkdir /mnt/home
root@tunix:/home/gast > cp -p -r /home/* /mnt/home/
So, nun haben wir alle Userdateien gesichert. Zwei Dinge sind noch etwas
unbefriedigend. Erstens haben wir alle Dateien gesichert, was eventuell viel
Zeit in Anspruch nimmt. Nach der dummen Regel: time is money,
sollten wir nur diejenigen Dateien sichern, die sich gegenüber der
Erstinstalltion oder dem Vortag verändert haben.
Damit haben wir zwei Probleme. Erstens suchen wir nach einem Programm, welches erkennt, welche Dateien sich verändert haben, zum anderen wissen wir nicht, welche Dateien wir sichern müssen.
Normalerweise würde man den Lieferanten anrufen, und ein Backup-Programm bestellen. Wir wissen aber, daß LINUX ein vollständiges Betriebssystem ist.
Zum ersten Problem: Wir suchen also nach einem Programm, welches alle Dateien, die sich seit gestern verändert haben. Apropos hilft dort nicht weiter, man muß es wissen: Es ist das "find" Kommando:
root@tunix:/home/gast > touch 789
root@tunix:/home/gast > find . -mmin 2 -print|more
root@tunix:/home/gast > find . -mmin 1 -print|more
./789
root@tunix:/home/gast >
Mit touch faßt man eine Datei an. Das Modifikationsdatum und die Uhrzeit
werden dabei auf die aktuelle Zeit und das aktuelle Datum gesetzt. Das folgende "find" Kommando
sucht nun alle Dateien im aktuellen Verzeichnis (.) und unterhalb dieses
Verzeichnisses, welche sich in den letzten 2 Minuten geändert hat. Kein Ergebnis, da die Änderung ja noch keine
Minute zurückliegt. Das zweite "find" Kommando liefert eine Veränderung der letzen Minute.
Es ist logischerweise die Datei 789, die wir angefasst haben.
Wenn wir z.B. hingehen, alle Dateien eines Verzeichnisses "anfassen", können wir nun alle Dateien, die sich z.B. in der letzten Stunde geändert haben, herausfiltern und kopieren. Hierzu müssen wir an den "find" Befehl noch einige Kommando's anfügen. Schauen Sie mit "man find" nach, welche Optionen sich hierfür anbieten:
- mtime n
- ctime n
- atime n
- anewer file
- cnewer file
...
Die Option -mtime ist dazu geeignet, alle Dateien herauszufiltern, auf die vor genau n Tagen zugegriffen wurde, also nicht vorher und nicht später. Ansonsten müssen Sie cnewer, mnewer, anewer verwenden. Für tägliche, differenzielle Backups der Dateien des Vortages oder des heutigen Tages ist diese Option die wichtigste:
root@tunix:/home > cd /home
root@tunix:/home > find . -mtime 1 -exec cp -p {} /mnt/home/ ";"
root@tunix:/home >
Diese Kombination von Optionen möchte ich etwas genauer erläutern. "find . -mtime 1" sucht, vom Homeverzeichnis /home ausgehend, alle Homeverzeichnisse von Usern nach Veränderungen der letzten 24 Stunden ab. Diese Dateien werden mit der Option -exec cp .../mnt/home/ an den Copy-Befehl übergeben. Da find sich ja schon selber standardmäßig rekursiv durch die Verzeichnisse durchhangelt, muß also keine Option -r bei dem Copy Befehl angegeben werden. Die Option ";" am Ende des "-exec" Statements sorgt dafür, daß die Dateien Schrittweise an den cp Befehl übergeben werden, damit dieser die Dateien einzeln mit Ihren Rechten "-p" kopieren kann. Andernfalls würde "find" hunderte Dateien zuerst sammeln, und dann als Block an cp übergeben. Dafür ist cp aber nicht programmiert worden.
So, wir haben nun alle geänderten Dateien des Vortages auf unsere Wechselfestplatte gespeichert. Möchte wir jedoch diejenigen Dateien auf die Wechselfestplatte kopieren, die sich seit dem Vortag bis einschließlich heute geändert haben, so ist die Option -mnewer zuverwenden.
Nach dem Kopieren müssen wir die Wechselfestplatte nun wieder aus dem Verzeichnisbaum ausklinken, damit wir, ohne LINUX zu stören, diese abschalten, und aus dem Rahmen entnehmen können.
root@tunix:/home > umount /mnt/
root@tunix:/home >
Drehen Sie nun den Schlüssel der Wechselfestplatte herum, um den Strom abzuschalten und die Festplatte zu entriegeln. Sie können nun die Festplatte aus dem System entfernen.
Vergessen Sie bitte nicht, daß UNIX niemals ausgeschaltet wird. UNIX ist kein primitives Betriebssystem, wie z.B. NT. Sie können während des Laufes sogar Kontroller, Netzwerkkarten, u.s.w. ein-und ausbauen, ohne das das System neu gebootet werden muß. UNIX ist für "mission critical" Systeme ausgelegt, die über Jahre nicht neu gebootet werden müssen.
Unter UNIX kann man Verzeichnisse automatisch sichern lassen. Das wichtigste, was man immer sichern sollte, ist das Konfigurationsverzeichnis /etc/ und dasjenige des BIND 4.9.x Nameservers: /var/named. Die Konfiguration des neuen Nameservers BIND 8 befindet sich nun in /etc/.
Backup's werden unter UNIX mit dem Kommando tar mit anschließender Kompression des Archives durchgeführt. Hierzu startet man nun dar tar Kommando mit folgenden Optionen. Es werden nun alle Dateien in einem Archiv-File archivetc.tar.gz gesichert. Unter UNIX ist es üblich, in die Dateinamen wichtige Informationen hinein zu schreiben. Leider versteht MSDOS diese langen Dateinamen nicht.
www:[/]# tar -czvf archivetc.tar.gz /etc/*
...
etc/webmin/uninstall.sh
etc/wgetrc
etc/yp.conf
www:[/]# ls -la archivetc.tar.gz
-rw-r--r-- 1 root root 529544 Dec 14 14:20 archivetc.tar.gz
Wie man sehen kann, ist das Backup etwas größer, als vielleicht erwartet. Dies liegt daran, daß die Konfigurationsdateien des installierten Netscapes für den User root mitgesichert wurden. Darunter befinden sich auch die E-Mails und die Rubriken der abonnierten Newsgrups.
Diese Datei müssen wir täglich sichern. Daher empfielt es sich, die Kommando's zum erzeugen des Archives und die nun folgenden Sicherungsskritpe in eine Datei zu schreiben, damit man dieses dann durch den CRON Dämon automatisch durchführen lassen kann.
Hierzu bieten sich mehrere Varianten an. Die eine ist das kopieren via FTP auf einen anderen Server, der den FTP Dämon aktiviert hat. Dies kann z.B. auch ein Windows NT Server sein. Notfalls können Sie auch über ISDN auf Ihren WWW-Server sichern. In den Konfigurationsdateien sind keine unverschlüsselten Paßworte enthalten. Vergeben Sie auf dem Zielserver einen FTP Account. Nun besteht eine FTP Verbindung aus einem Client und einem Server. Wenig bekannt ist, daß man FTP Verbindungen automatisch durchführen kann, und zwar mit dem Programm autoftp.sh. Probieren Sie zuvor den gesamten Vorgang per Hand auszuführen !
#!/bin/bash
ftp -n localhost << EOF
user user01 123456
bin
prompt
lcd /
mkdir backups
cd backups
mput archiv*
EOF
Sie können sich dieses Programm einfach mit Copy und Paste mit der Maus in eine Datei speichern - zuvor müssen Sie in der Shell nur cat > autoftp.sh eingeben:
www:[/root]# cat >> autoftp.sh
#!/bin/bash
ftp -n localhost << EOF
user user01 123456
bin
lcd /
prompt
mkdir backups
cd backups
mput archiv*
EOF
www:[/root]# chmod u+x autoftp.sh
www:[/root]# ./autoftp.sh
mput archivetc.tar.gz? www:[/]#
Nicht vergessen: Skripte müssen, bevor sie ausgeführt werden können, das Executable Flag erhalten !
Falls das Skript aus unbekannten Gründen hängen sollte, was z.B. dann sein kann, wenn die Authentifizierung des FTP-Dämon nicht funktioniert, weil Ihr Server nicht in der Datei /etc/hosts oder im Nameserver des anderen Servers eingetragen ist, oder weil Paßwort oder Login nicht korrekt sind. In diesem Fall könnte es etwas dauern, bis das Skript einen Timeout erhält, und sich beendet. Dies kann einige Minuten dauern. Im Normalfall müsste das Skript nach ein paar Sekunden durchgelaufen sein.
Eine weitere Variante ist das Sichern auf Diskette. Hierzu legen Sie eine frisch formatierte Diskette ein, und kopieren mit den sog. MTOOLS diese Archivdatei einfach auf Diskette:
www:[/root]# mcopy archivetc.tar.gz a:
Das war's dann schon.
Für die meisten Anwender sind Unix Befehle eher unwichtig, falls Sie öfters mit Unix arbeiten kann ein gewisses Grundwissen nicht schaden. Hier eine Liste mit den wichtigsten Befehlen.
Unix-Befehle werden (fast) alle klein eingegeben, das heisst achten Sie auf Gross/Kleinschreibung! Jeder User besitzt ein sogenanntes Homeverzeichnis, das ist genau dort wo man sich nach dem LOGIN befindet. Alle Dateien/Verzeichnisse mit einen Punkt am Anfang sind "unsichtbar" (z.B: .profile). Man kann sie sehen, wenn man die Option "-all" angibt,
Verzeichnisnamen können abgekürzt werden: Das Zeichen "." steht für das aktuelle Verzeichnis, ".." steht für das Verzeichnis darüber und " " ersetzt das Homeverzeichnis.
Wer bereits mit Unix vertraut ist oder seine Kentnisse ausbauen möchte, kann in diesem Abschnitt Informationen nachschlagen die immer wieder mal gebraucht werden.
Für den intensiveren Alltagsgebrauch sollte man sich dann auch mit folgenden Befehlen vertraut machen:
Schauen wir uns dazu die Ausgabe von ls -all an:
total 951 drwxr-xr-x 7 moak users 1024 Mar 10 21:06 . drwxr-xr-x 6 root root 1024 Feb 22 03:30 .. -rw------- 1 moak users 1433 Mar 4 02:16 .addressbook -rw------- 1 moak users 3824 Mar 4 02:16 .addressbook.lu -rw------- 1 moak users 7184 Mar 10 21:04 .bash_history -rw-r--r-- 1 moak users 1345 Feb 21 23:00 .bashrc drwxr-x--- 2 moak users 1024 Mar 3 18:22 .bin -rw------- 1 moak users 1811 Mar 3 18:36 .calendar -rw-r--r-- 1 moak users 69267 Nov 29 18:31 .fvwm2rc95 -rw-r--r-- 1 moak users 10599 Mar 6 03:30 .pinerc -rw-r--r-- 1 moak users 296 Feb 21 16:42 .profile drwx------ 2 moak users 1024 Mar 6 01:34 Mail drwx------ 2 moak users 1024 Feb 27 20:02 data -rw------- 1 moak users 996 Mar 10 21:06 frong.txt -rw-r--r-- 1 moak users 840519 Feb 14 10:06 passwd.uni drwxr-xr-x 2 moak users 2048 Mar 3 21:48 public_html -rw-r--r-- 1 moak users 432 Mar 10 21:04 signature -rwx--x--- 1 moak users 1265 Jan 2 11:05 sigrot lrwxrwxrwx 1 moak users 4 Jan 20 14:34 tmp -> /tmp
Wir merken uns also die wichtigsten Dateien:
/etc/inittab Hieraus entnehmen wir die Verzeichnisse, in denen
die weiteren Skripte stehen.
/etc/rc.d/init.d/ In diesem Verzeichnis stehen die eigentlichen
Skripte
/etc/rc.d/init.d/rcX.d In diesen Verzeichnissen befinden sich entsprechend
dem Runlevel X diejenigen Dateien bzw. Links, die
bei einem Wechsel des Runlevels durchlaufen werden.
Wir sehen also nun viele Prozesse, die gestartet sind. Wir betrachten nun
einmal genauer den Sendmail Dämon. Wenn er läuft, dann kann man ihn auch
ansprechen. Wir unterhalten uns einmal mit dem Sendmail Dämon, so wie sich
Mailserver im Internet oder Intranet untereinander unterhalten:
gast@tunix:~ > telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 tunix.intra.net ESMTP Sendmail 8.9.3/8.9.3; Sun, 3 Oct 1999 10:40:14
+0200
help
214-This is Sendmail version 8.9.3
214-Topics:
214- HELO EHLO MAIL RCPT DATA
214- RSET NOOP QUIT HELP VRFY
214- EXPN VERB ETRN DSN
214-For more info use "HELP <topic>".
214-To report bugs in the implementation send email to
214- sendmail-bugs@sendmail.org.
214-For local information send email to Postmaster at your site.
214 End of HELP info
helo intra.net
250 tunix.intra.net Hello gast@localhost [127.0.0.1], pleased to meet you
mail from: gast@intra.net sender OK.
rcpt to: root@intra.net recipient OK.
data enter Data.
Hallo !
.
Message delivered !
Offensichtlich kann man sich mit Dämonen also einfach mit dem Telnet Client
unterhalten. Der Sendmail Dämon belegt Port 25. Ohne eine Angabe der Zahl 25
würden wir uns einfach nur auf unserer Maschinen einloggen. Mit "localhost"
wird ebenso wie unter MSDOS/Windows der eigene Host bezeichnet.
Hier noch der Befehl "top", der uns ständig alle wichtigen Information über
das System anzeigt:
10:50am up 2:50, 4 users, load average: 0.00, 0.01, 0.00
49 processes: 48 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: 0.9% user, 4.6% system, 0.0% nice, 94.4% idle
Mem: 127952K av, 86068K used, 41884K free, 42084K shrd, 13040K buff
Swap: 86684K av, 0K used, 86684K free 46752K cached
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
1419 gast 17 0 776 776 608 R 0 5.6 0.6 0:00 top
1 root 0 0 196 196 168 S 0 0.0 0.1 0:03 init
2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd
3 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kupdate
4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kpiod
5 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kswapd
6 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 md_thread
75 bin 0 0 404 404 320 S 0 0.0 0.3 0:00 portmap
79 root 0 0 484 484 396 S 0 0.0 0.3 0:00 rpc.ugidd
87 root 0 0 648 648 536 S 0 0.0 0.5 0:00 syslogd
91 root 0 0 832 832 392 S 0 0.0 0.6 0:00 klogd
127 at 0 0 552 552 456 S 0 0.0 0.4 0:00 atd
133 root 0 0 572 572 480 S 0 0.0 0.4 0:00 inetd
148 root 0 0 624 624 528 S 0 0.0 0.4 0:00 lpd
167 root 0 0 628 628 512 S 0 0.0 0.4 0:00 cron
174 root 0 0 724 724 536 S 0 0.0 0.5 0:00 nscd
175 root 0 0 724 724 536 S 0 0.0 0.5 0:00 nscd
Was bedeuten diese Spalten ?
PID Prozess ID ist eine laufende Nummer für Prozesse
USER Ist derjenige User, der den Prozess gestartet hat
PRI PRIorität gibt die Priorität vor anderen Prozessen an
NI Nice - Wert der Priorisierung von Prozessen
SIZE Größe des Binaries (theoretisch)
RSS Resident Size (tatsächlicher Speicherverbrauch)
SHARE Anteil in KBytes von Shared Libraries
STAT Der Status des Prozesses R=Running, S=Suspend, W=Waiting
LIB ???
%CPU Der momentane CPU Verbauch des Prozesses
%MEM Wieviel Prozent des Speichers verbraucht der Prozeß
TIME ist die Zeit, die der Prozeß schon an Zeit CPU - Zeit verbraucht hat
COMMAND ist das Programm oder Shellskript
LINUX bzw. UNIX ist sehr sparsam im Speicherverbrauch. Programme, Dämonen
und Prozesse nutzen gemeinsam eventuelle Bibliotheken. Das bedeutet, wenn
z.B. der Apache Webserver mehrfach gestartet wird, wird kaum mehr Speicher
verbraucht, als wenn nur ein Apache-Webserver gestartet wäre. Unter Windows
NT ist dies nicht so. Hier können Prozesse keinen Code gemeinsam nutzen.
Dementsprechend viel RAM wird unter NT verschwendet. Man muß bei NT mit ca.
2-20 Fach mehr RAM - Verbauch rechnen, gegenüber UNIX.
Starten Sie einmal TOP und schauen Sie, was so auf Ihrem Rechner alles
passiert.
Wir stoppen den Sendmail Dämon:
root@tunix:/home/gast > /etc/rc.d/init.d/sendmail stop
Shutting down SMTP port: done
root@tunix:/home/gast > telnet localhost 25
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Verbindungsaufbau abgelehnt
root@tunix:/home/gast >
Nun kann man af Port 25 nicht mehr auf den Sendmail Dämon zugreifen. Auch in
"pstree" erscheint der Sendmail Dämon nicht mehr:
root@tunix:/home/gast > pstree
init-+-atd
|-cron
|-inetd
|-kbgndwm
|-kflushd
|-kfm-+-kvt---bash---su---bash---joe
| -kvt---bash---su---bash---pstree
|-klogd
|-kpanel
|-kpiod
|-krootwm
|-kswapd
|-kupdate
|-login---bash-+-startx---xinit-+-X
| | -kwm
| -tee
|-lpd
|-md_thread
|-5*[mingetty]
|-nscd---nscd---5*[nscd]
|-portmap
|-rpc.ugidd
-syslogd
root@tunix:/home/gast >