lausthal Literatur Werkzeuge der Informatik Einführung in Unix/Linux. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Bücher über Unix gibt es wie Sand am Meer Z.B.: Jerry Peek, Tim O'Reilly & Mike Loukides: UNIX Power Tools. O'Reilly & Associates. Michael Kofler: Linux - Installation, Konfiguration, Anwendung. Addison-Wesley. Daniel J. Barrett: Linux kurz und gut. O'Reilly, September 2004. Parallel bzw. ergänzend dazu Online-Literatur auf der Web-Seite! (und noch viel mehr im Netz). Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 2 Weiterführender Kurs Heimarbeit (wer hat kein Linux?) Vom WD in öttingen: Irgendeine Distro kaufen oder vom RZ beziehen und installieren: Videoaufzeichnungen der letzten Veranstaltung Z.B.: Kubuntu, Mandrake, Siehe: http://www.uni-math.gwdg.de/linuxuebung/ Schon recht fortgeschritten Manchmal auch in unserem Rechenzentrum: Termine siehe www.rz.tu-clausthal.de http://ftp.tu-clausthal.de/ftp/linux/ oder ftp://ftp.tu-clausthal.de/pub/linux/ Knoppix-D vom RZ ziehen: Keine Installation nötig ftp://ftp.tu-clausthal.de/pub/linux/knoppix/ Achtung: Files sichern vor dem Abschalten! In beiden Fällen: ISO ziehen und D brennen ygwin www.cygwin.com Achtung: Execs laufen nicht auf den Linux-Ps im Pool. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 3. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 4 1
und remote an der Uni Was ist ein Betriebssystem? Account am IfI: Vermittler, Manager, Resourcen-Verwalter, Jede ruppe bekommt in der ersten Übung einen generischen Account Die Accounts werden nach dem Semester gelöscht (Daten extern sichern!) Remote einloggen auf kaosus Hardware Software ssh login.in.tu-clausthal.de -l account Daten hin- und herkopieren scp source-dir account@login.in.tuclausthal.de:/home/account/... terminal keyboard cpu memory printer modem etc. Operating System ontrols both hardware and software compiler editor word processor database browser HTML editor image editor etc.. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 5. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 6 Wer braucht UNIX? Vorteile von UNIX "Unix ist zwar ein Mainframe-Betriebssystem (und damit obsolet) hat aber noch viele Anhänger." Windows MSE-Training-uide Windows 2000 Server Kapitel 2.6.3 "Zusammenspiel mit UNIX", Verlag Markt & Technik Extrem ausgereift (besonders die kommerziellen Unices) ut durchdachtes Konzept von Anfang an "Alles ist ein File" "Alles ist ein Prozeß" Von Anfang an Multi-User- und Multi-Task-fähig Programmierer Web-Server Distributed omputing Wer braucht UNIX nicht (unbedingt)? Sekretärinnen Relativ sicher Flexibler Performanter Wesentlich leichter zu administrieren (wenn die Lernkurve erst einmal durchschritten ist) Büro- und Business-Software (Word, Buchhaltung, Powerpoint, Lagerhaltung, ) Auf allen Plattformen verfügbar. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 7. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 8 2
Plattformen Die Erfinder Sun (Solaris) HP (HP-UX) SI (IRIX) IBM (AIX) Mac (OS-X) P (Linux) PDA Set-top boxes Armbanduhr Auto http://www.research.ibm.com/ Wearableomputing/index.html http://www.linuxdevices.com/ a. 1970: Haben UNIX und erfunden! Ken Thompson and Dennis Ritchie Your new heroes. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 9. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 10 Was ist UNIX? UNIX Komponenten Ein Betriebssystem Eine Sammlung von nützlichen Tools Eine (omputer-)kultur Kernel: Herz des OS, managt Hardware & Programme Shell: eine Applikation, nimmt Kommandos entgegen und führt sie aus (LI) Window Manager APIs Utilities: viele kleine (und große) Tools zur täglichen Arbeit, z.b. Files kopieren, ASII-Texte editieren, Utilities Kernel Kernel zum Shell. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 11. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 12 3
Deutsches UNIX Erstes Einloggen roße Unsitte Wie bekommt man eine Shell / (Terminal-)Fenster? Wegen Terminologie An der "Konsole" ("console") Also: setenv LAN en und setenv KDE_LAN de Remote (ssh, rlogin, telnet) In der bash: export LAN=en und export KDE_LAN=de Bzw. unter Linux: auf dem Login-Screen Englisch einstellen Oder: KDE ontrol enter Regional & Accessibility ountry/region & Language Login/passwd sind case-sensitive! Wieviele Shells kann man haben? Beliebig viele /home/rob% Terminal- Fenster Das Prompt Prompt von der Shell. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 13. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 14 Das User-Interface Aufbau einer Kommandozeile Ist immer noch die Kommandozeile (LI = command line interface) Kommando Optionen Parameter Für Programmierer ist LI sehr viel effizienter! Lernkurve ist natürlich länger ("steiler") /home/rob% ls l data -rw------- 1 rob student 343 Dec 5 13:51 data Möglichkeiten Optionen (options, flags): ändern Verhalten Parameter: i.a. Files, auf denen Kommando operiert Zeit. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 15. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 16 4
Remote Login Editieren der Kommandozeile Ist oft sehr praktisch! Z.B., wenn auf dem aktuellen Rechner bestimmte Software nicht installiert ist man einen anderen Rechner administrieren muß Befehl lautet ssh Klappt sogar mit UIs Beispiel: ssh as.rz.tu-clausthal.de -l gza und, falls UIs remote verwendet werden sollen, ssh as.rz.tu-clausthal.de -l gza -X Zum Hin- und Her-Kopieren: scp file user@remote.host:/path/to/file In der Zeile: Taste Tab trl-b / trl-f trl-w trl-u / trl-k trl-a / trl-e In der History: Taste ursor-up / -Down trl-p / trl-n File- / ommand-ompletion Wortweise vor / zurück springen Voriges Wort löschen Zeile bis zum Anfang / Ende löschen An Ende / Anfang springen In der History rauf / runter Match in der History nach oben / unten suchen. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 17. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 18 Kommandowiederholung UNIX-Konzepte Einige wenige rundkonzepte: Komando Bedeutung!! Letztes Kommando wiederholen!string Kommando, das mit 'string' beginnt, wiederholen!17 Kommando mit Nummer 17 i.d. History wiederholen ^a^b Letztes Kommando wiederholen, dabei das erste Vorkommen von 'a' durch 'b' ersetzen Alles ist ein File (Programm, Daten, Speicher, ) Alles ist ein Prozeß (OS, laufendes Programm, Editor, Shell, ) Viele kleine Utilities, die kombiniert werden können History anzeigen: history (alias h) Processes (time sharing, protected address space) Interprocess comm. (signals, pipes sockets, ) Kernel Virtual memory (swapping, paging, mapping) The filesystem (files, directories, devices, pipes, namespace, ). Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 19. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 20 5
Das Filesystem Directories ("Folders") und Files File enthält sequentielle Folge von Zeichen (Bytes) Interpretation ist Sache des benutzenden Programms: Text, Zahlen, Programm, Speicherauszug, Jeder File hat einen Namen: ase-sensitive! (UNIX allg.) Länge typ. bis zu 1024 Können beliebige Zeichen enthalten besser nur alphanumerische Zeichen und Underscore! Directory ("Verzeichnis"): Enthält Name von File und Verweis darauf Spezieller File. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 21 Files/directories werden in einem Baum organisiert "root directory" bin dev usr etc commands devices boot and config files bin man local more commands man pages / bob home alice homes of users. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 22 zach Eindeutigkeit Definition "Pfadname" (pathname) eines Files: Konkatenierung aller Verzeichnisnamen und des Filenamens auf dem Weg von der Wurzel bis zum File, getrennt durch / Eindeutigkeit: Files im selben Verzeichnis müssen verschiedene Namen haben Files in verschiedenen Directories dürfen gleiche Namen haben! Eindeutigkeit von Pfadnamen garantiert /bin/ls Beispiele: ls bin dev usr etc cp /bin/cp bin man local / bob home alice zach /home/zach/lehre/programmierung bin lehre VR Programmierung. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 23. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 24 6
Absolute / relative Pfade Spezielle Verzeichnisse Absolute Pfadnamen: starten mit / '.' Bezeichnet das aktuelle Verzeichnis Relative Pfadnamen: Bsp.: /bin/ls = /bin/./ls = /bin/././ls starten von einem anderen Dir aus '..' Bezeichnet das Vater-Verzeichnis (parent diretory) Sind also relativ zu diesem Dir Bsp.: /usr/bin/w = /home/../usr/bin/w = /usr/man/../bin/w Beispiele: der absolute Pfad /home/zach/lehre/-programmierung von / usr etc home Wird besonders wichtig im Zusammenhang mit dem WD (current working directory) home aus = zach/lehre/-programmierung zach aus = lehre/programmierung bob alice zach lehre aus = Programmierung bin lehre VR Programmierung. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 25. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 26 Kommandos: File- und Verzeichnis-Manipulation Kleine Warnung zu rm Kommando rm file ls [dir] ls l [dir] ls a [dir] cp file1 dir cp file1 file2 mv file1 dir mv file1 file2 cat file1 file2 > file mkdir dir rmdir dir touch file File löschen Verzeichnis / File anzeigen Mehr Infos zum Verzeichnis / File anzeigen Dot-Files (.*) anzeigen Files kopieren Kopie von File1 erzeugen und File2 nennen Files verschieben File umbenennen Files aneinanderhängen (konkatenieren) Neues Verzeichnis erzeugen Verzeichnis löschen (muß leer sein) Leeren File erzeugen Task: Shoot Yourself in The Foot The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you're currently using. This handy reference is offered as a public service to help programmers who find themselves in such a dilemma. % ls foot.c foot.h foot.o toe.c toe.o % rm *.o rm:.o no such file or directory % ls % Achtung: ES IBT KEIN REYLE-BIN!!!. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 27. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 28 7
Symbolische Links Andere Platten Problem: File "gehört" genau einem Verzeichnis Beispiel: File /home/zach/pics/cobain.jpg soll auch im Dir. /home/zach/music/nirvana sichtbar sein Lösung: symbolic links (symlinks) Bsp.: music/nirvana/cobain.jpg ist ein Symlink nach../../pics/cobain.jpg Kommando pics ln s file1 file2 Erzeugt symbolischen Link von File2 nach File1 (Eselsbrücke: ln s statt cp) rm symlink Löscht den Symbolic Link, nicht den File worauf dieser zeigt cobain.jpg zach music Nirvana cobain.jpg Der Verzeichnisbaum enthält (i.a.) mehrere Platten! Einige davon sind auf anderen Rechnern (NFS) / bin etc home tmp usr student zach. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 29. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 30 Das urrent Working Directory Kommandos: Moving Around Die Shell merkt sich ein urrent Working Directory (WD, PWD) Bei mehreren offenen Terminal-Fenstern (= Shells) merkt sich jede Shell ihr eigenes WD Alle relativen Pfade werden von der Shell relativ zu diesem WD interpretiert Utility cd dir cd - cd pwd Ins Verzeichnis dir wechseln (rel. oder abs. Pfad) Ins vorige Verzeichnis zurück wechseln Ins Home wechseln Aktuelles Verzeichnis (current working directory) anzeigen Für die Fortgeschrittenen: Eigentlich hat jeder Prozeß sein eigenes WD - (Auch die Shell ist ein ganz normaler Prozeß) Die Interpretation eines relativen Pfades relativ zum WD geschieht durch den Unix Kernel. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 31. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 32 8
Home Sweet Home Users & roups Jeder User hat ein Home Daten eines Users: Z.B. /home/zach Username (login, oft gleich wie email) Enthält normalerweise alle Daten des Users UID = ID des Usernames (id Kommando) Alle Konfigurationsfiles aller Programme ("Dot-Files", z.b..login) (riesiger Vorteil gegenüber Registry!) Beim Einloggen "startet man im Home" (d.h., WD = ~) ID = group ID (evtl. mehrere) Ein Home LAN-weit verwaltet oder lokal Normalerweise auf einem Fileserver ruppen: Ist auf jeder Maschine gleich zugreifbar Jeder User gehört zu mindestens einer ruppe Schreibweise: ~ LAN-weit oder lokal. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 33. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 34 File Permissions 3 Personengruppen: Owner (=User), roup, World (Other) File gehört genau 1 User File ist assoziiert zu genau 1 roup Für jede der 3 ruppen einen Satz File-Permissions: read, write, execute Filetyp-Flag: Kein Permissionflag! Zeigt Filetyp an: - - = normaler File - d = Directory - l = Symlink - einige seltenere Spezial-Flags Bedeutung der Permissions /home/rob% ls l file -rw-r----- 1 rob student 343 Dec 5 13:51 file Perm. r (read) w (write) x (execute) File Read a file Write a file Execute a file (shell script or binary) Directory List files in reate / move / remove a file in Access a file in Owner- roup- World- Permissions Filetyp Owner roup Weitere, sehr praktische Flags (set-id, set-uid, sticky, ). Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 35. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 36 9
Permissions modifizieren Exkurs: ALs Syntax von chmod ("change mode"): Oft feinere / flexiblere Regelung der Zugriffsrechte gewünscht chmod <level><op><perm> filename ALs = access control lists Features: level = String aus: u, g, o, a (user, group, other, all) op = ein Zeichen aus +, -, = (gets, loses, equals) perm = String aus: r, w, x, Beispiele: % chmod u+x foobar % chmod u+rwx,go-w foobar % chmod g=u temp/ % chmod u=rwx,g=rwx,o= shared/ (read, write, execute, ) Individuelle Permissions pro User möglich Selbst-definierte ruppen Permissions pro selbst-definierter ruppe Für rel. kleine Arbeitsgruppen ist das "normale" Unix-Permissions- Modell völlig ausreichend. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 37. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 38 Weitere File-Attribute Prozesse Zeiten: Programm, das gerade läuft, schläft, oder hängt Modification (write): ls -l Jeder Prozeß führt ein Environment mit sich: reation: ls -lc Prozeß-ID (PID), User-ID (UID), roup-id (ID), u.a. IDs Access (read): ls -lu current working directory (WD, manchmal auch PWD) Environment-Variablen (Paare von Strings) /home/rob% ls l file -rw-r----- 1 rob student 343 Dec 5 13:51 file Relative Pfade werden bzgl. des WD's des Prozesses interpretiert röße, Links, mod time. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 39. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 40 10
Spawning processes Prozesse aus Sicht der Shell Ein Prozeß wurde immer von einem anderen erzeugt 3 Zustände eines Prozesses (aus Sicht der Shell) Heißt Vater-Prozeß (parent process) Foreground: Default Vorgang heißt engl. to spawn hild process erbt das komplette Environment (außer seinen IDs u.ä.) - Ausgabe (stdout) des Prozesses erscheint im Terminal-Fenster - Eingabe (stdin) des Prozesses kommt vom Keyboard Background: - Ausgabe erscheint im Fenster - Eingabe nicht erlaubt estoppt: - Prozeß schläft top in der Shell. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 41. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 42 Kommandos zur Prozeßkontrolle Befehl ps ps -edfjw ps -auxw kill pid kill -9 pid command & jobs trl- trl-z fg bg trl-s trl-q top Prozesse anzeigen Alle Prozesse anzeigen dito für einige andere Unix-Varianten Prozeß mit PID pid abbrechen (wie trl-) wenn der Prozeß trotzdem nicht aufhören will Prozeß im Hintergrund starten Prozesse im Hintergrund anzeigen Foreground-Prozeß abbrechen (interrupt) Foreground-Prozeß anhalten (stoppen) Zuletzt angehaltenen Prozeß im Foreground weiterlaufen lassen Angehaltenen Prozeß im Background weiterlaufen lassen Ausgabe des Foreground-Prozesses anhalten (Pr. läuft weiter!) Ausgabe weiterlaufen lassen tabellarische Ansicht aller Prozesse und deren PU-Verbrauch. Zachmann Werkzeuge der Informatik - WS 07/08 Einführung in Unix 43 11