Upload
mette-kemmerlin
View
108
Download
1
Embed Size (px)
Citation preview
Teil II : Benutzerebene eines Rechners
1. Das Betriebssystem UNIX
2. Internet
3. Texteditor
Pierre Bayerl, Klaus Murmann & Heiko Neumann, Fakultät für Informatik, Universität Ulm, 2002/03
1. Das Betriebssystem UNIX
• Kurzeinführung: Was ist UNIX• Rechnersitzungen – An- und Abmeldung• Dateien und Dateisystem• Kommando-Interpreterebene (Shell) und Prozesse
UNIX
Datei
Aufgaben eines Betriebssystems
• Generell: Verwaltung und Zuteilung
der Ressourcen eines Rechners
• Kontrolle und Verwaltung der Betriebsmittel o Ausführen von Benutzerprogrammen (Rechenzeit und Speicher)o Speicherung von Daten (Plattenplatz)o Drucken von Dokumenten (Drucker)
• Bereitstellung einer logischen Sicht auf die Betriebsmittelo Zugriff auf Dokumente, Drucker, periphere Geräte (Dateisystem)o Prozesssteuerung (Prozess-Subsystem, Rechenzeit)
UNIX
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)
Datei
UNIX
Aktuelle UNIX-Derivate
Erste UNIX Version (AT&T 1969)
Linux BSD/FreeBSD Sun Solaris Darwin/Mac OS X
Im Pool: Sun SolarisZuhause: z.B. Linux
UNIX
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) ?
• Variable visuelle Darstellung von Shells
• Basisfunktionalität ist in jedem Fall identisch:
Eingabe: Kommando(s)Ausgabe: Ergebnis
UNIX
Prompt
Rechnername + evtl. weitere Informationen
• Textuelle Eingabe von Befehlen• Textuelle Ausgabe von
Befehlsergebnissen
• Dialog/Kommunikation mit dem System• Eingabe von Kommandos am Prompt
BefehlAusgabe
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
Login: pierrePassword: *******B
eisp
iel
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)
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.htmlhttp://www.chiark.greenend.org.uk/~sgtatham/putty/
4
56
12
3
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 DIEX-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
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)
Datei
Ordner
Nahezu alle Ressourcen werden bei UNIX-Systemen auf Dateien abgebildet
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
Datei
z.B. /home/pierre/datei1.txt
/
dev usr
pierre heiko klaus
datei1.txtdatei2.txt
home
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“)
Datei
AktuellesVerzeichnis
/
dev usr
pierre heiko klaus
datei1.txtdatei2.txt
home
datei3.txt
Verzeichnis Kommandos (1)
pwd Name/Pfad des aktuellen Verzeichnisses anzeigen
(print working directory)
cd Ändern des Arbeitsverzeichnisses (change directory)
cd Wechsel 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)
/
pierre
datei1.txtdatei2.txt
home
/
datei2.txt
home
pierre
datei1.txt
example2example1
Datei
= akt. Verzeichnis)(
Verzeichnis Kommandos (2)
ls Anzeige eines Verzeichnisinhaltesls -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
/
pierre
datei1.txtdatei2.txt
home
file2.txt
Datei
Dateiausgabe Kommandos (1)
cat Ausgabe oder Konkatenation von Dateien auf Monitormore Seitenweise (formatierte) Ausgabe von Dateien auf Monitor head, tail Ausgabe der ersten/letzen Zeilen von Dateien auf Monitorgrep Suchen einer gegebenen Zeichenfolge in einer Datei Format: grep “<such-string>“ datei1 datei2...
Datei
/
pierre
datei1.txtdatei2.txt
home
file2.txt
Inhalt von “datei1.txt”
Inhalt von “datei2.txt”
Inhalt von “file2.txt”
Suchergebnisse: WelcheDateien enthalten den Text“datei”?
Dateiausgabe Kommandos (2)
a2ps Ausgabe von Textdateien (ASCII-Dateien) auf dem Drucker
lp Ausgabe von Postscript-Dateien auf Drucker(MIT lp NUR POSTSCRIPTDATEIEN DRUCKEN)
/
pierre
datei1.txtdatei2.txt
home
file2.txt
Datei
Druckerausgabe auf bestimmten Druckern:lp -d<Druckername> <Datei>.psa2ps -P<Druckername> <Datei>.txtDrucker: garamond & gutenbergBsp.: a2ps -Pgutenberg datei1.txt
Kopieren / Verschieben von Dateien
cp Kopieren von Dateien (cp quelldatei zieldatei oder cp quelldatei zielordner)
cp datei1.txt example2/kopie1.txtcp 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
/
datei2.txt
home
pierre
datei1.txt
example2example1
/
datei2.txt
home
pierre
datei1.txt
example2example1
datei1.txt
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:a) Sich selbst
b) Anderen Benutzern aus der selben Gruppe
c) Allen anderen Benutzern
Datei
Befehl zum AnzeigenDes aktuellen Verzeichnisses
Benutzer/Gruppe DateigrößeRechte Dateiname
Dateien - Besitzer und Rechte (2)
chmod Verändern der Zugriffsrechte auf DateienSyntax: 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)
Datei
Kein Zugriff ohneLese-Recht!
Kommandozeile (Shell) und UNIX-Kommandos
1. Übersicht über einige UNIX-Befehle
2. Was ist die Standarteingabe bzw. Standartausgabe
3. Kombinieren von UNIX-Kommandos• Umlenken der Eingabe/Ausgabe• Pipes
Nützliche UNIX-Kommandos (1)
Nützliche UNIX-Kommandos (2)
1 4567 8902 TEST ABC3 Xxxx xxx4 4567 8905 4567 8906 ABCD EFG7 4567 8908 Allg Inf9 4567 89010 4567 ABC11 4567 89012 4567 890
Datei: abc.txtBestehen aus 12 Zeilen à 12 Zeichen (11 Zeichen+ Zeilenumbruch) bzw.36 Wörter
theseus$ wc abc.txt 12 36 144 abc.txt
theseus$ head -n 3 abc.txt1 4567 8902 TEST ABC3 Xxxx xxx
theseus$ tail -n 3 abc.txt10 4567 ABC11 4567 89012 4567 890
theseus$ grep ABC abc.txt2 TEST ABC6 ABCD EFG10 4567 ABC
theseus$ sort abc.txt 1 4567 89010 4567 ABC11 4567 89012 4567 8902 TEST ABC3 Xxxx xxx4 4567 8905 4567 8906 ABCD EFG7 4567 8908 Allg Inf9 4567 890
Ausgabe der ersten n Zeilen
Ausgabe der letzten n Zeilen
Zeilen/Wort/Zeichen-Anzahl
Zeilenweise sortieren
Textsuche in Dateien
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
Shell-Kommando
Standard-eingabe
stdin
Diagnoseausgabe (Fehler)
Standard-ausgabe
stdout
stderr
stdin : Eingabe von Tastatur stdout, stderr : Ausgabe auf Bildschirm
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 Standarteingabe gelesen.(normalerweise Standarteingabe = Tastatureingabe)
Falls nötig kann das „Dateiende“ mit CTRL-D signalisiert werden.
Beispiele: [localhost:~] pi% sortPierre BayerlKlaus Murmann Heiko Neumann^DHeiko NeumannKlaus MurmannPierre Bayerl[localhost:~] pi%
[localhost:~] pi% tail -n 1PierreBayerl^DBayerl[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 derDiagnoseausgabe
Bsp: wc –x datei1.txt 2> err.txt(-x als Option ungültig!)
< Umlenken der Eingabe aus einer Datei
[localhost:~] pi% sort >out.txtPierre BayerlKlaus MurmannHeiko Neumann^D[localhost:~] pi% tail -n 1 <out.txt Pierre Bayerl[localhost:~] pi%
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)
sort tailstdinstdin stdout stdout
“|” = Pipe
[localhost:~] pi% sort | tail -n 1Pierre BayerlKlaus MurmannHeiko Neumann^DPierre Bayerl[localhost:~] pi%
2. Internet
• Prinzip und Organisation• Dienste und Adressen
• WWW (‚World wide web‘) • E-Mail
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
A
B=
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
• Internet = Gesamtheit aller Netzwerke und Computer die über TCP/IP- Verbindungen erreichbar sind.
…0010110101….
…0010110101….
.
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.
Serverz.B. allgemeine.informatik.uni-ulm.de
Clients
Anfrage
Anfrage
Antwort
Antwort
Beispiel: Der WWW-Server der Vorlesung bieten einen speziellen Dienst zur Verwaltung der Übungspunkte an.
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
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.
Ziel-Rechner (Server)z.B. allgemeine.informatik.uni-ulm.de
DNS-Server
Client
allgemeine.informatik.uni-ulm.de ?
“134.60.74.81” !
Anfrage an 134.60.74.81
Antwort
A
B
Rechner A möchte mit Rechner B in Kontakt treten
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.2194.163.245.145
Mit 127.0.0.1 oder localhost kann stets der Rechner auf dem gerade gerabeitet wird angesprochen werden.
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
host.[subdomain.[subdomain.[...]]]domain.topleveldomain
Rechnername Institute, Abteilungen, etc Einrichtungen Hauptdomain
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,..).
• 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
Pine (3)
“Compose Message”(Mail schreiben & senden)
“Folder List/INBOX”(Mails lesen)
DEMOPine (4)
2. 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 pine verwendet 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 den vi oder vim zu bedienenShell-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
Editor: “emacs” / “xemacs”
Sehr verbreitet, auf nahezu allen UNIX-Systemen verfügbar Sehr mächtig Auch verfügbar für Windows-Systeme
Wichtige Funktionen Editor aufrufen: emacs Datei oder xemacs Datei & Text speichern: ctrl-x ctrl-s (nacheinander ctrl+x und ctrl+s drücken) Editor verlassen: ctrl-x ctrl-c Editor-Befehl abbrechen: ctrl-g Zeile n anspringen: <ESC> g n Undo (Rückgänig): ctrl-x u (nacheinander ctrl+x und „u“ drücken)
Lernen den emacs oder xemacs zu bedienenEditor-Kommando: ctrl-h t (nacheinander ctrl+x und „u“ drücken)