510 likes | 599 Views
Teil II : Benutzerebene eines Rechners. Das Betriebssystem UNIX Internet Texteditor. Pierre Bayerl, Klaus Murmann & Heiko Neumann, Fakultät für Informatik, Universität Ulm, 2002/03. UNIX. Datei. Das Betriebssystem UNIX. Kurzeinführung: Was ist UNIX Rechnersitzungen – An- und Abmeldung
E N D
Teil II : Benutzerebene eines Rechners Das Betriebssystem UNIX Internet Texteditor Pierre Bayerl, Klaus Murmann & Heiko Neumann, Fakultät für Informatik, Universität Ulm, 2002/03
UNIX Datei • Das Betriebssystem UNIX • Kurzeinführung: Was ist UNIX • Rechnersitzungen – An- und Abmeldung • Dateien und Dateisystem • Kommando-Interpreterebene (Shell) und Prozesse
UNIX Aufgaben eines Betriebssystems • Generell: Verwaltung und Zuteilung der Ressourcen eines Rechners • Kontrolle und Verwaltung der Betriebsmittel • Ausführen von Benutzerprogrammen (Rechenzeit und Speicher) • Speicherung von Daten (Plattenplatz) • Drucken von Dokumenten (Drucker) • Bereitstellung einer logischen Sicht auf die Betriebsmittel • Zugriff auf Dokumente, Drucker, periphere Geräte (Dateisystem) • Prozesssteuerung (Prozess-Subsystem, Rechenzeit)
UNIX Datei Kennzeichen von UNIX • Mehrbenutzer-Betriebssystem (multi-user) • Time-sharing Betriebssystem (Verwaltung mehrerer asynchroner Prozesse) • Geräteunabhängiges, hierarchisches Dateikonzept • Gute Portabilität (hohe Verfügbarkeit von Software) • Dialogorientierung (Kommandointerpreter) • Fließband-Technik (pipelining)
UNIX Aktuelle UNIX-Derivate Erste UNIX Version (AT&T 1969) Linux BSD/FreeBSD Sun Solaris Darwin/Mac OS X Im Pool: Sun Solaris Zuhause: z.B. Linux
UNIX Kommandointerpreter (shell) Dienst- und Anwenderprogramme Betriebssystem-Kern (kernel) Hardware Strukturierung von UNIX: Schalen-/Schichtenkonzept • Hardware • Betriebssystem-Kern (kernel) (Prozessverwaltung und –kommunikation, Speicherverwaltung, Ein-/Ausgabe-Verwaltung, Gerätetreiber, ...) • Dienst- und Anwenderprogramme (Bibliothek mit Standardfunktionen (in C), Compiler, Editoren, ...) • Kommandointerpreter (shell) shell
UNIX Was ist eine „Shell“(Kommandointerpreter) ? Befehl Ausgabe • Variable visuelle Darstellung von Shells • Basisfunktionalität ist in jedem Fall identisch: Eingabe: Kommando(s) Ausgabe: Ergebnis • Textuelle Eingabe von Befehlen • Textuelle Ausgabe von Befehlsergebnissen • Dialog/Kommunikation mit dem System • Eingabe von Kommandos am Prompt Prompt Rechnername + evtl. weitere Informationen
Anmeldung an ein UNIX-System (1) • Benutzer-Account • Zugang über Benutzername (login) + Passwort • Ermöglicht Zugriff auf Ressourcen (Plattenplatz, Drucker, ...) • Graphisches Login an einem X-Terminal (im WiMa-Pool) • Eröffnet eine UNIX-Sitzung an einem graphischen UNIX-Computerarbeitsplatz • Graphische Oberfläche ermöglicht das Öffnen verschiedener Fenster RECHNERNAME Beispiel Login: pierre Password: *******
Anmeldung an ein UNIX-System (2) • „Remote Login“ von einem anderen Rechner • Möglich von UNIX-Rechnern und Windows-Rechnern • Die Verwendung von graphischen Programmen hängt davon ab ob der Verwendete Arbeitplatz dies ermöglicht • Am besten und am sichersten ist die Verwendung der Secure Shell • Von einem beliebigen UNIX-Rechner (z.B. im E-Techniker Pool) ssh -l loginname turing.mathematik.uni-ulm.de (Statt des Rechners turing kann auch thales oder theseus verwendet werden)
1 2 3 4 5 6 Anmeldung an ein UNIX-System (3) • Um sich von einer Windows-Maschine aus einzuwählen ist ein entsprechendes Programm nötig (z.B. PuTTY) http://ssh.mathematik.uni-ulm.de/install/putty.html http://www.chiark.greenend.org.uk/~sgtatham/putty/
Arbeiten mit einem UNIX-System (Shell) • Kommandozeile (Shell) um mit dem Betriebssystem zu kommunizieren • Kommando ausführen: <Befehl><Parameter> • Vorsicht: Groß/Klein-Schreibung beachten! • Bei einem X-Terminal muß zuvor eine Shell geöffnet werden: • Mit der rechten Maustaste auf den Hintergrund klicken • Es erscheint ein Menü. Wählen Sie: Hosts - Xterm - thales • Beim Remote Login (mit ssh) bekommt man automatisch eine Shell
Abmelden von einem UNIX-System • Abmelden zum Schutz der eigenen Daten (Texte, Mails, Ressourcen!) • Abmelden von der Kommandozeile • Befehl „exit“ oder „logout“ • Abmelden von X-Terminal • Knopf/Menüpunkt „exit“ oder „logout“ drücken NIEMALS DIE X-TERMINALS AUSSCHALTEN!!
Zusammenfassung: Anmelden & Abmelden • Anmelden (“login”) • Am X-Terminal • Per “ssh” von einem anderen UNIX System • Per “ssh” von einem Windows-Rechner • Abmelden • “exit” an der Kommandozeile (Shell) eingeben • “exit”-Knopf drücken (X-Terminal) • Rechner im WiMa-Pool (X-Terminals) nie ausschalten !!
Demonstration DEMO
Ordner Datei Dateien und Dateisystem • Dateikonzept • Datei: sequentielle Folge von Datenworten (Bytes) • Dateiarten: • Normale Dateien (files; Texte, Programme, Daten,...) • Dateiverzeichnisse (directories; auch Kataloge) • Gerätedateien (special files, für physik. Geräte) Nahezu alle Ressourcen werden bei UNIX-Systemen auf Dateien abgebildet
Datei / dev usr pierre heiko klaus home datei1.txt datei2.txt Datei-Hierarchie • UNIX-Dateisystem = Hierarchie von Dateien • Jede Datei besitzt eine eindeutige Adresse • Verzeichnis(-Dateien) können wiederum Dateien enthalten • Standard-Verzeichnisse gliedern das System auf: • /dev: Physikalische Geräte (Drucker, Festplatte, ...) • /usr: Anwendungen (Programme, Bibliotheken, ...) • /home: Benutzerverzeichnisse • Heimatverzeichnis: /home/name enthält alle persönlichen Dateien z.B. /home/pierre/datei1.txt
Datei / dev usr pierre heiko klaus home datei1.txt datei2.txt datei3.txt Datei Adressierung • Vollständiger Name (ausgehend von „ / “): • /home/pierre/datei1.txt • Relativer Name (ausgehen vom aktuellen Verzeichnis) • datei1.txt • ./datei1.txt • ../klaus/datei3.txt • Besondere Verzeichnisnamen: • . = Aktuelles Verzeichnis • .. = Verzeichnis eine Ebene höher • / = Wurzel des Dateisystems („root“) Aktuelles Verzeichnis
Datei home / home pierre example1 pierre / example2 ( = akt. Verzeichnis) datei2.txt datei2.txt datei1.txt datei1.txt Verzeichnis Kommandos (1) pwd Name/Pfad des aktuellen Verzeichnisses anzeigen (print working directory) cd Ändern des Arbeitsverzeichnisses (change directory) cdWechsel ins Heimatverzeichnis cd <name> zum angegebenen Unterverzeichnis mkdir <name> Anlegen eines neuen Unterverzeichnisses rmdir <name> Löschen eines Unterverzeichnisses (das angesprochene Verzeichnis muss leer sein)
Datei / pierre home datei1.txt datei2.txt file2.txt Verzeichnis Kommandos (2) ls Anzeige eines Verzeichnisinhaltes ls -l Ausführliche Anzeige des Inhalts (Dateigröße...) • Platzhalter für Dateinamen: „ * “ (beliebig viele Zeichen) „ ? “ (ein Zeichen) • ls d* Alle Dateien deren Namen mit „d“ beginnt • ls *2* Alle Dateien in deren Namen eine „2“ vorkommt • Alternativ können Dateien auch einzeln aufgeführt werden: • ls d* f* Listet alle Dateien die mit „d“ oder mit „f“ beginnen
Datei / pierre home datei1.txt datei2.txt file2.txt Dateiausgabe Kommandos (1) cat Ausgabe oder Konkatenation von Dateien auf Monitor more Seitenweise (formatierte) Ausgabe von Dateien auf Monitor head, tail Ausgabe der ersten/letzen Zeilen von Dateien auf Monitor grep Suchen einer gegebenen Zeichenfolge in einer Datei Format: grep “<such-string>“ datei1 datei2... Inhalt von “datei1.txt” Inhalt von “datei2.txt” Inhalt von “file2.txt” Suchergebnisse: Welche Dateien enthalten den Text “datei”?
Datei / pierre home datei1.txt datei2.txt file2.txt Dateiausgabe Kommandos (2) a2ps Ausgabe von Textdateien (ASCII-Dateien) auf dem Drucker lp Ausgabe von Postscript-Dateien auf Drucker (MIT lp NUR POSTSCRIPTDATEIEN DRUCKEN) Druckerausgabe auf bestimmten Druckern: lp-d<Druckername> <Datei>.ps a2ps -P<Druckername> <Datei>.txt Drucker: garamond & gutenberg Bsp.: a2ps -Pgutenberg datei1.txt
Datei home / example1 pierre example1 home / example2 example2 pierre datei1.txt datei1.txt datei1.txt datei2.txt datei2.txt Kopieren / Verschieben von Dateien cp Kopieren von Dateien (cp quelldatei zieldatei oder cp quelldatei zielordner) cp datei1.txt example2/kopie1.txt cp datei1.txt example2 mv Verschieben von Dateien mv example2/kopie1.txt datei3.txt rm Löschen von Dateien (Vorsicht: Was weg ist ist weg!) rm datei3.txt
Datei Dateien - Besitzer und Rechte (1) • Dateien gehören dem Benutzer der sie angelegt hat (Benutzer teilen sich wiederum in verschiedene Gruppen auf) • Der Besitzer darf sog. Rechte an seinen Dateien vergeben: • Lesen (r): Wer darf diese Datei betrachten • Schreiben (w): Wer darf diese Datei verändern • Ausführen (x): Handelt es sich um eine Ausführbare Datei • Rechte können vergeben werden an: • Sich selbst • Anderen Benutzern aus der selben Gruppe • Allen anderen Benutzern Befehl zum Anzeigen Des aktuellen Verzeichnisses Rechte Benutzer/Gruppe Dateigröße Dateiname
Datei Dateien - Besitzer und Rechte (2) chmod Verändern der Zugriffsrechte auf Dateien Syntax: chmod <Parameter> <Datei(en)> Parameter: (siehe „man chmod“) • +w oder +r (ermöglicht schreibenden bzw. lesenden Zugriff) • -w oder -r (verhindert schreibenden bzw. lesenden Zugriff) Kein Zugriff ohne Lese-Recht!
Kommandozeile (Shell) und UNIX-Kommandos • Übersicht über einige UNIX-Befehle • Was ist die Standarteingabe bzw. Standartausgabe • Kombinieren von UNIX-Kommandos • Umlenken der Eingabe/Ausgabe • Pipes
Nützliche UNIX-Kommandos (2) Ausgabe der ersten n Zeilen Textsuche in Dateien 1 4567 890 2 TEST ABC 3 Xxxx xxx 4 4567 890 5 4567 890 6 ABCD EFG 7 4567 890 8 Allg Inf 9 4567 890 10 4567 ABC 11 4567 890 12 4567 890 theseus$ head -n 3 abc.txt 1 4567 890 2 TEST ABC 3 Xxxx xxx theseus$ grep ABC abc.txt 2 TEST ABC 6 ABCD EFG 10 4567 ABC Ausgabe der letzten n Zeilen Zeilenweise sortieren theseus$ tail -n 3 abc.txt 10 4567 ABC 11 4567 890 12 4567 890 theseus$ sort abc.txt 1 4567 890 10 4567 ABC 11 4567 890 12 4567 890 2 TEST ABC 3 Xxxx xxx 4 4567 890 5 4567 890 6 ABCD EFG 7 4567 890 8 Allg Inf 9 4567 890 Datei: abc.txt Bestehen aus 12 Zeilen à 12 Zeichen (11 Zeichen + Zeilenumbruch) bzw. 36 Wörter Zeilen/Wort/Zeichen-Anzahl theseus$ wc abc.txt 12 36 144 abc.txt
stdout stdin Shell- Kommando Standard- ausgabe Standard- eingabe stderr Diagnoseausgabe (Fehler) stdin : Eingabe von Tastatur stdout, stderr : Ausgabe auf Bildschirm Standarteingabe und Standartausgabe • Die Shell stellt Ein- und Ausgabekanäle für Prozesse zur Verfügung • Kommandos können von der Standarteingabe lesen und schreiben ihre Ergebnisse in die Standartausgabe • Fehlermeldungen werden zu Diagnoseausgabe weitergeleitet
UNIX-Kommandos und die Standarteingabe Bei den meißten UNIX-Befehlen kann man den Dateinamen weglassen. • Statt aus einer Datei zu lesen wird von der Standarteingabegelesen. (normalerweise Standarteingabe = Tastatureingabe) • Falls nötig kann das „Dateiende“ mit CTRL-D signalisiert werden. Beispiele: [localhost:~] pi% sort Pierre Bayerl Klaus Murmann Heiko Neumann ^D Heiko Neumann Klaus Murmann Pierre Bayerl [localhost:~] pi% [localhost:~] pi% tail -n 1 Pierre Bayerl ^D Bayerl [localhost:~] pi%
Umleiten der Ein/Ausgabe in/aus eine(r) Datei > Umlenken der Standardausgabe in eine angegebene Datei. existiert die Datei nicht, wird diese angelegt. existiert die Datei, so wird deren Inhalt überschrieben! Bsp.: ls >inhalt.txt >> hängt neuen Inhalt am Dateiende an! Bsp.: ls order1 >> inhalt.txt 2> Umlenken der Diagnoseausgabe Bsp: wc –x datei1.txt 2> err.txt (-x als Option ungültig!) < Umlenken der Eingabe aus einer Datei [localhost:~] pi% sort >out.txt Pierre Bayerl Klaus Murmann Heiko Neumann ^D [localhost:~] pi% tail -n 1 <out.txt Pierre Bayerl [localhost:~] pi%
sort tail stdin stdout stdin stdout Verknüpfen mehrer Kommandos über Pipes • Direkte Verknüpfung der Ausgabe eines Prozesses mit der Eingabe eines anderen Prozesses • Syntax: Befehl1 | Befehl2 | Befehl3 ... • Bsp.: ls /usr/bin | grep „ail“ (ohne Dateiangabe ließt grep von stdin) [localhost:~] pi% sort | tail -n 1 Pierre Bayerl Klaus Murmann Heiko Neumann ^D Pierre Bayerl [localhost:~] pi% “|” = Pipe
Internet • Prinzip und Organisation • Dienste und Adressen • WWW (‚World wide web‘) • E-Mail
B = A Prinzip und Organisation: Nachrichten-Übermittlung • Netze von Rechnern • Vermittlungsrechner (Router) • Zielrechner • Vermittlung und Betrieb (Paketvermittlung) • Nachricht von A nach B • Zerlegung in Pakete mit Zieladdresse B • Versendung der Pakete über möglicherweise verschiedene Verbindungen
…0010110101…. . …0010110101…. • Internet= Gesamtheit aller Netzwerke und Computer die über TCP/IP- Verbindungen erreichbar sind. Prinzip und Organisation: Protokolle • Protokolle: Konventionen und Regeln für den Austausch von Informationen zwischen Computern im Internet • Ziel: vollständige, fehlerfreie und möglichst effektive Datenübertragung • TCP/IP heute Standard • TCP : Transmission Control Protocol • IP: Internet Protocol
Beispiel: Der WWW-Server der Vorlesung bieten einen speziellen Dienst zur Verwaltung der Übungspunkte an. Anfrage Antwort Anfrage Clients Antwort Server z.B. allgemeine.informatik.uni-ulm.de Prinzip und Organisation: Client-Server-Prinzip • Client-Server Prinzip • Server (Diener, Anbieter) Programm auf einem Rechner A, das einen bestimmten Dienst anbietet und der von einem anderen Nutzer abgerufen werden kann. • Client (Klient, Kunde) (Anwender-)Programm auf einem Rechner B, das den Dienst anfordert.
Dienste • TELNET oder SSH Zugriff auf andere Rechner (Dialogzugriff). • FTP Übertragen (Kopieren) von Dateien zwischen verschieden Rechnern. • E-MAIL Austausch von Nachrichten. • NEWS Diskussion- und Informationsmedium zu vielen verschiedenen Themen. • HTTP Multimediales hyperlink-basiertes Informationssystem und Schnittstelle den anderen Internet-Diensten. • DNS Domain Name Service, spezieller Dienst um Internetadressen korrekt zu handhaben
allgemeine.informatik.uni-ulm.de ? “134.60.74.81” ! Anfrage an 134.60.74.81 Antwort Internet Adressen • Jeder Rechner im Internet besitzt eine aus vier Bytes (Zahlen) bestehenden eindeutigen Adresse (IP-Adresse), z.B. 134.60.74.81 • Symbolische Adressen werden von einem speziellen Dienst (DNS, Domain Name Service) in IP-Adressen umwandelt, z.B. allgemeine.informatik.uni-ulm.de 134.60.74.81. Rechner A möchte mit Rechner B in Kontakt treten A DNS-Server B Client Ziel-Rechner (Server) z.B. allgemeine.informatik.uni-ulm.de
Internetadressen: IP-Adressen Länge: 32 Bit = 4 Byte à 8 Bit Format von IP-Adressen: a.b.c.d a,b,c,d [1,254] 0 und 255 haben Sonderrolle Beispiele gültiger Internet-Adressen: 141.41.49.2 194.163.245.145 Mit 127.0.0.1 oder localhost kann stets der Rechner auf dem gerade gerabeitet wird angesprochen werden.
host.[subdomain.[subdomain.[...]]]domain.topleveldomain Institute, Abteilungen, etc Hauptdomain Rechnername Einrichtungen Internetadressen: Symbolische Adressen (1) • Jede an das Internet angeschlossene Einrichtung betreibt einen eigenen Namens-Server (DNS, Domain Name Server) • In jedem Land gibt es einen Haupt-Domain-Name-Server (verteilte Rechnerdatenbank mit Namen/Adresseinträgern) • Aufbau der Domain-Namen Beispiel: axon.informatik.uni-ulm.de
Internetadressen: Symbolische Adressen (2) Adressierungsschema URL (Uniform Resource Locator) • Beispiel: • http://www.informatik.uni-ulm.de • http://allgemeine.informatik.uni-ulm.de Vor dem Doppelpunkt steht das zu verwendende Protokoll (z.B. ftp, http,..).
Email • Einsatz: Verschicken von Nachrichten an verschiedene Benutzer des (UNIX)-Systems. • verschickte Nachrichten landen in einem Briefkasten. (MAIL-BOX) • Der Inhalt ist vom jeweiligen Adressaten abrufbar. • Das Vorhandensein von (neuen) Nachrichten wird nach dem Anmelden (login) angezeigt: You have mail oder You have new mail. • Zum lesen der Mails wird ein spezielles Programm benötigt (z.B. pine, netscape, ...)
Pine (1) • ASCII-orientiertes Programm zum lesen und schreiben von Mails • Wichtigste Menüpunkte: - Compose Message (neue Mail schreiben) - Folder List (zeigt Mailverzeichnisse) => INBOX (hier sind die neuen Mails drin) => sent-mail (die Mails die man selber verschickt hat) • im unteren Teil des Fensters sieht man welche Tasten für welchen Befehl gedrückt werden müssen ( ^ bedeutet die ctrl-Taste) • wichtige Befehle: m zum Hauptmenue q Beenden (mit y(es) bestätigen) Control + X versenden der Mail (in Compose Message)
Pine (2) Hauptmenü Mögliche Befehle
“Compose Message” (Mail schreiben & senden) “Folder List/INBOX” (Mails lesen) Pine (3)
Pine (4) DEMO
Editoren • Übersicht • vi • pico • nedit • emacs
Übersicht • Editoren dienen zum Erzeugen und Modifizieren von Dateien • Textdateien / Dokumente (z.B. ein Reisebericht) • Programm-Dateien(z.B. Modula-2 Quellcode) • ... • Verbreitete UNIX-Editoren • vi (sehr spartanisch, aber immer verfügbar und sehr mächtig) • pico (wird von pineverwendet um mails zu editieren) • nedit (graphischer Editor à la „Windows“. Start: nedit &) • emacs (sehr mächtiger Editor, graphische Version: xemacs)
Editor: “vi” • Auf allen UNIX-Systemen verfügbar, jedoch sehr spartanisch • Sehr mächtig • Auch verfügbar für Windows-Systeme • Wichtige Funktionen • Editor aufrufen: vi Datei • Text speichern: <ESC> : w • Text speichern & Editor verlassen : <ESC> : wq • Editor verlassen ohne zu speichern: <ESC> : q! • Alternative: vim (vi-improved) • Lernen denvi odervimzu bedienen Shell-Kommando: vimtutor
Editor “pico” • Bedienung ähnlich „pine“ • Wichtige Funktionen • Editor aufrufen: pico Datei • Text speichern: ctrl-o • Text speichern & Editor verlassen : ctrl-x + „y“ („y“ = „yes“ für Speichern) • Editor verlassen ohne zu speichern: ctrl-x + „n“ („n“ = „no“ für Speichern) • Ähnlich wie bei pine werden in der untersten Zeile stets mögliche Tastenkombinationen angezeigt.
Editor: “nedit” • Graphischer Editor, benötigt einen graphischen Arbeitsplatz (per ssh von einem Windowsrechner steht dieser Editor unter Umständen nicht zur Verfügung) • Bedienung ähnlich wie Windows-Applikationen Sehr leicht zu bedienen • Alle Funktionen sind per Menü-Zeile mit der Maus erreichbar • Wichtige Funktionen: • Editor aufrufen: nedit Datei & („&“ startet das Programm und kehrt zur Kommandozeile zurück) • Text speichern: ctrl-s • Editor verlassen: ctrl-q