UNIX Grundlagen Adi Kriegisch <[email protected]> UNIX Grundlagen - Überblick Ablauf - Überblick • Geschichte von UNIX • UNIX-Konzepte • Grundlagen im Umgang mit UNIX » Verwenden einer Shell » einfache Befehle » bewegen im Netzwerk • Fragen, Antworten und noch mehr Beispiele Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Geschichte 1 von 3 Geschichte - Ein kurzer Abriss Vor UNIX: • Batchsysteme • Operator-Betrieb • Vielstufige „Pipeline“ bis zu Ergebnissen • Ziel I: Computer effizient nutzen • Ziel II: Schnelles Abarbeiten der „Jobs“ => Nicht optimal Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Geschichte 2 von 3 Geschichte - Ein kurzer Abriss 1969 - nicht nur eine sexuelle Revolution: Ken Thompson entwickelt erstes UNIX: • Multi-User / Multi-Tasking • Intelligente Speicherverwaltung • Sicherheit auf Benutzerebene • Benutzer arbeiten via Terminal • Portierbarkeit eingeschränkt (PDP-7) Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Geschichte 3 von 3 Geschichte - Ein kurzer Abriss 1971 - Der Beginn einer Erfolgsstory: Dennis Ritchie entwickelt C: • UNIX vollständig in C • Portierung auf PDP-11 • User entwickeln Tools » Open Source » Community entsteht Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX Konzepte 1 von 4 Konzepte Kriterien zur Einteilung von Betriebssystemen • Management der Hardware • Ressourcenverwaltung • Dateisystem • Verwaltung und Administration • ... Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX Konzepte 2 von 4 Konzepte - Hardware HAL - Hardware Abstraction Layer: • Low-Level Treiber Hardware-spezifisch • High-Level Management transparent » Ladbare Kernelmodule (kext*) » Gerätedateien (/dev) => Abstraktion und Transparenz Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX Konzepte 3 von 4 Konzepte - Ressourcenteilung Hardware intelligent nutzbar machen • Umgang mit Prozessen (Multitasking) • Prioritäten bei der Ausführung • Speichermanagement • Benutzerverwaltung (Multiuser) • Dämonen verwalten die Hardware (CUPS) Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX Konzepte 4 von 4 Konzepte - Administration Wartung von Betriebssystemen • UNIX verlangt wenig Wartung • Fehler sind rekonstruierbar (Lösung!) • Diagnose mittels Log-Dateien und Tools • Wartbar über Netzwerk (Secure Shell) • Benutzer- und Netzwerkwartung: » durch NetInfo und LDAP » sowohl graphisch als auch CLI Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Dateisystem 1 von 4 Dateisystem • Sicherheit und Zugriffskontrolle » „drwxr-xr-x“ - Permissions » Reflektiert Benutzer/Gruppensicherheit » Gegensatz: Access Control Lists (M$) • Organisation der Daten und Programme » UNIX-spezifisches » Applespezifisches » Internationalisierung • Spezielle Features (Journaling) Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Dateisystem 2 von 4 Dateisystem - Sicherheit „drwxr-xr-x“ - Permissions Zerlegung: d rwx r-x r-x • Typ der Datei: » „d“ - Directory » „-“ - normale Datei » „b“/„c“- Block/Character Device » „l“ - (Sym-)Link „Verknüpfung“ • Zugriffsberechtigungen für: Besitzer, Gruppe und alle Anderen Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Dateisystem 3 von 4 Dateisystem - Struktur • UNIX-Pfade: (vor Usern „versteckt“) » usr, bin, etc, dev, opt, ... • Apple-Pfade: » Applications, Users, System, Library, ... • Internationalisierung: » Übersetzung von Verzeichnisnamen: Users: Benutzer, Applications: Programme Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Dateisystem 4 von 4 Dateisystem - Features • Vereinheitlichtes Schema: Alles unter „/“ » Mount-Points für alles (meist /Volumes) » Auch über Netzwerk (/Network/Servers) » Dateisysteme transparent (hfs, iso, afs,...) • Einbinden mittels „mount“ • Journaling (ab 10.2.2) Konsistenz des Dateisystems sicherstellen Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Shell 1 von 4 Die Shell • Interaktiver Befehlsempfänger • Terminal, das Fenster - Shell, das Programm • „Netzwerkfähig“ • Eingabeaufforderung - Der „Prompt“: Last login: Sat Mar Welcome to Darwin [equinox:~] adi% 7 15:02:03 on ttyp1 » Rechnername » Pfad („~“ = Homeverzeichnis) » Benutzername Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Shell 2 von 4 Die Shell - Navigation (ls) • ls - Inhalt von Verzeichnissen: [equinox:~] adi% ls Desktop Movies Documents Music Library Pictures [equinox:~] adi% Public Send Registration Sites • Optionen zu ls: » -l long; Langes Format: drwx------ 4 adi users 136 Oct 4 2002 Desktop » -a all; alle Dateien, auch versteckte (.) Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Shell 3 von 4 Die Shell - Navigation (cd) • cd - Verzeichnis wechseln: [equinox:~] adi% cd /Users [equinox:/Users] adi% • Absolute Pfade: /Users • Relative Pfade: » „.“ = aktuelles Verzeichnis » „..“ = nächsthöheres Verzeichnis: [equinox:~] adi% cd .. [equinox:/Users] adi% Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Shell 4 von 4 Die Shell - Hilfe! • „apropos“ - Befehle finden: [equinox:~] adi% apropos firewall ipfirewall(4) - IP packet filter and ... ipfw(8) - IP firewall and traffic ... [equinox:~] adi% • „man“ - Hilfe zu Befehlen: [equinox:~] adi% man ipfw oder mit Angabe der Kategorie: [equinox:~] adi% man 8 ipfw Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX und Apple UNIX und Apple • Unterschiedliche Ansätze: UNIX ist schweigsam! „Keine Nachrichten sind gute Nachrichten!“ Zuhören lernen! Wegschmeißen ist keine Lösung... • Unix-Community vs Apple-Community Nutzen der vorhandenen Ressourcen „Andere Sprache“ • „Gefühl“ für Unix entwickeln Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen Fragen? Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen Pause! Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX im Netzwerk 1 von 5 UNIX im Netzwerk • Volle Netzwerkfähigkeit • Serverdienste im Netzwerk (apache, sshd, ...) • Diagnosetools: ping / traceroute • Konfigurationstools: ifconfig / route • Firewall: ipfw • Anwendungen: Secure Shell (ssh), ftp, ... Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX im Netzwerk 2 von 5 UNIX im Netzwerk - Server • Alle Dienste laufen als Daemon • z.B: apache (httpd), sshd, cupsd, inetd, ... • Konfiguration: (Textdateien) » /etc/httpd/httpd.conf » /etc/inetd.conf » /etc/sshd_config » /etc/cups/cupsd.conf • Nach Änderungen Dienst neu starten! => Einfache Wartung Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX im Netzwerk 3 von 5 UNIX im Netzwerk - Diagnose • Hat Computer Verbindung zum Netzwerk? ping rechner / traceroute rechner • Funktioniert Namensauflösung (DNS/hosts)? » Rechner im internen Netzwerk in /etc/hosts • Verbindungen zum eigenen Computer: netstat (-n) • IP Adresse und Gateway feststellen ifconfig / route Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX im Netzwerk 4 von 5 UNIX im Netzwerk - Konfiguration • Einfache Konfiguration: » IP-Adresse mit ifconfig » Gateway mit route • ifconfig en0 192.168.1.2 netmask 255.255.255.0 Gibt „en0“ die Adresse 192.168.1.2 • route add default 192.168.1.1 Setzt das Gateway auf 192.168.1.1 • netstat -r (-n) Zeigt die Routing-Tabellen Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX im Netzwerk 5 von 5 UNIX im Netzwerk - Advanced IP-Firewalling mit ipfw • Verwendung: » ipfw list (Status anzeigen) » ipfw add „rule“ (Regeln hinzufügen) » ipfw del „nr“ (Regeln löschen) • Beispiel: Sperren von Port 2222/UDP ipfw add deny udp from me to any 2222 Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - UNIX und Apple II UNIX und Apple II • Keine Angst vor vielen Zeilen Text! • Informationsquellen: » Befehle (netstat, ifconfig, ipfw, dmesg, ...) » man/apropos! » Log-Dateien /var/log/* • Internet: BSD-Newsgroups • Unix bietet Freiheit! Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Advanced UNIX 1 von 3 Advanced UNIX • Pipelines - Befehle hintereinander • Ausgabe in Datei umleiten • Cron - Periodische Tasks automatisieren • Suchen von Dateien (find/locate) • In Dateien suchen (grep/cat) Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Advanced UNIX 2 von 3 Advanced UNIX - Pipelines • Ausgabe eines Befehls als Eingabe: » cat /var/log/system.log » davon nur alle Zeilen mit „sudo“: | grep sudo » dann noch die Ausgabe seitenweise: | more • stdin, stdout, stderr umleiten • <, >, >>, 2> Ausgabe in Datei (bash!) Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Advanced UNIX 3 von 3 Advanced UNIX - Crontab • crontab -l (crontab anzeigen) • crontab -e (crontab bearbeiten: Editor vi) • Crontabeintrag: * * * * * /bin/Befehl » Minute: 0-59 » Stunde: 0-23 » Tag: 0-31 » Monat: 1-12 (auch Namen möglich) » Wochentag: 0-7 (auch Namen möglich) Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen Fragen? Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen - Themen • Prozessmanagement (ps, kill, top) • Netzwerktools (ssh, ftp, telnet, rsh) • Dateisysteme einbinden (mount, umount) • Links - Verknüpfungen (ln -s) • Beispiele: » Traffic-Zähler » chmod/chown von Public-Verzeichnis » Sperren von Ports; erweitertes Firewalling » Shellscripts Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen Fragen? Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen Danke! Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen Pause! Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]> UNIX Grundlagen Adi Kriegisch <[email protected]> Adi Kriegisch <[email protected]>