Willemer - Wie Werde Ich UNIX-Guru

download Willemer - Wie Werde Ich UNIX-Guru

of 725

Transcript of Willemer - Wie Werde Ich UNIX-Guru

  • Wie werde ich

    Arnold Willemer

    UNIX-Guru?

    Galileo Computing

    Hauke HaienDiese PDF-PrintVersion wurde erstellt von: Hauke

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 5 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Inhalt

    Vorwort 17

    1 UNIX anwenden 23

    1.1 Besonderheiten von UNIX 231.1.1 Das offene System 231.1.2 Die UNIX-Varianten 24

    1.2 Personenkontrolle 26

    1.3 Fragen Sie Dr. UNIX 281.3.1 Unterteilung 291.3.2 Sonderzeichen in Hilfetexten 30

    1.4 So sage ich es meinem UNIX 31

    1.5 Operationen mit Dateien 321.5.1 Eine kleine Beispielsitzung 331.5.2 Dateien anzeigen: ls 351.5.3 Dateien kopieren: cp 371.5.4 Dateien verschieben oder umbenennen: mv 381.5.5 Dateien lschen: rm 381.5.6 Verzeichnisbefehle: mkdir, rmdir, cd und pwd 38

    1.6 Der UNIX-Verzeichnisbaum 391.6.1 Navigation 391.6.2 Ein Blick unter die Haube: i-nodes 401.6.3 Was ist wo? 411.6.4 Suche im Verzeichnisbaum: nd 43

    1.7 Dateieigenschaften 461.7.1 Eigentmer wechseln: chown und chgrp 471.7.2 Berechtigungen: chmod 481.7.3 Neuer Zeitstempel: touch 521.7.4 Links: Zwei Namen, eine Datei 521.7.5 Besondere Dateien 561.7.6 Der Dateityp: le 56

    1.8 Zugriff auf mehrere Objekte 571.8.1 Wildcards: *, ? und die eckigen Klammern 571.8.2 Sonderzeichen als Parameter 58

    1.9 Editoren 581.9.1 vi 591.9.2 emacs 69

    Inhalt 5

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 6 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    1.10 UNIX-Kommandos verknpfen 711.10.1 Ein- und Ausgabe als Datenstrom 721.10.2 Umleitung 721.10.3 Piping 741.10.4 Verschachtelte Befehlsargumente 75

    1.11 Praktische Helfer 761.11.1 Ausgabe einer Datei: cat 761.11.2 Seitenweise: more 761.11.3 Durchsuchungsbefehl: grep 771.11.4 Wenn ich auf das Ende sehe: tail 781.11.5 Wortzhler: wc 781.11.6 sort 781.11.7 sed 791.11.8 awk 791.11.9 Weitere Werkzeuge im berblick 84

    1.12 Regulre Ausdrcke 84

    1.13 Pack deine Sachen und geh... 871.13.1 Verschnren: tar 871.13.2 Zusammenpressen: compress und gzip 891.13.3 Kombination aus Packen und Pressen 89

    1.14 Prozesse 901.14.1 Hintergrundbearbeitung und Reihenfolge 901.14.2 Prioritten: nice 921.14.3 Ausloggen bei laufendem Prozess: nohup 931.14.4 Prozessliste anzeigen: ps 931.14.5 Stoppen eines Prozesses: kill 941.14.6 Programmabbruch 95

    1.15 Umgebungsvariablen 96

    1.16 Die Shell 981.16.1 alias 991.16.2 Startupdateien der Shell 1001.16.3 Bourne-Shell (sh) und POSIX 1001.16.4 Korn-Shell (ksh) 1011.16.5 C-Shell (csh) 1041.16.6 Bourne-Again-Shell (bash) 107

    1.17 Ausgaben auf dem Drucker 1081.17.1 BSD-Unix: lpr, lpq und lprm 1091.17.2 AT&T: lp, lpstat und cancel 1101.17.3 Druck formatieren: pr und a2ps 111

    1.18 Zeitversetztes Arbeiten 1111.18.1 Die aktuelle Zeit 1121.18.2 Regelmige Arbeiten: crontab 113

    6 Inhalt

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 7 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    1.18.3 Zeitversetzter Job: at 114

    1.19 Diskettenlaufwerke 1151.19.1 Formatieren und Beschreiben 1151.19.2 mount und eject 1161.19.3 tar und sync 1161.19.4 MS-DOS-Disketten 116

    1.20 CD-ROMs 118

    1.21 CD-Brenner 1181.21.1 Datensicherung 1191.21.2 RW-Medien 1211.21.3 Multisession 1211.21.4 Audio-CDs 122

    1.22 Notebooks 1241.22.1 PCMCIA 1251.22.2 Problematische Peripherie 1261.22.3 Software fr den Akku 126

    2 Administration 129

    2.1 Die Arbeitsumgebung des Administrators 133

    2.2 Administrationstools 134

    2.3 Start des Systems 1362.3.1 Bootprompt 1372.3.2 Bootkonguration: lilo 1382.3.3 Durchlaufen der Runlevel 1392.3.4 BSD: /etc/rc 1412.3.5 System V: init.d 1422.3.6 Kongurationsdateien 144

    2.4 Herunterfahren: shutdown 1452.4.1 Alles bereit zum Untergang? 1472.4.2 Wechsel in den Single-User-Modus 148

    2.5 Benutzerverwaltung 1492.5.1 Passwortverwaltung unter UNIX 1502.5.2 Die Benutzerdatei /etc/passwd 1512.5.3 Verborgene Passwrter: shadow 1532.5.4 Benutzerpege automatisieren 1542.5.5 Grundeinstellungen: /etc/prole 1552.5.6 Verzeichnisprototyp: /etc/skel 1572.5.7 Gruppenverwaltung 1582.5.8 Benutzerberwachung 1592.5.9 Kurzfristiger Benutzerwechsel: su 1612.5.10 Administrationsaufgaben starten: sudo 162

    Inhalt 7

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 8 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    2.5.11 Pseudobenutzer zum Shutdown 164

    2.6 Hardwarezugriff unter UNIX: /dev 1652.6.1 Aufgaben eines Treibers 1662.6.2 Gertedateien 1672.6.3 Umgang mit Gertedateien 1692.6.4 Gertenamen 171

    2.7 Festplatten 1722.7.1 SCSI-Platten 1742.7.2 IDE-Platten 1752.7.3 Inbetriebnahme 1762.7.4 RAID-Systeme 1772.7.5 Partitionieren 1812.7.6 Dateisystem erstellen 1832.7.7 Swapping 1842.7.8 Einbinden eines Dateisystems: mount 1862.7.9 Konsistenz der Dateisysteme 1892.7.10 Journal-Dateisysteme 1902.7.11 Belegungslisten: df und du 1912.7.12 Zuteilung des Plattenplatzes: quota 1922.7.13 Maximalwerte 194

    2.8 Datensicherung 1962.8.1 Vorberlegungen 1972.8.2 Das Bandlaufwerk 1992.8.3 dump 2002.8.4 tar (tape archiver) 2042.8.5 cpio 2082.8.6 Medien kopieren: dd 2112.8.7 Andere Sicherungstools: AMANDA 2122.8.8 Beispiel fr eine Sicherung auf CD-RW 215

    2.9 Software installieren 2172.9.1 make als Installationswerkzeug 2182.9.2 Solaris Packages 2192.9.3 HP-UX: SD-UX 2202.9.4 Red Hat Package Manager 222

    2.10 Druckeradministration 2242.10.1 bersicht 2262.10.2 BSD-Unix: lpd, lpr, lpq und lprm 2272.10.3 Linux-PC als Druckserver 2312.10.4 System V: lpsched, lp, lpstat und cancel 2342.10.5 LPRng 2382.10.6 CUPS Common UNIX Printing System 239

    8 Inhalt

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 9 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    2.11 Terminals 2412.11.1 Konguration der Terminals 2422.11.2 Die Terminalvariable TERM 2442.11.3 termcap 2452.11.4 terminfo 2472.11.5 Wenn das Terminal durcheinander ist 248

    2.12 Anschluss eines Modems 249

    2.13 Tuning 2502.13.1 Optimierung des Dateisystems 2512.13.2 Wissen, wo der Schuh drckt 254

    2.14 Informationen sammeln 2582.14.1 Versionsinformationen: uname 2592.14.2 Der syslog-Dmon und die messages-Datei 2602.14.3 Umgang mit groen Protokolldateien 2622.14.4 Briefe aus dem Nirvana 2652.14.5 Bootzeitpunkt und Systemlast: uptime 2662.14.6 Prozessbeobachter 2672.14.7 Nicht immer mit Ttungsabsicht: kill 2712.14.8 Offene Dateien 2732.14.9 Programmzusammenbrche (Coredump) 2752.14.10 Systemabsturz (Kernel-Panic) 276

    2.15 Der Kernel 2772.15.1 Dynamische Bibliotheken 2792.15.2 Module 280

    3 Netzwerk 282

    3.1 Client-Server-Architekturen 2863.1.1 Ethernet als Verkabelungsbeispiel 2873.1.2 Pseudoschnittstelle loopback 2893.1.3 Pakete in Paketen 290

    3.2 TCP/IP, der Standard 2913.2.1 Die TCP/IP-Nummer 2923.2.2 Das Prftool ping 298

    3.3 Routing: Verbindung mehrerer Netzwerke 3003.3.1 Gateways 3013.3.2 Statische Festlegung einer Route 3023.3.3 Statisches Routing: Ein Beispiel 3043.3.4 Subnetze 3093.3.5 Dynamisches Routen 3113.3.6 CIDR Classless Inter-Domain Routing 312

    Inhalt 9

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 10 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    3.4 Namensausung 3133.4.1 Der Host- und Domainname 3143.4.2 Die Datei /etc/hosts 3153.4.3 Die Datei /etc/services 3163.4.4 Domain Name Service: DNS 3183.4.5 Network Information Service: NIS 3263.4.6 Netzgruppen: /etc/netgroup 330

    3.5 Next Generation IPv6 331

    3.6 Die Grundausstattung an Bordwerkzeug 3333.6.1 ICMP und ping 3343.6.2 Verbindung zwischen Prozessen: netstat 3363.6.3 Anzeigen der Netzwerkadapter 3373.6.4 Anzeigen der Routingtabelle 3393.6.5 Routen verfolgen: traceroute 3403.6.6 HP-UX: lanadmin 341

    3.7 TCP/IP-Dienste 3423.7.1 inet-Dmon 3443.7.2 File Transfer Protocol (FTP) 3453.7.3 Anonymer FTP-Server 3483.7.4 TFTP, schnell und vertrauensvoll 3493.7.5 Terminaldienst (telnet) 3503.7.6 Die r-Kommandos 3523.7.7 Wenn Sicherheit vorgeht: die ssh und scp 3563.7.8 NFS Network File System 3603.7.9 Automatisches Mounten 364

    3.8 Allgemeines zum Internet-Anschluss 367

    3.9 Dynamische TCP/IP-Nummern (DHCP) 369

    3.10 E-Mail 3713.10.1 Format einer E-Mail 3723.10.2 UNIX und Mail 3743.10.3 SMTP (Simple Mail Transport Protocol) 3753.10.4 Mailqueue 3763.10.5 Verteilen der Post: sendmail -q 3773.10.6 Weiterleiten der Post: aliases und forward 3783.10.7 Lokale Mail lesen 3793.10.8 POP3 3813.10.9 IMAP 3833.10.10 Post sammeln: fetchmail 3853.10.11 Mail-Server und Domain 3863.10.12 Erstes Beispiel: Interne Firmenmail 3873.10.13 Zweites Beispiel: Anbindung an das Internet 388

    10 Inhalt

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 11 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    3.11 Newsgroups 3903.11.1 News lesen 3923.11.2 Installation des Newsservers inn 3933.11.3 Beispiel: Newsserver zur Projektverwaltung 3963.11.4 Gruppen anlegen 3983.11.5 Verbindung nach auen 4003.11.6 Newsgroups saugen 4023.11.7 NNTP-Protokollbeschreibung 404

    3.12 Jeder Rechner ist ein eigener Webserver 4073.12.1 Hypertext und HTML 4093.12.2 Start des Servers 4133.12.3 Die Kongurationsdatei httpd.conf 4143.12.4 Privatadministration per .htaccess 4173.12.5 Kommunikation per HTTP 4193.12.6 Virtuelles Hosting 4223.12.7 CGI: Der Server schlgt zurck 423

    3.13 Fremdgegangen Andere Protokolle 4263.13.1 Samba: UNIX im Windows-Netz 4273.13.2 Novell-Zugriffe 4333.13.3 Mac im Netz: netatalk 435

    3.14 Firewall und Masquerading 4363.14.1 Funktionsweise einer Firewall 4373.14.2 Masquerading 440

    3.15 Proxy 441

    4.1 4474.1.1 X, Fenstermanager, Widget Sets und Desktop 4494.1.2 Der X-Server 4504.1.3 Der Fenstermanager 4514.1.4 Der X-Client und seine Bibliotheken 452

    4.2 X Window starten 4554.2.1 Nacktstart mit xinit 4564.2.2 Regulrer Start von X: startx 4574.2.3 Grasches Einloggen: Display Manager xdm 4584.2.4 Eine kleine Beispielsitzung mit xdm 459

    4.3 X Window benutzen 4614.3.1 Bedienungselemente des Athena Widget Set 4624.3.2 Der Aufruf von X-Programmen 4644.3.3 Cut and Paste 4664.3.4 Terminalfenster xterm 467

    Inhalt 11

    4

    Grasche Oberche unter UNIX

    Das X-Window System 444

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 12 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    4.3.5 Weitere praktische Helfer 470

    4.4 Kongurieren 4714.4.1 Farbbeschreibung 4724.4.2 Schriften 4734.4.3 Bitmaps 4754.4.4 Ressourcen 4764.4.5 Konguration des Fenstermanagers 4794.4.6 Fokus und Z-Anordnung 480

    4.5 Desktops 4814.5.1 CDE 4834.5.2 KDE 4884.5.3 GNOME 4954.5.4 Der Wettstreit der freien Desktops 5024.5.5 Mac OS X 503

    4.6 Das X Window System im Netz 5064.6.1 X-Programme ber das Netz starten 5074.6.2 X-Server-Software in Betrieb nehmen 5094.6.3 Grasches Einloggen ber das Netz 5104.6.4 Thin Client 514

    4.7 Anwendersoftware fr UNIX 515

    5 Programmierung von Shellskripten 518

    5.1 Erstellen und Start eines Shellskripts 522

    5.2 Variablen 523

    5.3 Ablaufsteuerung 5265.3.1 Die Unterscheidung: if 5275.3.2 Bedingungen 5285.3.3 Rckgabewert von Programmen 5315.3.4 Die Fallunterscheidung: case 5325.3.5 Die while-Schleife 5345.3.6 Die for-Schleife 5365.3.7 Funktionen 538

    5.4 Ein- und Ausgaben aus dem Skript 539

    5.5 Start und Umgebung von Skripten 540

    6

    6.1 Interpreter und Skript 544

    6.2 Variablen 5456.2.1 Skalare 546

    12 Inhalt

    Perl 542

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 13 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    6.2.2 Variablennamen 5486.2.3 Operationen auf Skalare 5506.2.4 Arrays 5526.2.5 Hash 554

    6.3 Interaktiv 5556.3.1 Ein- und Ausgabe 5566.3.2 Aufrufparameter 5576.3.3 Umgebungsvariablen 558

    6.4 Ablaufsteuerung 5596.4.1 Bedingungen 5606.4.2 if 5626.4.3 for 5636.4.4 foreach 5656.4.5 Sonstige Schleifen: while und until 5666.4.6 Funktionen 568

    6.5 Dateien 5696.5.1 Schreiben und Lesen 5706.5.2 Umgang mit Dateien 572

    6.6 Perl und UNIX 5736.6.1 Aufruf von UNIX-Programmen 5746.6.2 UNIX-Systemprogrammierung 575

    6.7 Grasche Oberche: Tk 5766.7.1 Widgets und Ressourcen 5786.7.2 Kontrollelemente 5796.7.3 Widgetanordnung 587

    6.8 Informationsquellen 590

    7 Programmierwerkzeuge 591

    7.1 C-Compiler 592

    7.2 make 594

    7.3 Debugger 5997.3.1 dbx 6017.3.2 adb (System V) 6027.3.3 gdb GNU debug 603

    7.4 Analysewerkzeuge 6057.4.1 Systemaufrufe verfolgen: strace und ltrace 6067.4.2 Speicherlecks und -berlufe 607

    7.5 Versionsverwaltung 6097.5.1 SCCS (Source Code Control System) 6107.5.2 RCS (Revision Control System) 611

    Inhalt 13

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 14 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    7.5.3 Zusammenspiel mit make 6127.5.4 CVS (Concurrent Versions System) 6137.5.5 UNIX als CVS-Server 616

    7.6 Diverse Programmierhelfer 6187.6.1 Kurzbetrachtung: lex und yacc 6197.6.2 Unterschiede zwischen Textdateien: diff 6207.6.3 Dateien aufs Byte geschaut 621

    8.1 Die Funktion main 6248.1.1 Aufrufparameter 6258.1.2 Zugriff auf die Umgebungsvariablen 627

    8.2 Fehlerbehandlung: errno 629

    8.3 Dateizugriffe 6308.3.1 ffnen, Lesen und Schreiben 6328.3.2 Positionieren: lseek 6358.3.3 Dateihandle duplizieren: dup 6368.3.4 Datei-Eigenschaften ermitteln 6378.3.5 Datei-Eigenschaften ndern 6408.3.6 Sperren 6428.3.7 Link erzeugen: link, symlink 6478.3.8 Lschen: unlink 6488.3.9 Umbenennen: rename 6498.3.10 Temporre Dateien 650

    8.4 Verzeichnisse 6518.4.1 Auslesen: opendir, readdir, closedir 6528.4.2 Ermitteln des Arbeitsverzeichnisses 6548.4.3 Wechseln: chdir 6558.4.4 Anlegen und Lschen: mkdir, rmdir 656

    8.5 Prozesse 6578.5.1 Multiprocessing contra Multithreading 6598.5.2 Vervielfltigen von Prozessen: fork 6608.5.3 exec und system 6628.5.4 Synchronisation: wait 6638.5.5 Prozessumgebung 6648.5.6 Gemeinsamer Speicher: Shared Memory 6668.5.7 Synchronisation mit Semaphoren 6708.5.8 Message Queues 6738.5.9 Leichtgewichtsprozesse: Threads 677

    8.6 Signale 6808.6.1 Signale senden: kill 682

    14 Inhalt

    UNIX-Systemaufrufe 622 8

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 15 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    8.6.2 Auf Signale warten: pause 6838.6.3 Timeout setzen: alarm 6848.6.4 Zombies vereiteln 685

    8.7 Pipe 6868.7.1 Prozesskommunikation per Pipe 6878.7.2 Named Pipe oder FIFO 6888.7.3 Drucken unter UNIX 689

    8.8 Fehlerbehandlung mit syslog 690

    8.9 Zeitfunktionen 692

    8.10 Benutzer und Gruppen 6948.10.1 Die Passwortdatei als Struktur 6958.10.2 Auslesen der Passwortdatei 6968.10.3 Gruppen 697

    8.11 Grundlagen der Dmonisierung 699

    8.12 Client-Server-Socketprogrammierung 7008.12.1 Kommunikationsendpunkt: socket und close 7028.12.2 Serveraufrufe: bind, listen und accept 7038.12.3 Clientaufruf: connect 7048.12.4 Datenaustausch: send und recv 7058.12.5 Namensausung 7068.12.6 Zahlendreher ntoh und hton 7078.12.7 Rahmenprogramm eines Client-Server-Paars 7088.12.8 Mehrere Sockets parallel abfragen 7128.12.9 IPv6 aus Programmierersicht 7148.12.10 Client-Server aus Sicht der Performance 715

    8.13 Regulre Ausdrcke 716

    8.14 Weitere Programmierschnittstellen 718

    8.15 Systemkonformitt 7198.15.1 Polling 7208.15.2 Rechte beachten 721

    A Glossar 722

    Inhalt 15

    B Literatur 723

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 17 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Vorwort

    Dieses Buch wurde fr den Einsteiger geschrieben. Leicht verstndlich Motivationsollte es sein. Da ich mich oft darber rgerte, dass ich von Einsteiger-bchern immer so bald im Regen stehen gelassen wurde, sollte diesesBuch so lange wie mglich ntzlich sein. Also sollten zu mglichst vielenStichworten, die einem Anfnger begegnen knnen, ein paar erklrendeWorte fallen. Na ja, dann kann man ja gerade noch ein paar Worte dazusagen, wie man das installiert und konguriert.

    Was sollte in das Buch hinein? Klar, die grundlegenden Befehle zum Um-gang mit Dateien und Verzeichnissen sind wichtig. Die Editoren vi undemacs und die Shell sind die Standardwerkzeuge eines jeden UNIX-An-wenders und mssen natrlich erlutert werden. Neben diesen klassi-schen Themen will man aber auch mit einem CD-Brenner arbeiten. Auchdie Administration darf nicht fehlen. Immerhin gibt es immer mehr Einzel-platzbenutzer, insbesondere im Bereich Linux und Mac OS X, die letztlichihr System auch selbst administrieren mssen. Wer es im professionel-len Umfeld mit UNIX zu tun bekommt, wird schnell in das Umfeld derAdministration geraten. Und dann wird man ber kurz oder lang auchmal ein paar kleine Skripte zaubern mssen. Wenn man dann als Admi-nistrator Perl kennt, ist das nicht verkehrt. Auf der anderen Seite kannman in der heutigen Zeit das Thema grasche Oberchen nicht mehrweglassen. Und dass eine Maschine ohne Netzwerk betrieben wird, istim Internet-Zeitalter einfach unglaubwrdig. So kam dann eins zum an-deren. Inzwischen ist dieses Buch fast schon eine UNIX-Enzyklopdie,aber immer noch soll es fr den Anfnger leicht verstndlich sein. DennVerstndlichkeit schtzt nicht nur der Anfnger, sondern auch der Pro,wenn ihm mal ein neues Thema begegnet.

    Natrlich wird man nicht durch die Lektre dieses Buchs allein zumUNIX-Guru. Das wird auch sicher nicht wirklich jemand vermuten. Gu-ru wird man, wenn man sich gern und intensiv immer wieder mit UNIXbefasst. Aber ich bin doch sicher, dass dieses Buch auf dem Weg dorthinimmer wieder eine Hilfe darstellt und die Richtung weist. Und so hoffeich, dass Sie dieses Buch nicht im Regen stehen lsst.

    UNIX ist ein feines Betriebssystem. Vor allem ist es ein offenes System. Was ist UNIX?Das bedeutet, dass man alles ber UNIX erfahren kann, wenn man es will.Aber man muss sich etwas damit befassen. Denn Dilettantismus iegteinem zu, Wissen nicht. Aber entgegen aller Klischees ber UNIX ist eseigentlich kein wirklich kompliziertes System. Ich halte MS Windows fr

    Vorwort 17

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 18 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    wesentlich komplizierter. Aber das wird Bill Gates wahrscheinlich anderssehen. UNIX ist sicher, stabil und leistungsfhig, und darum ist es sinnvoll,sich damit zu befassen.

    Inzwischen besteht kein ernsthafter Zweifel mehr daran, dass Linux einLinux und UNIXechtes UNIX ist. UNIX verdankt seine derzeitige Popularitt vor al-lem Linux und selbst denjenigen, die sich noch mit Wehmut an dieTage der Exklusivitt ihres Expertentums zurckerinnern, ist inzwischenklar, dass UNIX ohne Linux heute vielleicht nur noch eine Funote derEDV-Geschichte wre. Da Linux in einem wesentlich schnelleren Tempoentwickelt wird, kann man unter Linux bereits vorab sehen, was in denanderen UNIX-Varianten spter einmal Standard sein wird.

    Auch Apple ist mit Mac OS X zu einem wichtigen Mitspieler in der UNIX-Mac OS X undUNIX Arena geworden. Das bislang proprietre Betriebssystem basiert nun auf

    FreeBSD. Zu dem Darwin genannten Kernel, den es als Open Source gibt,kommen eine eigene grasche Benutzeroberche namens Aqua sowieentsprechende Programmierschnittstellen (Carbon und Cocoa) hinzu, aufdie dieses Buch allerdings nicht nher eingehen wird. Wenn Sie alsoetwas ber den neuen Kernel von Mac OS X erfahren wollen, sind Siehier richtig. Norbert M. Doerner, der als Autor von CDFinder auf demMacintosh bekannt ist, hat beim Korrekturlesen immer wieder daraufhingewiesen, welche Eigenheiten das Mac OS X hat, und natrlich sindseine Anmerkungen in dieses Buch eingeossen.

    Erstes Kapitel: Anwendung Hier steht die Anwendung und der Ein-stieg in UNIX im Mittelpunkt. Da die Kommandosprache bei UNIXextrem leistungsfhig ist, ist es sinnvoll, sie zu kennen, selbst wennman in erster Linie die grasche Oberche benutzt.

    Zweites Kapitel: Administration Die klassischen Administrationsttig-keiten wie Benutzerverwaltung und Datensicherung werden hier ge-nauso erlutert wie grundlegende Anstze zur Analyse von Systempro-blemen.

    Drittes Kapitel: Netzwerk UNIX und TCP/IP gehren zusammen. So-wohl der Bereich der lokalen Netzwerke als auch die Dienste im Inter-net werden hier beschrieben.

    Viertes Kapitel: X Window System Heutzutage wird UNIX nur nochin reinen Serverumgebungen ohne grasche Oberchen verwendet.Neben einer kurzen Beschreibung der Benutzung und der Mglichkei-ten der Desktops CDE, KDE und GNOME wird hier die Kongurationbis hin zum graschen Einloggen ber das Netz beschrieben.

    18 Vorwort

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 19 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Fnftes Kapitel: Shellskripten Das Erstellen kleiner Skripten fr All-tagsaufgaben ist unter UNIX sehr einfach. Die Skriptsprache ist aber somchtig, dass auch komplexere Ablufe damit programmiert werdenknnen. Wer einen Einblick in die Grundlagen der Programmierungsucht, ndet in den Shellskripten eine leicht erreichbare Umgebung.

    Sechstes Kapitel: Perl Da diese Skriptsprache sowohl fr Administra-tion als auch im Internet-Bereich hug verwendet wird, lohnt sich dieEinarbeitung.

    Siebtes Kapitel: Programmierwerkzeuge Unter UNIX gibt es einegroe Zahl hilfreicher Werkzeuge. Hier werden Compiler, make, einigeVersionsverwaltungen und andere hilfreiche Werkzeuge beschrieben.

    Achtes Kapitel: Systemaufrufe Wer Software fr UNIX erstellen willoder auch nur einen tieferen Einblick in den Umgangmit Prozessen undDateien bekommen mchte, sollte sich die Systemaufrufe anschauen.

    Glossar Hier ndet vor allem der Anfnger Begriffe erlutert, die imText vielleicht etwas zu kurz kommen, um den Leseuss nicht zu stren.

    Zur besseren Lesbarkeit sind folgende Konventionen eingefhrt worden: SchreibweisenAufrufe und Kommandos werden in nichtproportionaler Schrift gesetzt.Da-teien und Verzeichnisse erscheinen in fetter Schrift. Funktionsaufrufe wieopen() sind grundstzlich mit Klammern dargestellt. KONSTANTEN undUmgebungsvariablen sind unter UNIX meist in Grobuchstaben gesetzt.Da dies bereits leicht aus dem Schriftbild heraussticht, habe ich es dabeibelassen.

    Dieses Symbol am Rand soll darauf hinweisen, dass hier ein Beispielsze-nario aufgezeigt wird, das im Text weiter verfolgt wird. Da viele Beispieleim Buch verwendet werden, sind nicht alle so auffllig gekennzeichnet,sondern nur solche, die etwas ausfhrlicher behandelt werden.

    Mit diesem Symbol werden Hinweise gekennzeichnet, wie Sie sich dasLeben etwas erleichtern.

    Dieses Symbol soll auf Stolperfallen hinweisen. Hier schleichen sich ent-weder leicht Fehler ein, oder es geht um Dinge, die zu einem Datenverlustoder zum Verlust der Systemsicherheit fhren knnen.

    Bei diversen Beispielen werden Bildschirmabzge dargestellt. Dabei zeigt Konsolenpromptder Prompt immer den Rechnernamen und ein Grerzeichen fr einennormalen Anwender und ein Hashzeichen (#) fr den Administrator root.

    Hier stehen sie untereinander:

    Vorwort 19

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 20 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    gaston >

    silver #

    Dabei sind die Rechnernamen bei mir etwas bunt. Mein Linux-Arbeits-platz heit gaston, dann gibt es noch silver (Linux), powermac (Mac OS),hpsrv (HP-UX), note (FreeBSD), sol (Solaris), sparc (SunOS) und andere.

    Wenn man ein Buch schreibt, arbeitet man nicht im luftleeren Raum.Herzlichen DankDa gibt es ein paar Leute, die mich untersttzt haben, und das war sehrnett. Meine Frau Andrea und meine Shne haben mir einen Freiraumgewhrt, in dem ich arbeiten konnte. Dankenswerterweise wurde ich mitNahrungsmitteln versorgt, sodass ich bei Abschluss der Arbeiten sogarnoch mehr wiege als vorher. Stephan Mattescheck hat mich als Lektorbetreut, mir stndig Bcher zugeschickt, Fragen gestellt und auch man-che beantwortet. Er hat mich weitgehend walten lassen und sich alsPartner angeboten, wenn ich mir unsicher wurde. Daniel Lauer hat michim Layout und bei meinen Problemen mit den Untiefen von LATEX unter-sttzt, Iris Warkus hat mir einige Geheimnisse aus dem Bereich der Grakverraten und ist verantwortlich fr das gute Aussehen des Buches. FrauFriederike Daenecke formte aus meinen Verbrechen gegen die deutscheSprache druck- und lesbare Stze. Die Firma Tacoss hat mich mit Un-terlagen untersttzt, mir freien Zugang zu ihrem Maschinenpark gewhrtund mir eine HP-UX-Maschine zur Verfgung gestellt. Insbesondere ClausErichsen und Leif Hansen seien hier mit Namen genannt. Sehr viel Arbeithaben sich diejenigen gemacht, die dieses Buch zur Korrektur gelesenund viele Anregungen eingebracht haben. Das ist Ralf Lenz mit seinenErfahrungen, die er bei diversen Internet-Providern als Programmierer,Projektleiter und Netzwerkexperte gesammelt hat. Norbert M. Doernerhat seine Administrationserfahrungen aus dem Umfeld von Solaris undseine Kenntnisse als Entwickler auf dem Macintosh eingebracht. Er hatauch die Informationen dieses Buches darauf geprft, ob sie fr Mac OS Xgelten, und Hinweise auf Unterschiede gegeben. Jrg Osarek von derFirma Oracle hat mit seinen UNIX- und Linux-Kenntnissen aus der Per-spektive des professionellen EDV-Einsatzes wichtige Aspekte einbringenknnen und trotz engem Terminkalender noch Zeit fr dieses Buch gefun-den. Stephan Engelmann hat mit seiner Erfahrung als Webadministratorund Netzwerkpraktiker wichtige Fragen gestellt und gute Hinweise gege-ben.

    Norgaardholz, den 28.9.2002Arnold Willemer

    20 Vorwort

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 21 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Teil 1Anwendung

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 23 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    1 UNIX anwenden

    UNIX ist ein benutzerfreundliches System. Es ist nur manch-mal etwas eigen in der Auswahl seiner Freunde.

    Dieser Satz charakterisiert UNIX vielleicht besonders. Es ist tatschlichbenutzerfreundlich und nicht so schwer zu lernen. Aber man muss et-was mehr tun, als mit der Maus wahllos auf Bildchen zu klicken. Manlernt UNIX nicht durch Trial and Error (also Versuch und Irrtum), sonderndadurch, dass man die angebotenen Hilfen nutzt, um zu verstehen, waspassiert.

    Das erste Kapitel soll zeigen, wie man sich unter UNIX auf der Konsolebewegt, und die einfachsten Grundkommandos vermitteln. Einige Fach-begriffe sind im Glossar im Anhang erlutert.

    In Zeiten der graschen Oberchen muss man nicht zwingend mit der Die Konsoletextorientierten Oberche arbeiten, auch unter UNIX nicht. Aber geradeunter UNIX wre es ein Verlust, sie nicht zu kennen. Die Kommando-zeile erffnet Mglichkeiten zur Kombination der sehr leistungsfhigenUNIX-Werkzeuge, die in dieser Form auf graschen Oberchen nicht zurealisieren ist. So drckt die Verwendung der Kommandozeile, die diemeisten UNIX-Anwender nach wie vor neben der graschen Oberchenutzen, nicht aus, dass die graschen Oberchen nicht brauchbar seien,sondern dass die Kommandozeile extrem leistungsstark ist.

    Aber ein Textbildschirm hat noch andere Vorteile. Fr den Administratorist es wichtig, dass er selbst ber die langsamste Telefonleitung noch eineFernwartung durchfhren kann.

    1.1 Besonderheiten von UNIX

    1.1.1 Das offene System

    Das Besondere an UNIX ist seine Offenheit. UNIX ist nach seiner Ent-stehung lange Zeit an der Berkeley-Universitt weiterentwickelt worden.Der Sourcecode stand Studenten zur Verfgung, damit sie lernen, wie einBetriebssystem funktioniert. Vieles wurde an UNIX demonstriert, und wasUNIX nicht konnte, das brachte man ihm bei. Vor allem aber sorgte mandafr, dass es keine Geheimnisse gab. Jeder Prozess ist sichtbar, und mankann ihm auf die Finger klopfen. Alle Kongurationsdateien sind reineTextdateien oder leicht in solche zu verwandeln. Solche Kongurationen

    UNIX anwenden 23

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 24 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    kann man leicht sichern, ausdrucken oder durchsuchen. Eine solche Um-gebung ist aber auch sicher, weil einfach nichts versteckt werden kann.

    UNIX gilt als kompliziert. Dieses Klischee wird von Leuten verbreitet,Komplex, abernicht kompliziert die glauben, MS Windows sei simpel. Ein modernes Betriebssystem mit

    Multitasking, Netzwerkanschluss und grascher Oberche ist komplex.Wer den Zugriff auf alle Details erhlt, wie das bei UNIX der Fall ist,der mag zu Anfang ber die vielen Informationen erschrecken. Aber manmuss nicht alles wissen, um mit UNIX produktiv umgehen zu knnen.Dennoch ist es gut zu wissen, dass man alles wissen knnte.

    Auf der Konsole arbeitet UNIX mit sehr kleinen Programmen, die wie Le-gosteine zusammengesetzt werden knnen. Lassen Sie sich davon faszi-nieren, welche Leistung man mit ein paar Tastendrcken entfachen kann.Denn was man mag, das lernt man schnell.

    1.1.2 Die UNIX-Varianten

    Hier wird nicht die komplette Geschichte von UNIX zelebriert, da der Nut-zen gering und der Wahrheitsgehalt der umgehenden Legenden schwerprfbar ist. Um aber die feinen Unterschiede zu begreifen, die zwischenden UNIX-Derivaten existieren, kommt man um einen kurzen Rckblicknicht herum.1

    In den 70ern entstand UNIX bei AT&T. Als erstes System wurde es nichtPortables Systemin der Assemblersprache des Rechners, sondern in einer extra fr diesenZweck entwickelten portablen Hochsprache entwickelt, die man heuteunter dem Namen C kennt. Dadurch ergab sich die Mglichkeit, UNIXauf beinahe beliebige Plattformen zu portieren.

    Die kommerziellen Mglichkeiten wurden zunchst vllig unterschtzt,UNIX an der Unisodass man eine Lizenz an die Universitt Berkeley vergab. Diese Li-zenz umfasste auch den Sourcecode von UNIX, sodass Generationen vonStudenten anhand von UNIX lernten, wie ein Betriebssystem funktio-niert, und Erweiterungen bzw. Korrekturen vornahmen. Es entstanden dieBSD-Versionen von UNIX, deren aktuelle Version 4.4BSD heit. FreeBSDist eine freie Variante nicht nur fr die PC-Architektur.

    Parallel dazu entwickelte AT&T System V.2 Diese Variante ist die Basis vonSystem VAIX von IBM, von HP-UX von Hewlett Packard und auch der neuesten

    1 vgl. Herold, Helmut: Linux-UNIX-Systemprogrammierung. Addison-Wesley, 1999.S. 3537.

    2 Das V steht fr eine rmische Fnf und wird blicherweise englisch ve ausgespro-chen.

    24 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 25 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Solaris-Versionen von Sun. Aufgrund der Notwendigkeit, die Portabilittzu wahren, die zu den ursprnglichen Strken von UNIX gehrte, wurdenauch Besonderheiten des BSD in das System V aufgenommen.

    Whrend seiner Entwicklungsgeschichte drohte immer wieder die Zer- POSIX von IEEEsplitterung von UNIX in diverse Dialekte. Um verbindliche Normen zuschaffen, gab es mehrere Bestrebungen. Das IEEE (Institute for Electri-cal und Electronic Engineers) denierte mit POSIX (Portable OperatingSystem Interface) eine Familie von Standards fr die UNIX-Schnittstellen.

    Von Seiten der groen Computerhersteller wurde die X/Open gegrn- X/Opendet, die einen Industriestandard fr offene Systeme schaffen sollte. Daswichtigste Ergebnis war der XPG (X/Open Portability Guide).

    Nachdem UNIX aufgrund der kommerziellen Nutzung den Universitten Die Suche nacheinem UNIX frStudenten

    nicht mehr im Quelltext zur Verfgung stand und Lizenzen fr interessier-te Studenten unerschwinglich waren, ergaben sich verschiedene Anstze,um in dieser Situation Abhilfe zu schaffen. An den Universitten entstandzunchst XINU3 von Douglas Comer als ein Systemkern ohne Anbindungan irgendwelche Peripherie. Andrew Tanenbaum entwickelte MINIX, umdaran grundlegende Betriebssystemeigenschaften zu demonstrieren.4 DerAnsatz war durch sein durchgngiges Konzept des Message Passing ele-gant, aber nicht auf Performance ausgelegt. Parallel arbeitete eine Gruppevon Leuten bereits an freier Software, die neben vielen Tools einen freienCompiler umfasste, den GNU-Compiler5.

    In dieser Situation erstellte Linus Torvalds einen Kernel in UNIX-Machart Linuxund stellte ihn im Internet zur freien Verfgung. Er nannte ihn Linux.Durch das Hinzufgen der GNU-Tools und des MINIX-Dateisystems konn-te man daraus schnell ein lauffhiges Grundsystem bauen. Von FreeBSDkamen die ersten Netzwerkbibliotheken, und X Window wurde, da es freiverfgbar war, auch bald eingebunden. Anfangs wurde Linux noch als Be-triebssystemspielzeug belchelt. Inzwischen hat sich durch die weltweiteBeteiligung in unglaublicher Geschwindigkeit ein System entwickelt, dasseine Spuren auch in anderen UNIX-Systemen hinterlsst. Wollte frherLinux wie UNIX sein, versuchen heute die UNIX-Systeme, die neuenMg-lichkeiten von Linux zu integrieren. Heute gibt es wohl niemanden mehr,der daran zweifelt, dass Linux ein richtiges UNIX ist.

    3 Comer, Douglas: Operating System Design The XINU Approach. Prentice Hall In-ternational Editions, 1984.

    4 Tanenbaum, Andrew S.: Operating Systems Design and Implementation. PrenticeHall, 1987.

    5 Die Abkrzung GNU steht fr GNU is Not Unix. http://www.gnu.org

    Besonderheiten von UNIX 25

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 26 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    1.2 Personenkontrolle

    Die erste Kontaktaufnahme mit einer UNIX-Maschine erfolgt normaler-weise durch die Anmeldung am System, den so genannten Login. UNIXist ein Multiuser-Betriebssystem. Es ist also darauf ausgelegt, fr mehrereBenutzer eigene Arbeitsumgebungen zu schaffen und diese auch gegenbsartige Attacken zu schtzen. Darum gibt es einen Benutzernamen undein Passwort.

    Ein Terminal (siehe S. 638) meldet sich typischerweise nach dem DrckenBenutzernameder Returntaste mit der Frage nach dem Benutzernamen. Auf den meistenSystemen wird der Administrator eine Kombination aus Vor- und Nach-namen fr den Benutzernamen whlen. UNIX unterscheidet zwischenGro- und Kleinschreibung. Darum verwendet man ungern Grobuchsta-ben, und so ist auch meist der Benutzernamen kleingeschrieben.

    Nach dem Return verlangt das System das Passwort, das beim EintippenPasswortnicht sichtbar ist. Wenn man sich vertippt hat, erscheint der Anmelde-bildschirm erneut, ansonsten grt das System und meldet, wie vieleerfolglose Anmeldeversuche seit dem letzten Login erfolgt sind. Dies isteine wichtige Kontrolle, ob jemand vielleicht illegalerweise versucht hat,in das System einzubrechen. In solch einem Fall sollte man den Adminis-trator informieren.

    Wenn Sie sich ber einen graschen Login angemeldet haben, erscheintGrascher Loginzunchst eine grasche Oberche. Dort ist vielleicht kein Fenster mit ei-ner Terminalemulation offen. Sie werden aber sicher leicht eine solche n-den. Suchen Sie nach einem Bild, das ein Terminal oder einen Bildschirmdarstellt. Oder schauen Sie, ob im Men xterm auftaucht. Mit dieserTerminalemulation knnen Sie alles nachvollziehen, was in diesem Buchber Kommandozeilen beschrieben wird. Im Kapitel ber das X WindowSystem ist unter dem Titel Eine kleine Beispielsitzung mit xdm fr dieverschiedenen Systeme beschrieben, wie man in einfachen Schritten aneine solche Terminalemulation gelangt. Wenn Sie eine eher ltere UNIX-Workstation verwenden, nden Sie auf Seite 421 diese Beschreibung. Ver-wenden Sie CDE, das auf Solaris bis Version 8, auf Hewlett Packard undanderen RISC-Maschinen luft, ist die Beschreibung auf Seite 442 zu n-den. Die Beschreibung fr GNOME (Linux und Solaris ab Version 9) ndetsich auf Seite 459. Benutzer des KDE (auch Linux) nden Hinweise aufSeite 451. Auch Besitzer des Macintosh ab Mac OS X knnen mitmachen.Ab Seite 464 ist beschreiben, wie man an eine Kommandozeile gelangt.

    26 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 27 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Wenn man eine neue Kennung an einem System bekommen hat, sollte Passwort ndernman das Passwort gleich nach dem ersten Einloggen ndern. Dazu gibtman einfach den Befehl passwd ein und schliet die Zeile mit Return.Die meisten Systeme fragen nach dem bisherigen Passwort. Auf dieseWeise wird verhindert, dass jemand eine kurze Abwesenheit nutzt, umschnell das Passwort zu ndern. Anschlieend mssen Sie zweimal Ihrneues Passwort eingeben. In diesem Fall werden Sie Ihre Eingabe nichtsehen knnen. Das verhindert, dass jemand Ihr Passwort vom Bildschirmabliest.

    Sollte Ihr Passwort zentral in einem UNIX-Netzwerk verwaltet werden, Netzwerk-passwortkann es sein, dass der Befehl zum ndern des Passwortes yppasswd lautet.

    In diesem Fall wird Ihnen der Administrator aber vermutlich schon einenTipp gegeben haben.

    Bei der Wahl des Passwortes sollten Sie alles vermeiden, was man leicht Ein gutesPasswortmit Ihnen verbindet. Namen von Verwandten sind ebenso unglcklich

    wie Ihr Autokennzeichen oder Ihr Sportverein. Auch Begriffe, die manin einem Lexikon ndet, sollten Sie meiden. Eine einfache Methode, einPasswort sicher zu machen, ist eine Ziffer irgendwo einzufgen. Auch dieVerwendung von wild gemischter Gro- und Kleinschreibung steigert denWert. Aber whlen Sie es so, dass Sie es sich merken knnen. Wenn Siedas Passwort auf einem Zettel in der Schublade aufbewahren mssen, weiles so kompliziert ist, dann ist es wertlos. Es gibt ein einfaches Verfahren,ein Passwort zu erzeugen, das aus scheinbar sinnlosen Buchstabenkolon-nen besteht und dennoch leicht zu merken ist. Dazu bildet man einenSatz und verwendet die Anfangsbuchstaben als Passwort. Beispielswei-se wrde der Satz Wie werde ich UNIX-Guru? das Kennwort WwiUGergeben.

    Nach der Arbeit mit UNIX meldet man sich wieder ab. Man sollte sich zur Abmelden amTerminalRegel machen, niemals ein angemeldetes Terminal allein stehen zu lassen.

    Die Anmeldung kann durch Drcken von ctrl-D6 oder den Befehl exitoder logout erfolgen. Der Befehl exit und die Tastenkombination ctrl-Dfhren beide zum Verlassen der aktuellen Shell. Sofern keine weitere Shellerffnet wurde, fhrt das wie der Aufruf logout zum Abmelden.

    Bei einer graschen Oberche nden Sie die Mglichkeit, sich abzumel-den, meist ber ein Men, das Sie mit der rechten (oder linken) Maustaste

    6 ctrl meint die Control-Taste, die auf deutschen Tastaturen meist mit Strg (Steu-erung) beschriftet ist. Die Control-Taste wird gedrckt gehalten, whrend kurz eineandere Taste gleichzeitig gedrckt wird.

    Personenkontrolle 27

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 28 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    auf dem Desktophintergrund aufrufen. Oft ist auch ein X-Symbol zu n-den, das zum Abmelden dient.

    Neben den normalen Anwendern eines Systems, gibt es den System-Der Superuserroot administrator, der unter UNIX traditionsgem den Benutzernamen root

    hat. Gegenber den normalen Anwendern hat root freien Zugriff auf al-le Ressourcen der Maschine. Aus diesem Grund wird er auch Superusergenannt. Fr alle Systemkongurationen muss er angesprochen werden.Aus Sicherheitsgrnden hat der normale Anwender eingeschrnkte Rech-te, die verhindern sollen, dass er einen anderen Benutzer schdigen oderaussphen kann.

    1.3 Fragen Sie Dr. UNIX

    Unter UNIX bekommt man die Informationen zum System mitgeliefert.Die erste Informationsquelle sind die so genannten Manpages. Sie sindbenannt nach dem Kommando man (unter grascher Oberche auchman, xmanxman) und den Seiten (engl. pages), die dieser Befehl anzeigt. Der Na-me des Befehls man leitet sich von manual (engl. Handbuch) her. Mantippt hinter dem Kommando man ein Leerzeichen und dann den Befehloder die Datei, ber die man Informationen braucht. Man besttigt mitder Returntaste und es erscheinen klar strukturierte Informationsseiten,die blicherweise sehr ppig sind. Zugegebenermaen sind sie nicht frAnfnger geschrieben worden, sondern sollen eine klare Denition derbeschriebenen Kommandos und Dateien liefern. Ein guter Einstieg in dieBenutzung von man ist naheliegenderweise die Manpage von man. Manruft sie mit man man auf. Mit der Leertaste kann man seitenweise wei-terblttern, und mit Q kommt man wieder zur Kommandozeile zurck.In vielen Systemen kann man mit der Taste B (backwards) seitenweisezurckblttern. Selbst die Cursortasten funktionieren manchmal.

    Mit der Option -k wird eine Liste aller Kommandos oder Dateien aufge-Nach Themensuchen fhrt, die zu dem angegebenen Schlsselwort passen. Beispielsweise zeigt

    man -k sockets einige Seiten zum Thema Socketprogrammierung an.

    Gibt es doch keine Manpage oder will man nur einen kurzen Hinweis zurArt des Aufrufs, kann man das Kommando selbst mit der Option -? oder--help (bei Worten als Option braucht man zwei Bindestriche) aufrufen.

    Unter einigen UNIX-Systemen (AIX, Linux) gibt es das Programm info,infomit dem man sich durch einen Baum von Tutorien hangeln kann. Wer Zu-griff auf die so genannten Linux HowTos hat, sollte sie nutzen. Da Linuxauch ein UNIX ist, stellen sie auch fr andere UNIX-Systeme ausgiebige

    28 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 29 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Hilfen dar. Man ndet die HowTos und andere Dokumente auf einem Li-nux-System unter den Verzeichnissen /usr/doc oder unter /usr/share/doc.

    Die Quelle fr die Linux Howtos ist:

    http://www.linuxdoc.org

    Eine wichtige Quelle sind die Newsgroups. Hier ndet man Hilfe, wenn Anfrage anNewsgroupsman ein bestimmtes Problem nicht lsen kann. Gerade im UNIX-Bereich

    gibt es eine ganze Reihe solcher Gruppen, in denen man mit sehr kom-petenten Partnern ber seine Probleme diskutieren kann. Allerdings er-warten diese Experten auch, dass man zunchst einmal versucht hat, dasProblem selbst zu lsen und zumindest in den Manpages gesucht hat.Um nicht immer die gleichen Fragen beantworten zu mssen, haben dieNewsgroups normalerweise eine FAQ erstellt. FAQ bedeutet FrequentlyAsked Questions und ist eine Sammlung von Fragen und Antworten, diesich huger wiederholen. Es ist eine gute Idee, zunchst nach dieser FAQzu fragen.

    1.3.1 Unterteilung

    Die Manpages sind in Abschnitte oder Sektionen unterteilt, die durch-nummeriert sind.

    1. Einfache Kommandos der Anwendungsebene

    2. Systemaufrufe fr Programmierer

    3. Bibliotheksaufrufe fr Programmierer

    4. Spezialdateien fr den Zugriff auf Hardware in /dev

    5. Dateiformate und -aufbauten, beispielsweise printcap

    6. Spiele

    7. Makropakete und Konventionen. Hier ndet sich beispielsweise eineBeschreibung von X oder die Denition der verschiedenen Zeichen-stze.

    8. Systemadministrationsbefehle (in der Regel nur fr root)

    Wenn ein Schlsselwort in mehreren Sektionen auftaucht, wird die Seiteangezeigt, die die niedrigere Sektionsnummer hat. Auf einigen Systemenkann man mit der Umgebungsvariablen MANSECT die Reihenfolge derSektionen selbst festlegen. Dabei werden die Sektionen durch Doppel-punkte getrennt angegeben.7 Beispielsweise 3:2:1:4...

    7 vgl. Johnson, Troan: Anwendungen entwickeln unter Linux. Addison-Wesley, 1998.S. 75.

    Fragen Sie Dr. UNIX 29

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 30 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    1.3.2 Sonderzeichen in Hilfetexten

    Bei der Beschreibung der Befehle ndet man in den Manpages Sonder-zeichen, die die Art der Parametergestaltung beschreiben sollen. Auf denersten Blick sehen sie recht verwirrend aus. Sie geben an, welche Para-meter optional sind und zeigen Alternativen auf. Im Einzelnen gibt es:

    Zeichen Bedeutung

    [optional] optional kann, muss aber nicht angegeben werden.

    { dies | das } Hier muss entweder dies oder das stehen.

    Hier steht eine zu benennende Variable, also nicht das Wort variable

    Tabelle 1.1 Metazeichen in man

    In diesem Buch habe ich mit Absicht auf diese Syntax verzichtet. Dadurchwird die Beschreibung mancher Dinge zwar lnger, aber hoffentlich auchverstndlicher. Als Beispiel ist hier der Anfang der Manpage von man zusehen.

    man(1) Manual Hilfsprogramme man(1)

    NAME

    man - Programm zum Einsehen der Online-Manuale

    SYNTAX

    man [-acdhwutZV] [-m System[,...]] [-L locale] [-p

    Zeichenkette] [-M Pfad] [-P Pager] [-r Prompt] [-T Format]

    [-S Liste] [-e Erweiterung] [[Abschnitt] Seite ...] ...

    man -l [-tZ] [-p Zeichenkette] [-P Pager] [-r Prompt] [-T

    Format] Datei ...

    man -k Schlsselwort ...

    man -f Seite ...

    BESCHREIBUNG

    man ist der Manualbrowser des Systems. Jedes Argument

    Seite ist normalerweise der Name eines Programmes oder

    einer Funktion. Gefunden und angezeigt wird die Manual

    seite, die auf alle Argumente pat. Wenn ein Abschnitt

    angegeben wird, sucht man nur in diesem Abschnitt der Man

    30 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 31 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    ualseiten. Ohne Angabe eine explizite Angabe werden alle

    verfgbaren Abschnitte in einer vorher definierten Reihen

    folge durchsucht. Wenn die Seite in mehreren Abschnitten

    lines 1-25

    1.4 So sage ich es meinem UNIX

    UNIX-Kommandos werden eingetippt und mit der Returntaste abge-schlossen. Sie gehen an ein Programm, das man Shell nennt. Die Shellbernimmt die Interpretation der Befehle und ruft zur Ausfhrung dasBetriebssystem oder die angesprochenen Programme auf.

    Ein Befehl besteht zuerst aus dem Befehlsnamen. Dieser bezeichnet meist Leerzeichen istTrennzeichenein Programm. Es folgen ein oder mehrere Leerzeichen zur Abtrennung

    der Parameter. Auch die Parameter werden voneinander durch Leerzei-chen getrennt. Parameter unterteilen sich in Optionen und Argumente.

    Optionen sind an einem Minuszeichen zu erkennen. Sie bewirken eine OptionenVernderung der Programmausfhrung. Werden mehrere Optionen mit-gegeben, knnen diese direkt hintereinander geschrieben werden, undnur ein Minuszeichen muss am Anfang geschrieben werden. Statt -l -akann man also auch -la schreiben. Neuere Programme verwenden gernWorte als Optionen. Zur Unterscheidung von kombinierten Optionenhaben sie meistens zwei Bindestriche8. Schlielich haben die meisten Be-fehle Argumente. Dies sind die Objekte, auf denen die Befehle ausgefhrtwerden sollen, meist Dateien oder Verzeichnisse. Je nach Art des Befehlskann es gar keine oder beliebig viele Argumente geben.

    UNIX-Programme sind normalerweise schweigsam. Wenn das Programm Fehlermeldungenkeine besonderen Ausgaben hat und kein Fehler aufgetreten ist, erscheintoft keine Meldung, sondern nur der Prompt.9 Bei einem Fehler gibt es al-lerdings eine Fehlermeldung. Diese kommt vom aufgerufenen Programm,oder die Shell meldet sich, wenn sie den Befehl bzw. das Programm nichtkennt oder die Struktur des Befehls ihr nicht behagt.

    So knnte nach Eingabe von abcdefg als Kommando eine Meldung wiedie folgende erscheinen:

    8 Eine Ausnahme bildet beispielsweise nd, das Optionsworte, aber nur einen Bin-destrich verwendet.

    9 Als Prompt bezeichnet man das, was in Ruhestellung links neben Ihrer Eingabe-marke steht.

    So sage ich es meinem UNIX 31

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 32 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    sh: abcdefg: not found.

    Da UNIX kein Programm namens abcdefg nden konnte, meldet derKommandointerpreter sh den Fehler. sh heit die Standard-Shell. Siekann bei Ihnen vielleicht anders heien. Kommt ein korrekt aufgerufenesProgramm mit der Eingabe nicht zurecht, meldet es sich. Zum Beispielerscheint nach der Eingabe grep o p die Meldung

    sh: grep: 0652-033 cannot open p.

    Vor der Fehlermeldung sieht man sehr schn die Aufrufhierarchie. sh riefgrep auf, und grep meldet den Fehler. Das Programm grep gibt es also,und es wurde auch gestartet. grep hatte mit o keine Probleme, aber pwollte es wohl ffnen, konnte es aber nicht nden oder hatte kein Recht.die Datei zu ffnen.

    brigens brauchen Sie nicht zu erschrecken. Die meisten UNIX-Umge-bungen haben inzwischen auch deutsche Meldungen.

    1.5 Operationen mit Dateien

    Eine Datei ist eine DATenEInheit, also ein Rudel Daten in einem Sack. DasGro- undKleinschreibung

    von Dateienknnen Texte, Programme oder Datenbanken sein. Eine Datei hat im-mer einen Namen. UNIX unterscheidet sehr genau zwischen Gro- undKleinschreibung, auch in Dateinamen. Die Dateien montag und Mon-tag knnen nebeneinander im gleichen Verzeichnis stehen und sind zweivoneinander vllig unabhngige Dateien. Mac OS X behandelt aus Kom-patibilittsgrnden zum alten System Klein- und Grobuchstaben gleich.Dieser Effekt tritt ebenfalls auf, wenn man es mit an sich UNIX-fremdenSystemen zu tun hat, die sich so verhalten. Dies betrifft beispielswei-se SAMBA (siehe S. 390) oder Medien, die unter MS Windows erzeugtwurden.

    Der Name einer UNIX-Datei hat im Gegensatz zu MS-DOS oder VMSoft keine durch einen Punkt abgetrennte Endung, die den Inhalt einerDatei beschreibt. Insbesondere haben ausfhrbare Dateien spezielle En-dungen wie .EXE, .COM oder .BAT. Das kennt UNIX nicht. AusfhrbareDateien haben unter UNIX normalerweise keine Endung. Dagegen gibtes sie durchaus bei C-Programmquelltexten mit .c, Objekten mit .o oderHTML-Dokumenten mit .html.

    Wer mit UNIX arbeitet, wird feststellen, dass dort fast alles kleingeschrie-ben wird. In Kombination mit der Krze der Kommandos kann manschnell zu dem Ergebnis kommen, dass UNIX-Benutzer faul sind. Auf

    32 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 33 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    jeden Fall ist es der UNIX-Anwender gewohnt, mit wenigen Tastenan-schlgen maximale Leistung zu entfalten.

    1.5.1 Eine kleine Beispielsitzung

    Anhand einer kleinen Beispielsitzung sollen die ersten Befehle von UNIXerklrt werden. Am deutlichsten wird es, wenn Sie alles direkt auspro-bieren. Dazu melden Sie sich zunchst einmal an. Als Erstes soll ein Ver-zeichnis angelegt werden, in dem man nach Herzenslust experimentierenkann.

    mkdir spielwiese

    cd spielwiese

    Der Befehl mkdir (mkdir steht fr make directory) erzeugt das Verzeichnis Verzeichnisanlegenspielwiese. Mit cd (cd steht fr change directory) wechselt man hinein.

    Ein Verzeichnis ist wie ein Ordner, in dem man mehrere Dateien aufbe-wahrt. Bei manchen Systemen sehen Sie sogar den Namen spielwieselinks neben Ihrem Cursor stehen. Als Erstes brauchen Sie eine Datei zumSpielen. Dazu kopieren Sie mit dem ersten Befehl eine Datei namenspasswd aus dem Systemverzeichnis /etc hierher.

    cp /etc/passwd .

    cp passwd anton

    cp anton paula

    Verzeichnisnamen werden durch einen normalen Schrgstrich (/, der ber Der / ist derVerzeichnistrennerder 7, auch Slash genannt) und nicht durch den umgekehrten Schrgstrich

    (\, genannt Backslash) getrennt, wie das unter MSWindows oder MS-DOSblich ist. Im ersten Befehl kopieren Sie aus dem Verzeichnis /etc dieDatei passwd in das aktuelle Verzeichnis. Das aktuelle Verzeichnis wirdmit einem Punkt bezeichnet. Jetzt steht im aktuellen Verzeichnis eineDatei passwd. Der zweite cp-Befehl kopiert die Datei passwd und gibt ihrden Namen anton. Da kein Schrgstrich im Argument vorkommt, bewegtsich alles im aktuellen Verzeichnis spielwiese. Zuletzt wird anton nachpaula kopiert. Jetzt liegen drei Dateien im Verzeichnis. Das kann man sichanschauen, indem man den Befehl ls (ls steht fr list) verwendet.

    ls

    ls -l

    ls -l paula

    Nach dem ersten Befehl haben Sie eine Liste von drei Namen nebenein- Anzeigen derDateienander (passwd anton paula). Das sind die Dateien, die Sie oben kopiert

    Operationen mit Dateien 33

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 34 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    hatten. ls zeigt Dateinamen an. Kombiniert mit der Option -l zeigt lswieder Dateinamen an, aber diesmal in der Langform. Unter UNIX ist eswie bereits erwhnt blich, Befehle mit Optionen zu steuern. Diese Op-tionen bestehen aus einem Bindestrich und einem Buchstaben oder auszwei Bindestrichen und einem Wort. Die Langform zeigt unter anderemdas Datum der Entstehung und die Gre der Datei in Bytes. Im letztenBefehl wird nach der Option ein Dateiname angegeben. Der Befehl heit:Zeige die Langform des Dateinamens der Datei paula.

    Im nchsten Befehl soll ein wenig mit den Argumenten gespielt werden.Im ersten Befehl wird aufgelistet, welche beiden Dateien in Langformangezeigt werden sollen. Im zweiten Befehl wird ein Stern eingesetzt, derals Platzhalter fr beliebig viele Zeichen verwendet wird.

    ls -l passwd paula

    ls -l p*

    p* bedeutet: Zeige alle Dateien, die mit p anfangen. Das sind in diesem* als PlatzhalterFall passwd und paula. Der Stern bedeutet also: Setze an dieser Stellebeliebige Zeichen ein. Mit p*d sieht man die Datei passwd, da passwdmit p anfngt und mit d aufhrt. p*d* ndet ebenfalls die Datei passwd,da der Name mit p anfngt und ein d enthlt, wenn auch an der letztenStelle. Danach folgen beliebig viele Zeichen, in diesem Fall keine.

    Wichtig zu erwhnen ist, dass nicht der Befehl ls den Stern interpretiert,Die Shell verteiltdie Sterne sondern dies von der Kommandozeile, der Shell, getan wird. Dies ist

    deswegen wichtig, weil so garantiert ist, dass alle Befehle den Stern gleichinterpretieren, weil sie ihn eben nicht selbst interpretieren, sondern dieShell dies tut. Sie liefert an das Programm eine Liste aller Dateien, dieauf die Maske passen. Die Shell sucht beispielsweise bei p* alle Dateien,die mit p beginnen, und listet sie auf. Das Programm ls bekommt alsArgument von der Shell passwd paula geliefert. Noch ein paar Befehle:

    mv paula erna

    rm anton

    ls

    paula wurde nun in erna umbenannt. Der Befehl lautet mv fr move (engl.Umbenennen undLschen bewegen). Man kann mit diesem Befehl also Dateien auch in andere Ver-

    zeichnisse schieben. anton ist nun verschwunden. rm, kurz fr remove(engl. entfernen), hat diese Datei entsorgt. Zuletzt soll wieder aufgerumtwerden. Die folgenden Befehle lschen alle Dateien, wechseln wieder indas Verzeichnis zurck, aus dem Sie kamen, und entfernen das bungs-verzeichnis:

    34 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 35 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    rm *

    cd ..

    rmdir spielwiese

    Im ersten Befehl wird rm * von der Shell zu rm erna passwd expandiert.Der waagerechte Doppelpunkt (..) hinter dem cd bezeichnet das ber-geordnete Verzeichnis. Man spricht auch vom Elternverzeichnis. Sie ver-lassen also Ihre spielwiese und stehen nun dort, wo Sie angefangenhatten. rmdir lscht leere Verzeichnisse. Da Sie mit dem rm vorher auf-gerumt haben, ist spielwiese leer und wird entsprechend auch gelscht.Ein Verzeichnis kann nicht mit rm gelscht werden10, sondern nur mitdem Befehl rmdir.

    1.5.2 Dateien anzeigen: ls

    Die Aufgabe von ls ist die Anzeige von Dateinamen. Es folgen Optionen,die mit einem Bindestrich beginnen, und dann die anzuzeigenden Datei-en. Werden keine Angaben zu den Dateien gemacht, werden alle Dateiendes aktuellen Verzeichnisses angezeigt.

    Wird als Parameter der Name eines Verzeichnisses eingegeben, zeigt ls Verzeichnisseanzeigen: ls -dden kompletten Inhalt des angegebenen Verzeichnisses. Dies kann leicht

    irritierend sein, wennman nur nhere Informationen zu einem Verzeichnishaben wollte. Mit der Option -d (d wie directory) kann man diesenEffekt unterbinden. Dann wird nur das Verzeichnis angezeigt und nichthineingeschaut.

    Beispielsweise legen Sie ein Verzeichnis spielwiese an und lassen es sichhinterher mit ls spielwiese anzeigen, um zu sehen, ob es noch da ist.Sie sehen nichts. Der Grund liegt darin, dass ls das Verzeichnis spiel-wiese nicht selbst anzeigt, sondern seinen Inhalt. Da dieser bisher leerist, wird die leere Liste angezeigt. Es sieht also so aus, als wre spielwieseverschwunden. Mit ls -ld spielwiese kann man sie wiederum sichtbarmachen.

    Einige Optionen werden huger gebraucht. Die Langform mit -l zeigt ls -l zeigtLangformalle Informationen zu den Dateien, die man sich wnschen kann. Von

    rechts nach links erkennt man den Dateinamen, es folgen der Zeitpunktder Erstellung und die Gre der Datei. Das erste Zeichen der Zeile zeigtein d fr Verzeichnisse und ein Minuszeichen fr eine normale Datei. Die

    10 Abgesehen von dem Spezialfall eines rekursiven Lschens mit der Option -r, diespter behandelt wird.

    Operationen mit Dateien 35

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 36 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    anderen Informationen werden in den spteren Kapiteln noch ausfhrlicherlutert. Hier sehen Sie ein Beispiel fr die Ausgabe von ls -l.

    -rwx------ 1 arnold users 13654 Jan 17 04:41 a.out

    drwxr-x--- 2 arnold users 4096 Mr 6 23:35 awk

    -rwxr-xr-x 1 arnold users 13856 Feb 8 10:48 copy

    -rw-r--r-- 1 arnold users 175 Feb 8 10:48 copy.c

    drwxr-xr-x 2 arnold users 4096 Jan 13 12:37 dir

    -rw-rw-r-- 1 arnold users 98 Apr 13 13:55 doppel.c

    -rwxr-xr-x 1 arnold users 13516 Feb 8 21:25 env

    -rw-r--r-- 1 arnold users 165 Feb 8 21:25 env.c

    drwx------ 2 arnold users 4096 Feb 21 14:13 ipc

    drwxr-xr-x 2 arnold users 4096 Feb 13 13:51 make

    -rwxr-xr-x 1 arnold users 13489 Apr 11 21:34 moin

    -rw-r--r-- 1 arnold users 60 Apr 13 13:55 moin.c

    Der Dateiname kann unter UNIX relativ frei gestaltet werden. Er darf kei-nen Schrgstrich enthalten, da dieser als Verzeichnistrenner interpretiertwird. Enthlt der Dateiname Sonderzeichen, die die Shell interpretiert,muss man den Namen in Anfhrungszeichen setzen, wenn man ihn vonder Kommandozeile aus benutzt. Alternativ kann man auch einen Back-slash vor das Sonderzeichen stellen. Fr die Shell bedeutet der Backslash,dass sie das folgende Zeichen nicht interpretieren, sondern einfach durch-reichen soll.

    Option Wirkung

    -l zeigt alle Informationen ber die Datei an

    -a zeigt auch die Dateien, die mit einem Punkt beginnen

    -d zeigt das Verzeichnis und nicht dessen Inhalt

    -t sortiert nach letzter nderung. Neueste Dateien kommen zuerst

    -r dreht die Sortierreihenfolge um

    -R zeigt alle Unterverzeichnisse

    Tabelle 1.2 Einige Optionen zu ls

    Die Option -a zeigt auch Dateien an, die mit einem Punkt beginnen.ls -a zeigt alleDateien Unter UNIX werden Dateien, die zur Konguration verwendet werden,

    gern so benannt, dass das erste Zeichen ein Punkt ist. So stren sie nicht,wenn man eigentlich nur die Arbeitsdateien betrachten will. Auch einversehentliches Lschen wird unwahrscheinlicher, weil der Befehl rm *

    36 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 37 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    diese Dateien nicht erfasst. Will man -l und -a kombinieren, kann manls -a -l oder einfacher ls -al angeben.

    Mit der Option -t wird statt nach dem Alphabet nach der Zeit sortiert. ls -t sortiert nachder ZeitDabei erscheint zuerst die neueste Datei. Mit der Option -r wird die

    Reihenfolge umgekehrt.

    Die Option -R zeigt eine Liste aller Unterverzeichnisse mit ihren Unter-verzeichnissen.

    ls hat erheblich mehr Optionen. Wer sie gern alle kennen lernen mchte,muss nur man ls eingeben.

    1.5.3 Dateien kopieren: cp

    Der Befehl cp kopiert Dateien an genau ein Ziel. Wird nur eine Datei cp kopiert Dateienkopiert, kann das Ziel ein Dateiname sein. Dann wird von der Quelldateieine Kopie angefertigt und diese unter dem Zielnamen abgestellt. Werdendagegen mehrere Dateien kopiert, muss das Ziel ein Verzeichnis sein, daja nicht alle Quelldateien den gleichen Namen bekommen knnen. DieKopien nden sich nach der Ausfhrung unter ihrem bisherigen Namenim angegebenen Zielverzeichnis. Soll das Ziel das aktuelle Verzeichnis sein,muss der Punkt dafr angegeben werden.

    Um mehrere Dateien zu erfassen, kann man sie aufzhlen oder durcheinen Stern auswhlen. Wichtig ist, dass der zuletzt angegebene Namevon cp immer als Ziel interpretiert wird. Ein Verzeichnis als Quelle wirdvon cp einfach bergangen.

    cp erzeugt beim Kopieren immer eine neue Datei. Darum hat eine Datei- cp erstellt neueDateienkopie auch immer den Zeitpunkt des Kopierens als nderungsdatum, und

    nicht das Datum der Datei, von der sie kopiert wird. Auch der Eigent-mer der neu entstandenen Datei ist immer der Anwender, der den Befehlaufgerufen hat. Dieses Verhalten kann mit der Option -p unterbundenwerden, die aber nicht in allen UNIX-Versionen vorhanden ist.

    Auch die Mglichkeit, mit der Option -r komplette Verzeichnisbume zukopieren, ist nicht auf allen Systemen verfgbar. Darum wird das Kopierenkompletter Verzeichnisbume unter Beibehaltung aller Eigenschaften auflteren Systemen normalerweise mit dem Kommando tar realisiert, dasan anderer Stelle betrachtet wird (siehe S. 88).

    Welche Mglichkeiten cp auf Ihrem System sonst noch bietet, erfahrenSie wieder mit man cp.

    Operationen mit Dateien 37

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 38 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    1.5.4 Dateien verschieben oder umbenennen: mv

    Mit dem Befehl mv kann man einer Datei einen anderen Namen gebenmv verschiebt undbenennt um oder mehrere Dateien in ein anderes Verzeichnis schieben. In den meisten

    Fllen fasst mv die Dateien selbst gar nicht an, sondern verndert nur dieEintrge in den Verzeichnissen. Darum wird das Verschieben selbst groerDateien erstaunlich schnell erledigt. Eine Ausnahme gibt es nur, wennUrsprung und Ziel auf verschiedenen Dateisystemen liegen, beispielsweiseauf verschiedenen Festplatten. Dann wird zunchst kopiert, dann wirddas Original gelscht, und zu guter Letzt werden die Eigenschaften derOriginale bernommen.

    1.5.5 Dateien lschen: rm

    Der Befehl rm lscht Dateien. Dies geschieht unwiderruich, und darumrm -i lscht nurnach Rckfrage ist es ganz gut, dass es die Option -i gibt. Dann fragt rm bei jeder einzelnen

    Datei nach, ob sie wirklich entfernt werden soll.

    Will man einen kompletten Verzeichnisbaum lschen, verwendet mandie Option -r. Damit geht rm rekursiv den gesamten Baum durch undentfernt alle enthaltenen Dateien und Verzeichnisse.

    1.5.6 Verzeichnisbefehle: mkdir, rmdir, cd und pwd

    Um Dateien zu ordnen und zu gruppieren, legt man Verzeichnisse an. DerBefehl zum Erzeugen von Verzeichnissen lautet mkdir.11

    Der Anwender bendet sich immer in einem Verzeichnis. Mit cd wechseltcd wechselt dasVerzeichnis er das Verzeichnis. In diesem arbeitet er ab sofort, darum spricht man

    auch von seinem Arbeitsverzeichnis. cd ohne Parameter wechselt in dasHeimatverzeichnis. Das Heimatverzeichnis ist das Verzeichnis, in dem sichder Anwender nach dem Anmelden zunchst bendet.

    Um zu ermitteln, in welchem Verzeichnis man sich aktuell bendet, ver-pwd zeigt denaktuellen Pfad an wendet man den Befehl pwd (print work directory).

    Um ein Verzeichnis wieder verschwinden zu lassen, verwendet man rmdirrmdir lscht leereVerzeichnisse (remove directory). Allerdings kann man mit rmdir nur leere Verzeichnis-

    se lschen und auch nur solche, die derzeit nicht verwendet werden. InVerwendung sind auch Verzeichnisse, in denen noch eine Sitzung von ei-nem anderen Terminal stattndet. Man darf nmlich nicht einfach jemandanderem das Verzeichnis unter den Fen wegziehen. Leider ist es nicht

    11 Die Abkrzung md fr mkdir gibt es unter UNIX nicht. Wer sie vermisst, kann siesich aber als alias (siehe S. 99) denieren.

    38 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 39 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    immer ganz leicht herauszunden, wer mit welchem Prozess dort geradearbeitet. Hier helfen die Befehle fuser und ps (siehe S. 253) und auchlsof (siehe S. 254).

    1.6 Der UNIX-Verzeichnisbaum

    Eine UNIX-Maschine verteilt ihre Dateien in einen Verzeichnisbaum. Die-ser erstreckt sich oft ber mehrere physikalisch unterschiedliche Laufwer-ke. Es gibt also keine Laufwerksbuchstaben oder benannte Laufwerke.Will man beispielsweise eine Diskette bearbeiten oder lesen, muss sie inden Verzeichnisbaum eingehngt werden (siehe S. 174).

    /

    binetc

    home andrea

    arnold. . .

    libopt

    tmp

    usr bin

    libvar log

    Abbildung 1.1 Verzeichnisbaum

    1.6.1 Navigation

    Ein Anwender bendet sich immer an einer Position im Verzeichnisbaum.Dieses Arbeitsverzeichnis zeigt der Befehl pwd. Der Befehl cd wechselt diePosition im Verzeichnisbaum.

    Der Schrgstrich ist der Verzeichnistrenner, aber auch die Bezeichnung fr / ist die Wurzeldes Baumesden Ursprung, die Wurzel aller Verzeichnisse. Mit cd / wechselt man in

    das Wurzelverzeichnis des Verzeichnisbaums.

    Jede Datei eines UNIX-Systems ist vom Wurzelverzeichnis aus zu errei-chen. Eine vollstndige Dateibezeichnung beschreibt dessen Position vonder Wurzel aus. Beispielsweise hie die erste Version des Textes diesesBuches inklusive Pfad:

    /home/arnold/my/texte/unixbuch.sdw

    Der UNIX-Verzeichnisbaum 39

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 40 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Bendet man sich allerdings im Verzeichnis /home/arnold, dann kannman dieselbe Position auch krzer bezeichnen, nmlich mit:

    my/texte/unixbuch.sdw

    Fehlt also am Anfang eines Verzeichnispfades der Schrgstrich, ist dieAbsolutePfadnamen

    beginnen mit /Pfadbezeichnung relativ zum aktuellen Arbeitsverzeichnis. Steht dagegenein / am Anfang, ist die Bezeichnung absolut, egal in welchem Verzeichnisman sich soeben bendet.

    Der Punkt bezeichnet das aktuelle Arbeitsverzeichnis, in dem man sichderzeit aufhlt. Zwei Punkte hintereinander bezeichnen das im Verzeich-nisbaum oberhalb liegende Verzeichnis. Ist das aktuelle Verzeichnis wieoben /home/arnold, bezeichnet .. das Verzeichnis /home.

    Ein weiteres wichtiges Verzeichnis ist das Heimatverzeichnis. Das ist das bezeichnet dasHeimatverzeichnis Verzeichnis, in dem man sich direkt nach dem Einloggen bendet. Gibt

    man cd ohne Parameter an, wechselt man dort hin. Will man das Hei-matverzeichnis in einem Befehl angeben, verwendet man die Tilde ().12

    Ist also /home/arnold das Heimatverzeichnis, kann man die Beispieldateivon oben auch so bezeichnen:

    /my/texte/unixbuch.sdw

    1.6.2 Ein Blick unter die Haube: i-nodes

    In der UNIX-Literatur und auch in den Manpages wird huger der Begriffi-nodes halten dieInformationenber eine Datei

    i-node genannt. Der i-node ist ein Beschreibungsblock in der Dateisys-temstrukur fr eine Datei. Dort stehen smtliche Informationen, die manauch bei einem ls -l sehen kann, und noch ein paar Verwaltungsinfor-mationen mehr. Im i-node bendet sich ein Verweis auf die tatschlichenDatenblcke der Datei. Die i-nodes sind durchnummeriert, und dieseNummer ist auf dem Dateisystem eindeutig.

    Da nun alle Informationen ber die Datei im i-node stehen, brauchtIm Verzeichnissteht nur die

    i-node Nummerman sie nicht in das Verzeichnis zu schreiben. Tatschlich enthlt derVerzeichniseintrag einer Datei auch nur wenige Informationen, in ersterLinie den Dateinamen und die Nummer des i-nodes, in dem dann alleweiteren Informationen ber die Datei stehen.

    12 Streng genommen ist die Umsetzung der Tilde auf das Heimatverzeichnis ein Ser-vice der Shell.

    40 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 41 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Verzeichnis i-node Datenbereich

    nico

    rw-r--r--

    16.5. 17:34

    hans

    rw-rw-rw-

    22.1. 06:12konrad

    Abbildung 1.2 Verzeichnis, i-node und Datenbereich

    Diese Vorgehensweise hat den Vorteil, dass Verzeichniseintrge relativ Vorteileklein sind und im Verhltnis zu anderen Systemen erstaunlich ott ver-waltet werden knnen. Auch die Mglichkeit, mit Links zu arbeiten (sieheS. 52), also dass zwei verschiedene Verzeichniseintrge auf dieselbe Da-tei zeigen, ist mit Hilfe des i-nodes leicht implementierbar. Aus dieserArchitektur wird aber auch klar, dass es zwar mehrere Namen fr die-selbe Datei gibt, aber dennoch nur einen Besitzer, da alle Verweise aufdenselben i-node zeigen.

    1.6.3 Was ist wo?

    Es gibt bestimmte Verzeichnisse, die man auf jeder UNIX-Maschine ndet.

    /etc

    Dies war auf den lteren Systemen das Arbeitsverzeichnis des Systemad- Kongurationministrators. Hier lagen alle Kongurationsdateien des Systems und dieProgramme, die nur root verwenden durfte. Im Laufe der Zeit wurdees in /etc etwas eng, sodass die Administrationswerkzeuge nach /sbinausgelagert wurden.

    In /etc benden sich immer noch die Kongurationsdateien und die Start-skripten von UNIX.

    /bin und /lib

    Im Verzeichnis /bin benden sich die Programme, die als minimale Aus- Basisbefehle undBibliothekenstattung erforderlich sind, um das System zu administrieren. Dieses Ver-

    zeichnis sollte auf der Bootpartition liegen. Ebenfalls dort wird das Ver-zeichnis /lib als Ort fr die dynamischen Bibliotheken der Programme aus/bin bentigt. Dynamische Bibliotheken sind Dateien mit Programmtei-

    Der UNIX-Verzeichnisbaum 41

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 42 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    len, die von mehreren Programmen bentigt werden und so vom Systemzur Verfgung gestellt werden, sobald sie gebraucht werden.

    /tmp

    Das Verzeichnis /tmp ist fr temporre Dateien gedacht. Es ist fr jedenTermporreDateien Benutzer schreib- und lesbar und immer an dieser Stelle zu nden. Man

    sollte dieses Verzeichnis tatschlich nur fr temporre Dateien verwen-den, da einige Maschinen in regelmigen Abstnden dieses Verzeichnisper cron (siehe S. 111) lschen.

    /usr

    Hier benden sich die normalen Anwenderprogramme (/usr/bin) undStandard-installationen deren Bibliotheken (/usr/lib). In /usr/include benden sich die Header-

    dateien fr die Schnittstellen zum System. Headerdateien werden vonProgrammierern bentigt, um Zugriffe auf die Systemaufrufe zu bekom-men. Unter /usr/man sind die Manpages abgelegt. /usr/X11 enthlt dieProgramme zur graschen Oberche.

    Auf lteren Systemen sind hier auch die Verzeichnisse zu nden, die heuteunter /var liegen. Bei einigen Systemen ndet man aus Kompatibilitts-grnden noch symbolische Links auf Verzeichnisse in /var. Diese Um-schichtung verfolgt das Ziel, dass im Verzeichnis /usr nicht geschriebenund gelscht werden soll. Der Hauptgrund liegt darin, dass auf das Ver-zeichnis /usr oft zugegriffen wird. Wenn es durch Schreiben und Lschenfragmentiert wird, leidet der Durchsatz der Maschine. In der stndig aktu-ellen Diskussion ber Viren knnte man auch berlegen, das Verzeichniskomplett schreibzuschtzen. Aber so einfach ist das auch nicht. Zunchstmsste fr Installationen von Programmen immer wieder der Schreib-schutz aufgehoben werden. Des Weiteren hat auch jetzt schon ein nor-maler Anwender keinerlei schreibende Zugriffsrechte auf das Verzeichnis.Ist aber erst einmal der Zugang des root geknackt, gibt es ohnehin keinenSchutz mehr fr die Maschine.

    /var

    Hier liegen die Dateien, die vom System oder den AnwenderprogrammenProtokolle undSpooling verndert werden: Protokolle und Spooling. In lteren Systemen nden

    sich diese Dateien noch im Verzeichnis /usr.

    Das Verzeichnis /var/log enthlt Fehlerprotokolle. Die wichtigste Dateiist die /var/log/messages. blicherweise legt der Fehlerdmon syslogd

    42 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 43 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    hier seine Meldungen ab. Allerdings ist der Ort dieser Datei durch die/etc/syslog.conf kongurierbar (siehe S. 239).

    Unter /var/spool nden sich die Verzeichnisse fr das Spooling. Druck-auftrge, Mails und Arbeitsauftrge (cron bzw. at, siehe S. 111) werdenhier abgelegt.

    /home bzw. /users

    An das Verzeichnis /home werden bei den meisten UNIX-Systemen die Heimatverzeichnisder BenutzerVerzeichnisse der Benutzer angehngt. Unter Mac OS X heit dieses Ver-

    zeichnis /users. Fr jeden Benutzer wird ein eigenes Verzeichnis ange-legt, und der normale Anwender hat mit seinen Dateien in den ande-ren Verzeichnissen normalerweise nichts verloren. Anfangs hatte man dieBenutzerverzeichnisse unter /usr abgelegt. Als dieses Verzeichnis ber-quoll, verwandte man kurzzeitig /user. Da beide Verzeichnisse sprachlichschwer unterscheidbar waren, ging man schlielich zum Namen /homeber. Festgelegt wird der Ort von Benutzerverzeichnissen durch die Datei/etc/passwd (siehe S. 144).

    /opt

    Inzwischen werden auch grere Programmpakete nicht mehr unter /usr, Programmpaketesondern unter /opt abgelegt.

    1.6.4 Suche im Verzeichnisbaum: nd

    Mit dem Kommando find ist es mglich, einen Verzeichnisbaum rekur- Suche einer Dateisiv13 nach Dateien zu durchsuchen und diese auszugeben oder Aktionenauf den gefundenen Dateien auszufhren. find ist also ein sehr mchtigerBefehl. Soll nur eine Datei gesucht werden, reicht die vereinfachte Syntax:

    nd Pfadname -name Dateimaske -print

    Der Pfadname gibt an, ab welcher Stelle die rekursive Suche beginnt.Die Dateimaske beschreibt die gesuchte Datei. Es knnen die normalenWildcards verwendet werden, um mehrere Dateien anzusprechen.

    13 Rekursiv heit selbstaufrufend und ist eine besondere Programmiertechnik. Dadas Durchlaufen von Bumen durch rekursive Programme am einfachsten zu reali-sieren ist, nennt man Bume rekursive Strukturen und das Durchlaufen der kom-pletten ste eines Baumes rekursiv. Vgl. Wirth, Niklaus: Algorithmen und Daten-strukturen mit Modula-2. 4. Au. Stuttgart, Teubner, 1986. S. 174ff.

    Der UNIX-Verzeichnisbaum 43

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 44 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Neben der exiblen Suche ist die interessanteste Fhigkeit von find dieKommandos aufgesuchte Dateien Ausfhrung eines Kommandos auf jeder der gefundenen Dateien. Die

    zustndige Option heit -exec. Dahinter wird ein Befehl gesetzt, der miteinem Semikolon abgeschlossen wird. Letzteres muss durch einen Back-slash gegen die Interpretation durch die Shell geschtzt werden. Die Shellwrde das Semikolon als Trennzeichen zwischen zwei Befehlen interpre-tieren, die nacheinander ausgefhrt werden. Vergit man den Backslash,wrde die Shell das Semikolon selbst interpretieren und nicht an findweiterreichen. Der Bezug auf die gefundene Datei wird im Befehl durchein Paar geschweifter Klammern reprsentiert. Um beispielsweise alle Da-teien namens core in den Heimatverzeichnissen zu lschen, lautet derBefehl:

    find /home -name core -exec rm {} \;

    Der erste Parameter gibt an, wo die Suche beginnen soll. -name fordert,dass ein Dateiname, der unter dem Verzeichnis /home gefunden wird,der Dateimaske entspricht. Nur dann wird die Datei von nd weiter bear-beitet. Man kann es auch so ausdrcken, dass die Optionen einen Wahr-heitswert zurckliefern mssen, der wahr ist, wenn die weiteren Optionenbearbeitet werden sollen. Die Maske zu -name ist einfach core. Nur Da-teien mit dem Namen core werden also weiter bearbeitet. Zwischen derOption -exec und dem \; steht der Befehl, der auf die gefundenen Datei-en angewandt wird. Der gefundene Dateiname mit seinem Pfad wird dorteingesetzt, wo sich im Befehl das geschweifte Klammernpaar bendet.Wenn find eine Datei namens core im Verzeichnis /home/arnold fnde,wrde der folgende Befehl generiert und per -exec ausgefhrt:

    rm /home/arnold/core

    Der Befehl nd kennt noch einige Optionen, die teils die Suche nach spe-ziellen Dateien ermglichen und teils die Ausgabe informativer gestalten.Wie oben schon angedeutet, hngt es vom dem Wahrheitswert, den dieOptionen zurckliefert ab, ob die gefundene Datei weiterbearbeitet wird.Hier sind die wichtigsten Optionen zusammengefasst:

    -name Dateimaske ist wahr, wenn die Dateimaske mit dem gefunde-nen Dateinamen bereinstimmt. Es knnen regulre Ausdrcke ver-wendet werden.

    -print ist immer wahr. Bewirkt, dass das Ergebnis der Suche angezeigtwird. Bei einigen find-Versionen muss -print nicht explizit angegebenwerden, wenn keine weitere Option verwendet wird.

    44 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 45 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    -ls ist immer wahr. Es bewirkt, dass neben dem Pfadnamen noch einwenig Statistik angezeigt wird. Dies beinhaltet die folgenden Angaben:

    i-node Nummer der Datei (siehe S. 40)

    Gre in Kilobytes (1024 Bytes)

    Protection mode

    Anzahl der harten Links

    Benutzer

    Gruppe

    Gre in Bytes

    nderungszeitpunkt

    -type Zeichen Der Dateityp wird erfragt. Das Zeichen kann folgendeWerte haben:

    Zeichen Bedeutung

    f Dateien

    d Verzeichnisse

    l symbolische Links

    b c Peripheriedateien

    p s Kommunikationsendpunkte (named pipe und socket)

    Tabelle 1.3 Dateitypen

    -perm Oktalzahl Erfragt die Berechtigung, die in oktaler Darstellungangegeben wird. Zur Codierung siehe das Kapitel Berechtigungenauf S. 48. Beispiel:

    find . -perm 0600 -print

    Es werden alle Dateien unterhalb des aktuellen Verzeichnisses ange-zeigt, die Schreib- und Leserecht fr den Benutzer und und keineZugriffsrechte fr alle anderen zulassen.

    Man kann festlegen, dass mindestens die angegebenen Rechte vorhan-den sein mssen. Dazu muss der Zahl ein Minuszeichen vorangehen.

    -exec Befehl Fhrt einen Befehl aus. Die aktuelle Datei wird durchdas geschweifte Klammernpaar { } als Argument gekennzeichnet. DerBefehl hrt mit einem Semikolon auf. Damit die Shell es nicht selbstinterpretiert, muss es mit einem Backslash versehen werden. Beispiel:

    Der UNIX-Verzeichnisbaum 45

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 46 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    -exec rm { } \ ;

    Man kann die verschiedenen Optionen von nd kombinieren. Man knn-LogischeVerknpfung der

    Optionente beispielsweise nach Dateien suchen, die .rhosts heien und nicht dieBerechtigung 600 haben. Dazu muss man die Aussagen miteinander lo-gisch verknpfen. Nach den Gesetzen der Logik heit UND, dass beideAussagen zutreffen mssen, und ODER, dass mindestens eine der Aus-sagen zutreffen muss. Derartige Konstruktionen werden vor allem imBereich der Shellprogrammierung bentigt. Mit Hilfe der folgenden Ope-ratoren sind logische Ausdrcke kombinierbar:

    ( )Eine Gruppe von logischen Ausdrcken und Operatoren in Klammern.Klammern sind besondere Zeichen fr die Shell. Darum muss ihnen einBackslash vorangestellt werden.

    !Die Negation eines logischen Ausdrucks. Das Ausrufezeichen (!) repr-sentiert den NICHT-Operator.

    -aDie UND-Verknpfung von logischen Ausdrcken. Werden mehrerelogische Ausdrcke hintereinander geschrieben, wird dies implizit alsUND interpretiert. Man kann auch explizit den Operator -a verwenden.

    -oDie ODER-Vernpfung von logischen Ausdrcken wird durch den Ope-rator -o erreicht.

    Hier sehen Sie zunchst den Befehl, der das obige Beispiel aufgreift undalle Dateien namens .rhosts in den Heimatverzeichnissen lscht, die nichtdie Berechtigung 600 haben:

    find /home -name .rhosts -a ! -perm 0600 -exec rm { } \ ;

    Das folgende Beispiel sucht ab dem aktuellen Verzeichnis alle Dateien,die auf .log oder .aux enden:

    find . -name \*.log -o -name \*.aux

    Vor den Sternen muss ein Backslash stehen, damit sie an find durchge-reicht und nicht bereits durch die Shell interpretiert werden.

    1.7 Dateieigenschaften

    Der Begriff Datei ist unter UNIX sehr allgemein. Eigentlich ist fast allesals Datei ansprechbar seien es Gertedateien (special les), die den

    46 UNIX anwenden

  • Arnold Willemer, Wie werde ich UNIX-Guru, Version 1.03 vom 07.10.2002 Galileo Press, ISBN: 3-89842-240-2Layout: gp97.cls, Version 1.6 (05. September 2002), (C) Daniel Lauer, Bonn Mit TeX bearbeitet am 7. Oktober 2002, 12:44 UhrS. 47 Einstellungen: mit Marginalien mit Anleser neue Rechtschreibung mit Seitenrand

    Kontakt zur Peripherie herstellen, oder Verzeichnisse, die auch nur eineSonderform von Dateien sind. Alle haben jedenfalls Eigentmer, Rechteund andere Eigenschaften.

    1.7.1 Eigentmer wechseln: chown und chgrp

    Jede Datei hat in ihrem Dateieintrag die Information, welchem Benutzer Jede Datei kenntihr Herrchenund welcher Gruppe sie gehrt. Um genau zu sein, werden die User-ID

    und die Group-ID des Benutzers abgelegt, wie sie in der /etc/passwd deslokalen Rechners hinterlegt sind. Damit in einem lokalen Netzwerk dieEigentmerbezeichnungen konsistent sind, ist es wichtig, dass Benutzerauf jeder Maschine, auf der sie angemeldet sind, die gleiche User-IDhaben. Gleiches gilt fr die Group-ID.

    Eigentmer und Gruppe werden in den Eigenschaften einer Datei gespei-chert, weil man fr den Eigentmer und die Gruppe einer Datei jeweilsandere Berechtigungen einstellen kann als fr den Rest der Welt.

    Eine neue Datei erhlt immer die User-ID und die Standard-Group-IDdes