Übersicht: Was passiert heute? UNIX - LINUX Eine praktische Einführung Dr. Michael Höding hoeding@fh-brandenburg.de Vorstellungsrunde Organisatorisches: Vorlesung, Übung, Schein Warum UNIX für Wirtschaftsinformatikstudenten? Was ist UNIX überhaupt? Historische Entwicklung von UNIX UNIX für alle: Von UNIX zu LINUX LINUX: UNIX auf dem Desktop (besser als Windows?) Überblick über die Themen der Vorlesung Heute: UNIX im Überflug Dr. Michael Höding Unix-Linux Dateisystem 1 Dr. Michael Höding Unix-Linux Dateisystem 2 Organisatorisches Vorlesung: Dienstag: 12.15 13.45 Uhr in R.307 Wer unterstützt Beamer-Transport? Übung: Montags bei Hagen Höpfner Linux-Experte, Autor für Linux-Magazin Vorlesung: Konzepte, Überblick, Details Zwang zum Zuhören PowerPoint (mit Star-Office) und echtes Linux auf Notebook Ähnlich zur Übung Hinweis: Folien im Web (~hoeding/...) Leistungsnachweis: Projekt in Übung/Gespräch, wenn als Diplomprüfungsteil erwünscht bitte anmelden und (uns) rechtzeitig Bescheid sagen Warum UNIX für WI-Studenten? UNIX ist die Plattform für betriebliche Anwendungssysteme, weil es konzeptionell sauber ist es viele Benutzer unterstützt es hochgradig skalierbar ist... Sie werden in der beruflichen Praxis (sehr wahrscheinlich) mit UNIX arbeiten als DV-Entscheider als Berater als Entwickler oder Administrator Deshalb: das doing ist wichtig Dr. Michael Höding Unix-Linux Dateisystem 3 Dr. Michael Höding Unix-Linux Dateisystem 4 Das Betriebssystem UNIX (1) UNIX ist ein Betriebssystem, d.h. UNIX ist eine Sammlung von Programmen zur Steuerung und Kontrolle eines Computers Es umfasst/verbindet/steuert/kontrolliert Hardware und Software Multi-User-System Multi-Tasking-System (Multi-Prozessor-System?) leistungsstark und flexibel einfache Konzepte, komplexe Strukturen Das Betriebssystem UNIX (2) UNIX läuft auf fast jeder Hardware (Mac?) Standard-Programme auf vielen Plattformen leistungsfähige Applikationen frei verfügbare Software TeX (vs. Winword) GNU-Projekt und Linux Apache, Internet generell Die Shell: gewöhnungsbedürftig Komplexität: Wissen ist sehr nützlich Dr. Michael Höding Unix-Linux Dateisystem 5 Dr. Michael Höding Unix-Linux Dateisystem 6 1
Historisches (1) 1965 Bell, GE, MIT entwickeln MULTICS (multiplexed information and computing service) 1969: Ken Thomson enwickelt UNICS (ein Joke von Brian Kernigham: uniplexed information and computing system) 1971: UNIX wird auf die PDP-11 portiert 1973: Dennis Ritchie schreibt UNIX in C neu (C=Kernighan und Ritchie) deshalb leichte Portierbarkeit von UNIX Zahl der UNIX-Installationen: 25 Historisches (2) 1974 wissenschaftliche Publikation zu UNIX 1975 Portierung auf nicht PDP-Maschinen Freie UNIX-Lizenzen für Universitäten Keimzelle der UNIX-Erfolgs Zahl der UNIX-Installationen: 500 1983: Bell-System V und BSD-UNIX 4.3 Berkley UNIX... Rechtsstreit mit AT&T 1984: Zahl der UNIX-Installationen: 100000 1986: System V, Release 3.0 1987: Zahl der UNIX-Installationen: 300000 Dr. Michael Höding Unix-Linux Dateisystem 7 Dr. Michael Höding Unix-Linux Dateisystem 8 Historisches (3) 1989: System V, Release 4.0 Vereinigung mit anderen UNIX-Linien (BSD, XENIX) 1989: Zahl der UNIX-Installationen: 1000000 Zahlreiche UNIX-Varianten IBM: AIX Hewlett-Packard: HP-UX Siemens: SINIX Sun: SunOS und Solaris (BSD 4.3 System V) MacOS X (Mach-Kernel) Linux Dr. Michael Höding Unix-Linux Dateisystem 9 LINUX Historisches (1) 1991: Linus Torvalds experimentiert mit 386er Multitasking und Protected Mode Basis: MINIX von Tanenbaum Projekt: Terminalemulation Mutation zum Betriebssystemprojekt Herbst 1991: Erste Linux-Version im Internet, Open- Source, Free Software (kostenlos und frei) Linus killt sein MINIX unabsichtlich 1992 Streit zwischen Torvalds und Tanenbaum X-Windows und krude Netzwerkunterstützung 1994 Linux 1.0 präsentiert kommerzielle Verbreitung von Linux Dr. Michael Höding Unix-Linux Dateisystem 10 LINUX Historisches (2) 1995 Tux Ab 1994 Linux etabliert sich als Print/File/Netz-Server in lokalen Netzen (Admins setzen Linux einfach ein) (1996 Java und Sun sind Open-Source) 1998 Oracle, SAP auf Linux (1998 Netscape wird Open-Source) 1999 Linux-Boom IBM setzt Linux als strategische Plattform ein Börsengänge von RedHat etc. 2001 Linux in der UNIX-Veranstaltung an der Fachhochschule Brandenburg Linux auf dem Desktop? Im Server-Bereich ist Linux etabliert Linux-Admins, Informatiker, Leute die auf der Kommandozeile arbeiten nutzen Linux auf dem Desktop Moderne Windows-Oberflächen: z.b. KDE Fast alle Applikationen: Office, z.b. Star-Office, Applixware Mail (kmail, pine, elm) Browser (Netscape, Opera, Konqueror) Grafik, z.b. Gimp., Killustrator Spiele, Tools (z.b. Palm), Multimedia Dr. Michael Höding Unix-Linux Dateisystem 11 Dr. Michael Höding Unix-Linux Dateisystem 12 2
Themen der Vorlesung (1) Themen der Vorlesung (2) Benutzung: Ein erster Einstieg Das Leben (in) der Shell Dateisystem, Dateien unter UNIX Verzeichnisse, Verzeichnisstrukturen grundlegenden Dateikommandos Editoren: vi (hart und nützlich) Rechte und Benutzer Prozesse Grundkonzept Prozessinformationen verstehen wichtige Kommandos zu Prozessen (Zeit/Job)-Steuerung Textverabeitung: TeX Netzwerkfunktionalitäten Basis: Ethernet... Hostname... IP Im Netzwerk: Gateway... Nameserver... Internet-Dienste: WWW, FTP, Mail, Ping,... Sicherheit: Benutzer... Firewall Programmierung unter Linux Perl, C (gcc), Java - JDK PHP (Übung) Kernel, Systembibliotheken, Treiber Dr. Michael Höding Unix-Linux Dateisystem 13 Dr. Michael Höding Unix-Linux Dateisystem 14 Themen der Vorlesung (3) Datenbanken mysql Oracle Web und Datenbanken Übung: Projekt mit PHP und mysql Weitere Wünsche? Lernziel: sicherer Umgang mit UNIX-Betriebssystemen durch Konzeptwissen und Werkzeugwissen Dr. Michael Höding Unix-Linux Dateisystem 15 Überflug: Anmelden und Passwort ändern telnet, rlogin, passwd hoeding@linux:~ > telnet linux Trying 127.0.0.2... Connected to linux. Escape character is '^]'. Welcome to SuSE Linux 7.2 (i386) - Kernel 2.4.4-4GB (3). linux login: hoeding Password: Last login: Sat Oct 6 10:36:40 from console Have a lot of fun... hoeding@linux:~ > passwd Old Password: New password: You must choose a new password. passwd: Authentication token manipulation error hoeding@linux:~ > Dr. Michael Höding Unix-Linux Dateisystem 16 Pfadnamen und Navigation (1) cd - Verzeichnis wechseln (change directory) pwd - Pfad anzeigen (print name of current/working directory) ls - Inhalt eines Verzeichnisses (list directory contents) hoeding@linux:~ > ls ckdesktop lehre nsmail office52 public_html test hoeding@linux:~ > cd office52/ hoeding@linux:~/office52 > ls LICENSE README help program setup share soffice user hoeding@linux:~/office52 > pwd /home/hoeding/office52 hoeding@linux:~/office52 > ls Absolute vs. relative Pfade ls: viele (zahllose) Optionen -a : alle Dateien (auch versteckte.-dateien) -l: Langformat, viele Details -t: zeitlich geordnet -r: rekursiv -x: zeilenweise statt spaltenweise Beispiele: ls -ltr ls -al (auch alias ll) ls -l u* Dr. Michael Höding Unix-Linux Dateisystem 17 Dr. Michael Höding Unix-Linux Dateisystem 18 3
Prozesse Prozess: In Ausführung befindliches Programm Was läuft überhaupt? ps : process status ps -e: alle Prozesse ps -f: (full), langform, detaillierte Prozessinformation hoeding@linux:/var/log > ps -f UID PID PPID C STIME TTY TIME CMD hoeding 762 759 0 20:36 pts/0 00:00:00 /bin/cat hoeding 798 797 0 20:40 pts/1 00:00:00 /bin/bash hoeding 820 819 0 20:48 pts/2 00:00:00 /bin/bash hoeding 842 840 0 20:49 pts/2 00:00:00 sh -c { export MAN_PN LESS; MAN_hoeding 844 842 0 20:49 pts/2 00:00:00 less hoeding 884 798 16 21:03 pts/1 00:00:00 ps -f hoeding@linux:/var/log > Dr. Michael Höding Unix-Linux Dateisystem 19 Prozesse (2) Was läuft überhaupt? top (display top CPU processes) 9:09pm up 34 min, 1 user, load average: 2.44, 2.22, 1.95 74 processes: 69 sleeping, 5 running, 0 zombie, 0 stopped CPU states: 3.9% user, 1.7% system, 0.0% nice, 94.2% idle Mem: 61536K av, 60068K used, 1468K free, 0K shrd, 672K buff Swap: 337324K av, 33552K used, 303772K free 36080K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 797 hoeding 14 0 3360 2360 1796 R 2.5 3.8 0:01 kd einit 551 root 15 0 18068 15M 2704 R 1.9 25.2 0:41 X 896 hoeding 13 0 984 984 772 R 0.7 1.5 0:00 to p 8 root 9 0 0 0 0 SW 0.1 0.0 0:01 ku pdated 768 hoeding 9 0 2220 1124 964 R 0.1 1.8 0:00 kd einit 1 root 9 0 60 48 48 S 0.0 0.0 0:04 in it 2 root 9 0 0 0 0 SW 0.0 0.0 0:00 ke ventd 3 root 9 0 0 0 0 SW 0.0 0.0 0:00 ka pm-idled 4 root 19 19 0 0 0 SWN 0.0 0.0 0:00 ks oftirqd_cpu0 Dr. Michael Höding Unix-Linux Dateisystem 20 Prozesse (3) Prozesse abbrechen mit kill kill - terminate a process aber in Wirklichkeit: Prozess ein Signal senden kill -s SIGNAL PID, z.b. kill -9 850 hoeding@linux:~ > ps PID TTY TIME CMD 762 pts/0 00:00:00 cat 792 pts/1 00:00:00 bash 849 pts/1 00:00:01 tuxeyes 850 pts/1 00:00:00 ps hoeding@linux:~ > kill 849 hoeding@linux:~ > Programme Programme starten, z.b. cat.profile tuxeyes Im Hintergund starten durch & tuxeyes & Programme/Prozesse in der Shell steuern ctrl-z: suspendieren im Hintergrund weiterlaufen lassen: bg im Fordergrun weiterlaufen lassen: fg crtl-c: Prozeß stoppen ctrl-d: Eingabe abbrechen ctrl-s: Ausgabe stoppen (ctrl-q: Ausgabe fortsetzen) Dr. Michael Höding Unix-Linux Dateisystem 21 Dr. Michael Höding Unix-Linux Dateisystem 22 Ein Blick auf die Architektur Kommandos Shell Kernel Benutzerprogramme Shells Schale um den Kern leistungsfähiges Programm/Prozess zum Starten anderer Programme mit Ein/Ausgabe eigene Umgebungsvariablen spezielle Möglichkeiten zur ergonomischen Bedienung Shell-Programmierung Verschiedene Shells sh: die primitivste Shell csh: C-Shell ksh: Korn-Shell tcsh: Turbo-C-Shell bash: Bourne-Again-Shell (Linux Kern) Dr. Michael Höding Unix-Linux Dateisystem 23 Dr. Michael Höding Unix-Linux Dateisystem 24 4
Datei-Inhalte anschauen cat: concatenate files und Ausgabe auf stdout more und less: seitenweise Ausgabe (auch pg) tail: den Schwanz anzeigen Beispiele: Bootmeldungen: less /var/log/boot.msg Status des PCMICIA-Ports: hoeding@linux:~ > less /var/lib/pcmcia/stab hoeding@linux:~ > cat /var/lib/pcmcia/stab Socket 0: Reichelt Cardbus RTL8139 10/100 Ethernet 0 network realtek_cb 0 eth0 hoeding@linux:~ > Dateien editieren ed: Zeileneditor vi - der komfortable Universaleditor Kommando-Modus/Editiermodus ESC und Doppelpunkt dd: löscht zeile c: löscht zeichen i: Einfügen ab Cursor a: Anhängen an Zeile / : Suchen nach q: beenden + w: sichern = qw (x)emacs - kann alles oder sogar zuviel (GNU) pico, kedit,... Dr. Michael Höding Unix-Linux Dateisystem 25 Dr. Michael Höding Unix-Linux Dateisystem 26 Suchen von Dateien Suche in Dateien find = Finden einer Datei, zahlreiche Optionen find. -name *pl -print find. -name *pl -exec cat {} \; Linux: locate (mit spezieller File-Datenbank) updatedb linux:~ # find / -name "realtek_cb.o" -print /lib/modules/2.4.4-4gb/pcmcia/realtek_cb.o /usr/src/modules/realtek_cb.o linux:~ # Mit Viewern bzw. Editoren less, more, vi : / emacs : ctrl-s (Achtung: Shell-Signal) grep (egrep, fgrep) z.b. grep alias.* Reguläre Ausdrücke z.b. [Kk]apitel[0-1]+\.doc awk perl Dr. Michael Höding Unix-Linux Dateisystem 27 Dr. Michael Höding Unix-Linux Dateisystem 28 Dateien, Verzeichnisse manipulieren mkdir: Verzeichnis anlegen rmdir: Vereichnis löschen rm: Datei löschen rm -rf : rekursives Löschen von Dateien und Verzeichnissen ohne nachfrage mv: Umbenennen (move) touch: Datei anlegen, als geschrieben markieren (Editoren: Dateien anlegen, manipulieren) ln: Datei/Verzeichnis-link anlegen chmod: Rechte modifizieren chown: Eigentümer (Gruppe) ändern Dr. Michael Höding Unix-Linux Dateisystem 29 Ausgabeumleitung und Pipes stdin, stdout, stderr Ausgabe in ein Datei umleiten durch > find. -name test.c -print > gefunden Ausgabe an Datei anhänge find. -name test.pl -print >> gefunden Statt stdin Datei als eingabe benutzen mit < Kommandos verketten mit ps -ef grep hoeding Dr. Michael Höding Unix-Linux Dateisystem 30 5
Zu Hilfe! man - Man-Pages von Unix:= ein universelles, zu umfangreiches, komplexes, manchmal unzureichendes, verwirrendes System von Hilfetexten... Wesentlich: Wer lesen kann ist stark im Vorteil Verschiedene Teile - Nummern 1: ausführbare Programme 2: System-Calls (Kernel) man man z.b. : man cat -h, --help Optionen der Kommandos Howtos, docs, README, perldoc Zwischen-Fazit Zunächst verwirrende Menge an Basisprogrammen Shell - Leistungsfähiger Rahmen für UNIX-Arbeit Konzepte stringend Standards, Quasi-Standards, Offenheit POSIX als UNIX-Standard Hilfe ist nahe (oder zumindest nicht sehr fern) Es gibt viel zu lernen - Systematik tut Not! Die Windows -Seite von UNIX Netze, Netze, Netze Just for fun Dr. Michael Höding Unix-Linux Dateisystem 31 Dr. Michael Höding Unix-Linux Dateisystem 32 Datei Anzeigen cat beispiel.wetter more beispiel.wetter less beispiel.wetter Datei Editieren vi beispiel.wetter pico beispiel.wetter emacs beispiel.wetter Dr. Michael Höding Unix-Linux Dateisystem 33 Dr. Michael Höding Unix-Linux Dateisystem 34 Kopieren cp beispiel.wetter neu.wetter Datei umleiten cat beispiel.wetter > neu.wetter Cat beispiel.wetter > neu.wetter Sortieren sort doppel.wetter Nur 4. Spalte, Wetterwerttyp sort -k 4 doppel.wetter Aneinanderketten Mischen cat *.we* > doppel.wetter Dr. Michael Höding Unix-Linux Dateisystem 35 Dr. Michael Höding Unix-Linux Dateisystem 36 6
Sortieren Nach 5. Spalte Wetterwert sort -k 5 doppel.wetter Achtung : Wert by default alphanumerisch nicht numerisch sortiert! sort -k 5 -n doppel.wetter Sortieren bei alternativen Trennzeichen Nun aber statt blank: sort -k 5 -n -t doppel.wetter geht nicht warum? : ist besonderes Symbol Deshalb in ' einbetten Dr. Michael Höding Unix-Linux Dateisystem 37 Dr. Michael Höding Unix-Linux Dateisystem 38 Auswahl = Selektion (siehe Datenbanksysteme) grep Berlin doppel.wetter Selektion nach Berlin und Wind grep Berlin doppel.wetter grep Wind Oder mit regulären Ausdrücken (der Hammer!) grep -e 'Berlin [[:alnum:]\:\.\ ]*Wind' doppel.wetter Fragen? Reguläre Ausdrücke sind wichtig, ausdrucksstark und sehr, sehr kniffelig! Dr. Michael Höding Unix-Linux Dateisystem 39 Dr. Michael Höding Unix-Linux Dateisystem 40 7