| 
            
              | Nutzerkommandos - Netzwerk |  |  
            
              | Aufruf: ftp [OPTIONEN] [host] |  Das File Transfer Protocol ermöglicht den Austausch von Daten
          zwischen einem FTP-Server und den Clients. Beim Kommando ftp handelt es sich um
          einen einfachen, kommandozeilen-orientierten FTP-Client, der jeder Distribution beiliegen
          sollte. Der Zugang auf einen FTP-Server erfordert prinzipiell die Angaben von
          Nutzerkennzeichen und einem Passwort. Alle Server, die allgemein zugängliche Daten
          zur Verfügung stellen, ermöglichen daher die Anmeldung als Nutzer ftp
          oder anonymous. Als Passwort ist die Angabe der eigenen email-Adresse üblich
          (aber nicht unbedingt erforderlich). ftp startet, wird es ohne Angabe eines Zielrechners aufgerufen, im interaktiven
          Modus und erwartet weitere Eingaben. Als eine der ersten Aktionen ist die Verbindung zu
          einem Server mit dem Kommando open Servername sicherlich sinnvoll: 
            
              | user@sonne> ftpftp> open localhost
 Connected to localhost.
 220 sonne.galaxis.de FTP server (Version 6.2/OpenBSD/Linux-0.11) ready.
 Name (localhost:user): ftp
 331 Guest login ok, send your complete e-mail address as password.
 Password:
 230 Guest login ok, access restrictions apply.
 Remote system type is UNIX.
 Using binary mode to transfer files.
 ftp>
 |  Zur Login-Aufforderung gelangt man unmittelbar, wenn der Zielrechner per Kommandozeile
          angegeben wird. Die Kommandos von ftp lassen sich grob in drei Gruppen einordnen: Kommandos zur
          Zugriffssteuerung, Kommandos zur Vereinbarung der Übertragungsparameter und
          Kommandos zum Datentransfer, wobei in diesem Abschnitt einzig elementare Kommandos zur
          Datenübertragung von Interesse sein sollen. Den Inhalt des aktuellen Verzeichnisses (Kommando pwd) auf dem FTP-Server
          zeigen ls oder dir an. Um das Verzeichnis auf dem Server zu wechseln, gibt
          man cd [Verzeichnisname] ein. Ohne Angabe des Verzeichnisses landet man im
          FTP-Basisverzeichnis des Servers. Datenübertragungen finden nun zwischen aktuellem Serververzeichnis und aktuellem
          Verzeichnis auf dem lokalen Rechner statt. Letzteres kann mit dem Befehl lcd
          [Verzeichnisname] geändert werden. Dateien vom Server lädt man mit get
          Datei herunter, möchte man Metazeichen im Dateinamen verwenden, nutzt man
          mget Datei_mit_Metazeichen: 
            
              | user@sonne> ftp localhostConnected to localhost.
 220 spitz.maus.de FTP server (Version 6.2/OpenBSD/Linux-0.11) ready.
 Name (localhost:user): ftp
 331 Guest login ok, send your complete e-mail address as password.
 Password:
 230 Guest login ok, access restrictions apply.
 Remote system type is UNIX.
 Using binary mode to transfer files.
 ftp> cd ftp1
 250 CWD command successful.
 ftp> pwd
 257 "/pub/ftp1" is current directory.
 ftp> lcd /tmp
 Local directory now /tmp
 ftp> ls
 200 PORT command successful.
 150 Opening ASCII mode data connection for '/bin/ls'.
 foo1    foo2    foo3
 226 Transfer complete.
 ftp> mget f*
 mget foo1? y
 200 PORT command successful.
 150 Opening BINARY mode data connection for 'foo1' (0 bytes).
 226 Transfer complete.
 mget foo2? n
 mget foo3? n
 ftp> bye
 221 Goodbye.
 |  Die Gegenrichtung, das Senden von Dateien zum Server, ist bei anonymem FTP
          meist untersagt. Möglich ist es mit den Kommandos put Datei bzw. mput
          Datei_mit_Metazeichen. Auch ein Anlegen von Verzeichnissen kann bei
          entsprechender Konfiguration erlaubt sein mkdir [Verzeichnisname]. 
            
              | Aufruf: ifconfig [interface] |  Das Kommando ifconfig dient dem Administrator zur Konfiguration der
          Netzwerkschnittstellen. Der "normale" Benutzer kann sich einzig die aktuellen
          Konfigurationseinstellungen anzeigen lassen. Ohne Argumente aufgerufen, listet
          ifconfig die Einstellungen aller Schnittstellen auf, mit dem Namen einer
          Schnittstelle nur deren Charakteristiken: 
            
              | # Der Pfad /sbin ist selten in $PATH eines Nutzers
              enthalten, deswegen Aufruf mit vollständigem Pfaduser@sonne> /sbin/ifconfig
 eth0      Link encap:Ethernet  HWaddr
              00:90:27:8F:FC:86
 inet addr:192.168.99.127 
              Bcast:192.168.99.255  Mask:255.255.255.0
 UP brOADCAST RUNNING
              MULTICAST  MTU:1500  Metric:1
 RX packets:8203 errors:0
              dropped:0 overruns:0 frame:0
 TX packets:7363 errors:0
              dropped:0 overruns:0 carrier:0
 collisions:0
              txqueuelen:100
 Interrupt:10 Base
              address:0x8000
 
 lo        Link encap:Local Loopback
 inet addr:127.0.0.1 
              Mask:255.0.0.0
 UP LOOPBACK RUNNING 
              MTU:3924  Metric:1
 RX packets:94 errors:0
              dropped:0 overruns:0 frame:0
 TX packets:94 errors:0
              dropped:0 overruns:0 carrier:0
 collisions:0
              txqueuelen:0
 |  Die interessanteren Informationen zu einer Schnittstelle sind sicherlich die
          IP-Adresse (inet addr), die Broadcast-Adresse (Bcast), die Subnetzmaske (Mask). "UP"
          besagt, dass die Schnittstelle aktiv ist, unter "RX" und "TX" sind einige Informationen
          über empfangene und gesendete Pakete abzulesen. 
            
              | Aufruf: ping [OPTIONEN] host |  Ob ein Rechner derzeit im Netzwerk ansprechbar ist, verrät ping. Das
          Kommando sendet kleine Pakete an den Zielrechner und misst die Antwortzeiten. Der Rechner
          kann mittels seiner IP-Adresse oder als symbolischer Name angegeben werden. In letzterem
          Fall muss dieser aber auflösbar sein (irgendein Mechanismus muss zum Namen die
          entsprechende Adresse liefern können. 
            
              | user@sonne> ping erdePING erde.galaxis.de (192.168.100.111): 56 data bytes
 64 bytes from 192.168.100.111: icmp_seq=0 ttl=253 time=23.118 ms
 64 bytes from 192.168.100.111: icmp_seq=1 ttl=253 time=9.612 ms
 64 bytes from 192.168.100.111: icmp_seq=2 ttl=253 time=11.366 ms[Ctrl]+[C]
 --- erde.galaxis.de ping statistics ---
 3 packets transmitted, 3 packets received, 0% packet loss
 round-trip min/avg/max = 9.612/14.698/23.118 ms
 |  ping wiederholt den Sendevorgang bis zum expliziten Abbruch durch Eingabe von
          [Ctrl]-[C]. Anschließend verrät es eine Statistik mit u.a. verlorenen
          Paketen (Zeitüberschreitung beim Empfang der Antwort), und den Zeiten der
          schnellsten/durchschnittlichen/langsamsten Übertragung. Mit der Option -c Anzahl lässt sich die Anzahl der Testdurchläufe von
          vornherein beschränken. Ist man an der Aufzeichnung des Weges, den das Paket
          nimmt, interessiert, ist die Option -R nütze. Die weiteren Optionen betreffen
          im Wesentlichen die Manipulation spezieller Felder des IP-Headers sowie das Aussehen
          der Testpakete (zum Ändern der Paketgröße (normal 56 Bytes) wähle
          man -s Bytes): 
            
              | user@sonne> ping -R -c 1 -s 512
              www.linuxfibel.dePING www.linuxfibel.de (195.211.141.227): 512 data bytes
 520 bytes from 195.211.141.227: icmp_seq=0 ttl=125 time=30.403 ms
 RR:     sonne.galaxis.de (192.168.99.127)
 erde.galaxis.de (192.168.51.1)
 mars.galaxis.de (192.168.5.2)
 aura.saxsys.de (195.211.141.226)
 www.linuxfibel.de (195.211.141.227)
 base.saxsys.de (192.168.5.1)
 amor.saxsys.de (192.168.51.10)
 192.168.99.2
 sonne.galaxis.de (192.168.99.127)
 0.0.0.89        (truncated route)
 --- www.linuxfibel.de ping statistics ---
 1 packets transmitted, 1 packets received, 0% packet loss
 round-trip min/avg/max = 30.403/30.403/30.403 ms
 |  
            
              | Aufruf: netstat [OPTIONEN] |  netstat ist ein Kommando, um Fehler oder Schwachpunke in der
          Netzwerkkonfiguration zu lokalisieren. Die Behebung der Fehler bleibt zwar dem
          Administrator vorbehalten, aber die verschiedenen Informationen werden auch dem normalen
          Benutzer nicht vorenthalten. Aus der Fülle der Optionen möchten wir nur einige wenige vorstellen. Ohne Option gerufen, listet netstat den Status aller geöffneter
          Sockets (Kommunikationsendpunkte) auf. Etwas Licht ins Dunkel bringt da -p, das
          die Namen der Programme anzeigt, die den Socket eröffnet haben: 
            
              | user@sonne> netstat -p | head -7(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
 Active Internet connections (w/o servers)
 Proto Recv-Q Send-Q Local
              Address           Foreign
              Address         State
 PID/Program name
 Active UNIX domain sockets (w/o servers)
 Proto RefCnt Flags      
              Type      
              State         I-Node PID/Program
              name    Path
 unix  1      [ N ]      
              StrEAM     CONNECTED     2675  
              -                  
              @000004b8
 unix  1      [ N ]      
              StrEAM     CONNECTED     2271  
              394/netscape        @000003ee
 unix  1      [
              ]         StrEAM    
              CONNECTED     623   
              360/kpanel          @000000bf
 |  Eine Statistik der aktiven Verbindungen erhält man mit der Option -a 
            
              | user@sonne> netstat -a | head
              -10Active Internet connections (servers and established)
 Proto Recv-Q Send-Q Local Address      Foreign
              Address    State
 tcp        0     0
              *:6000            
              *:*               
              LISTEN
 tcp        0     0
              *:auth            
              *:*               
              LISTEN
 tcp        0     0
              *:ssh             
              *:*               
              LISTEN
 tcp        0     0
              *:swat            
              *:*               
              LISTEN
 tcp        0     0
              *:http-rman       
              *:*               
              LISTEN
 tcp        0     0
              *:finger          
              *:*               
              LISTEN
 tcp        0     0
              *:pop3            
              *:*               
              LISTEN
 tcp        0     0
              *:login           
              *:*               
              LISTEN
 |  Die Routing-Tabelle bringt die Option -r zum Vorschein: 
            
              | user@sonne> netstat -rKernel IP routing table
 Destination   Gateway     
              Genmask       Flags  MSS Window  irtt
              Iface
 loopback     
              *           
              255.0.0.0     U        0
              0          0 lo
 |  Und die Statistiken bezüglich der verschiedenen Protokolle sollen auch noch
          Erwähnung finden (Option -s): 
            
              | user@sonne> netstat -sIp:
 580 total packets received
 0 forwarded
 0 incoming packets discarded
 0 incoming packets delivered
 580 requests sent out
 Icmp:
 ...
 Tcp:
 35 active connections openings
 0 passive connection openings
 0 failed connection attempts
 0 connection resets received
 0 connections established
 580 segments received
 580 segments send out
 0 segments retransmited
 0 bad segments received.
 0 resets sent
 Udp:
 ...
 TcpExt:
 |  
            
              | Aufruf: nslookup [-option ...] [host-to-find |
              -[server]] |  Wie erhält man zu einem Rechnernamen dessen IP-Adresse? Oder man kennt die
          Adresse und würde gern den zugehörigen Namen erfahren? Dann sollte man den
          Domain Name Service befragen und mit dem Werkzeug nslookup eine Anfrage
          stellen. 
            
              | user@sonne> nslookup www.gnu.orgServer:  localhost
 Address:  127.0.0.1
 
 Name:    www.gnu.org
 Address:  198.186.203.18
 
 user@sonne> nslookup 198.186.203.18
 Server:  localhost
 Address:  127.0.0.1
 
 Name:    gnudist.gnu.org
 Address:  198.186.203.18
 |  Im interaktiven Modus (Aufruf ohne Angabe eines Rechnernamens) lassen sich dem Server
          eine Reihe weiterer Informationen entlocken. Da die damit verbundenen Möglichkeiten
          den Rahmen des Erträglichen sprengen würden, schauen wir uns nur an, welche
          Information zu "www.gnu.org" verfügbar sind: 
            
              | user@sonne> nslookupDefault Server:  localhost
 Address:  127.0.0.1
 
 > set type=any
 > www.gnu.org
 Server:  localhost
 Address:  127.0.0.1
 
 Non-authoritative answer:
 www.gnu.org     internet address = 198.186.203.18
 
 Authoritative answers can be found from:
 gnu.org nameserver = ns1.gnu.org
 gnu.org nameserver = sfi.santafe.edu
 gnu.org nameserver = nic.cent.net
 gnu.org nameserver = ns2.cent.net
 ns1.gnu.org     internet address = 158.121.106.18
 > exit
 user@sonne>
 |  Mit "Non-authoritative answer" deutet uns das Programm schon an, dass andere
          DNS-Server eventuell genauere Informationen liefern könnten. Also versuchen wir eine
          Anfrage bei "ns1.gnu.org", indem wir den Servernamen auf der Kommandozeile einem
          Minus/Leerzeichen folgen lassen: 
            
              | user@sonne> nslookup -
              ns1.gnu.orgDefault Server:  ns1.gnu.org
 Address:  158.121.106.18
 
 > set type=any
 > www.gnu.org
 Server:  ns1.gnu.org
 Address:  158.121.106.18
 
 www.gnu.org     CPU = INTEL-686 OS = GNU/LINUX
 www.gnu.org     preference = 10, mail exchanger =
              mescaline.gnu.org
 www.gnu.org     preference = 20, mail exchanger = tug.org
 www.gnu.org     internet address = 198.186.203.18
 gnu.org nameserver = ns1.gnu.org
 gnu.org nameserver = sfi.santafe.edu
 gnu.org nameserver = nic.cent.net
 gnu.org nameserver = ns2.cent.net
 mescaline.gnu.org       internet address =
              158.121.106.21
 tug.org internet address = 158.121.106.10
 ns1.gnu.org    internet address = 158.121.106.18
 sfi.santafe.edu internet address = 192.12.12.1
 nic.cent.net    internet address = 140.186.1.4
 ns2.cent.net    internet address = 140.186.1.14
 > exit
 user@sonne>
 |  Jetzt wissen wir, dass Linux den Gnu-Rechner dirigiert, ein Pentium (oder Klone) in
          seinem Inneren den Takt angibt und wir kennen die verantwortlichen Mailserver und... 
            
              | Aufruf: telnet [OPTIONEN] [host [port]] |  telnet ermöglicht eine Terminal-Sitzung auf einem entfernten Rechner, d.h.
          man arbeitet bei bestehender Verbindung (fast) genauso, als würde man auf dem
          lokalen Rechner die Befehle eintippen. telnet wird aus Sicherheitsgründen (z.B. fehlender
          Passwort-Verschlüsselung) häufig deaktiviert, aber dieses Vorgehen wie auch die
          Möglichkeiten zur Konfiguration sind Bestandteil des Netzwerkkapitels zu Telnet. Ohne Argumente gerufen, wechselt das Kommando in den interaktiven Modus und deutet die
          Bereitschaft zur Entgegennahme der Kommandos an: 
            
              | user@sonne> telnettelnet> help
 Commands may be abbreviated.  Commands are:
 
 close           close current
              connection
 logout          forcibly logout remote
              user and close the connection
 display         display operating
              parameters
 mode            try to enter
              line or character mode ('mode ?' for more)
 open            connect to a
              site
 quit            exit
              telnet
 send            transmit
              special characters ('send ?' for more)
 set             set
              operating parameters ('set ?' for more)
 unset           unset operating
              parameters ('unset ?' for more)
 status          print status
              information
 toggle          toggle operating
              parameters ('toggle ?' for more)
 slc             change
              state of special charaters ('slc ?' for more)
 z              
              suspend telnet
 !              
              invoke a subshell
 environ         change environment variables
              ('environ ?' for more)
 ?              
              print help information
 telnet> quit
 user@sonne>
 |  Um die Verbindung zu einem Rechner herzustellen, ist nun open Rechnername
          [Port] einzugeben. 
            
              | telnet> open localhostTrying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.
 Welcome to Linux (i386) - Kernel 2.2.16 (pts/3).
 
 sonne login:
 |  Als Nutzerkennzeichen ist nun ein auf dem entfernten Rechner existierendes Kennzeichen
          zu wählen. Nach anschließender Verifizierung des Passwortes eröffnet man
          eine Sitzung, auf der analog zu einem lokalen Konsolen-Login verfahren wird. Die Sitzung
          beendet man mittels logout oder exit. telnet kann dem Zielrechner auch per Kommandozeilenargument mitgeteilt werden,
          dann wird unverzüglich mit dem Verbindungsaufbau begonnen und mit Beenden der
          entfernten Terminalsitzung ist auch telnet beendet. Der Telnet-Dienst verwendet Port 23,
          durch Angabe eines alternativen Ports kann auch mit anderen Diensten kommuniziert werden,
          als Beispiel führen wir eine kurzen Dialog mit dem sendmail-Mailserver (am
          Port 25): 
            
              | user@sonne> telnet sonne smtpTrying 192.168.10.101...
 Connected to sonne.galaxis.de
 Escape character is '^]'.
 220 sonne.galaxis.de ESMTP Sendmail 8.8.8/8.8.8; Mon, 19 Apr 1999 14:44:05 +0200
 HELO galaxis.de
 250 sonne.galaxis.de Hello user@sonne.galaxis.de [192.168.10.101], pleased to meet
              you
 HELP
 214-This is Sendmail version 8.8.8
 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
 MAIL FROM:user@galaxis.de
 250 user@galaxis.de... Sender ok
 RCPT TO:root@sonne.galaxis.de
 250 root@sonne.galaxis.de... Recipient ok
 DATA
 354 Enter mail, end with "." on a line by itself
 <ENTER>
 Date: Mon Apr 1 11:11:11 MEST 2000
 From: <user@sonne.galaxis.de>
 To: <root@sonne.galaxis.de>
 Subjects: demonstration
 this is the mail body.
 .
 250 OAA01356 Message accepted for delivery
 QUIT
 221 sonne.galaxis.de closing connection
 Connection closed by foreign host.
 |  Von der Optionen sind -l Nutzer (kleines L) und -x interessant. Ersteres
          teilt telnet mit, dass wir eine Verbindung unter dem Nutzerkennzeichen "Nutzer"
          wünschen. Die "login"-Aufforderung entfällt damit. Und "-x" ermöglicht
          eine verschlüsselte Datenübertragung, allerdings nur, wenn Client und Server
          diese unterstützen. 
            
              | Aufruf: traceroute [OPTIONEN] host
              [Paketgröße] |  traceroute verfolgt die Route, die ein Paket zu einem Zielrechner (anzugeben
          als IP-Adresse oder symbolischer Name) nimmt. Das Kommando nutzt die Tatsache, dass ein
          jedes IP-Paket nur eine bestimmte Lebensdauer haben kann (TTL time to live). Ist diese
          Dauer abgelaufen, wird der Rechner, bei dem der Verfall auftrat, eine Fehlernachricht an
          den Absender schicken. traceroute erhöht nun in jedem Schritt das TTL-Feld des Paketes, so dass
          es vom jeweils nächsten Vermittlungsrechner verworfen wird. Pro Knotenrechner wird
          der Vorgang drei Mal wiederholt (Ändern mit -q Anzahl) und die Zeiten
          gemessen. Auf die Reaktion eines Rechners wird 3 Sekunden gewartet (Ändern mit -w
          Sekunden). 
            
              | user@sonne> /usr/sbin/traceroute
              www.gnu.orgtraceroute to www.gnu.org (198.186.203.18), 30 hops max, 40 byte packets
 1  erde.galaxis.de (194.180.239.1)  0 ms  0 ms  1 ms
 2  sphere.galaxis.de (192.168.5.1)  1 ms  1 ms  1 ms
 3  195.211.141.1 (195.211.141.1)  3 ms  3 ms  3 ms
 4  br2.frankfurt.gigabell.net (195.211.224.12)  18 ms  19
              ms  18 ms
 5  cr1.frankfurt.gigabell.net (195.211.199.30)  17 ms  19
              ms  17 ms
 6  atm1-145.cr1.newyork.gigabell.net (195.211.114.30)  111 ms 
              113 ms  113 ms
 7  usa-gate1.cr2.newyork.lightning.net (216.66.2.77)  110 ms 
              112 ms  110 ms
 8  a4-0-0.br1.nycmny.us.lightning.net (216.66.3.1)  188 ms  173
              ms  139 ms
 9  a2-0-0.br1.snvaca.us.lightning.net (216.66.3.6)  179 ms  177
              ms  186 ms
 10  s0-1-0.br1.plalca.us.lightning.net (216.66.2.90)  182 ms  186
              ms  180 ms
 11  paix2.via.net (198.32.175.80)  185 ms  180 ms  183 ms
 12  209.81.23.54 (209.81.23.54)  185 ms  180 ms  181 ms
 13  gnudist.gnu.org (198.186.203.18)  184 ms  182 ms  186
              ms
 |  
            
              | Aufruf:    ypwhich [OPTIONEN] |  ypwhich soll hier stellvertretend für die Kommandos des Network Information Systems stehen. Dieses System ist ein
          Verzeichnisdienst, mit dem bestimmte Konfigurations- und Verwaltungsdateien für
          einen Bereich des Netzwerkes (die NIS-Domäne) gleichsam zur Verfügung gestellt
          werden können. Somit ist es z.B. möglich, dass sich die Benutzer an einem
          beliebigen Rechner eines NIS-Bereiches anmelden und überall dieselbe Umgebung
          vorfinden. Ohne Argumente aufgerufen, meldet das Kommando den konfigurierten NIS-Server, der
          für den Rechner verantwortlich ist. Mit der Option -x werden alle Dateien
          aufgelistet, die anstatt lokal vom NIS-Server bezogen werden: 
            
              | user@sonne> ypwhichnis.galaxis.de
 user@sonne> ypwhich -x
 Benutze "ethers"        für Map
              "ethers.byname"
 Benutze "aliases"       für Map "mail.aliases"
 Benutze "services"      für Map "services.byname"
 Benutze "protocols"     für Map "protocols.bynumber"
 Benutze "hosts"         für Map
              "hosts.byname"
 Benutze "networks"      für Map "networks.byaddr"
 Benutze "group"         für Map
              "group.byname"
 Benutze "passwd"        für Map
              "passwd.byname"
 |  |