Informatik I - · PDF fileInformatik I - Einstiegskurs Dr. Henrik Brosenne...
Transcript of Informatik I - · PDF fileInformatik I - Einstiegskurs Dr. Henrik Brosenne...
Informatik I - Einstiegskurs
Dr. Henrik BrosenneGeorg-August-Universitat Gottingen
Institut fur Informatik
Basiert auf dem Einstiegskurs im Wintersemester 2009/10 vonMarkus Osterhoff
Wintersemester 2012/13
Inhalt
EinstiegskursLinux/UNIX
UNIX-Dateisystem
Standardprogrammecat, less & mehr
Editorenman pagesPipesStandard-ProgrammeShellskripte
Was sind / tun Betriebssysteme?
zahlreicheKomponenten...
Was sind / tun Betriebssysteme?
zahlreicheKomponenten...
Strom an...
Was sind / tun Betriebssysteme?
zahlreicheKomponenten...
Strom an...
nichts passiert!
Aufgaben eines Betriebssystems
Prozessverwaltung & Speichermanagement
Dateisystem & Benutzer-/ Rechteverwaltung
Treiber und Protokolle
Bibliotheken und Schnittstellen
Benutzeroberflachen
Basis-Satz an (Administrations-) Programmen
alle zum Betrieb notigen Dinge
(kein Browser, keinOffice, . . . )
Linux-Distribution: + Browser, +Office + tausende Pakete
Aufgaben eines Betriebssystems
Hardware
Betriebssystem-KernBe
trie
bss
yste
m
Treiber
SchnittstellenBibliotheken
Software
Benutzer
Abstraktion
UNIX und Linux
Das erste UNIX wird 1969 von Ken Thompson in Assembler geschrieben
1971 entwickelt Dennis Ritchie die Programmiersprache C
Danach: Weiterentwicklung durch zahlreiche Universitaten und Firmen (IBM, HP,AT&T, . . . , Microsoft, . . . )
1991: Linus Torvalds schreibt als Student eine Terminalemulation, um von zuHause auf die Uni-Rechner zuzugreifen das Projekt wird groer schlielichentsteht ein kleines Betriebssystem, das mittlerweile eine herausragende Stellungim Servermarkt einnimmt, und auch im Desktop-Bereich groe Zuwachseverzeichnet.
Viele Distributionen bieten komplette Betriebssysteme (Kernel +Anwendungssoftware) an.
Die Benutzerverwaltung unter Linux (1/3)
Jeder Anwender hat einen eigenen Account mit Benutzernamen und Passwort.
Dies dient dem Schutz der eigenen Dateien und dem Schutz der Rechenanlage
Der Administrator (root) darfalles.
Die Benutzerverwaltung unter Linux (2/3)
Mit Benutzernamen und Passwort kann man sich direkt am Rechner einloggen. . .
Die Benutzerverwaltung unter Linux (3/3)
Mit Benutzernamen und Passwort kann man sich direkt am Rechner einloggenaber auch uber das Netzwerk auf entfernten Rechnern.
Benutzeroberflache: Konsole (Shell)
Ein Konsole (auch Shell genannt) ist eine Kommandozeile, die vollstandig uber dieTastatur gesteuert wird.
Diese Art der Computersteuerung ist sehr machtig gerade im Bereich derSoftwareentwicklung und Wissenschaft konnen viele Aktionen sehr schnell auchohne Maus ausgefuhrt werden.
Einige Schwachen: Bildbearbeitung, Videoschnitt,pixelorientierte Aufgaben
Groe Starke der Shell: viele kleine nutzliche Programme, die bei
textorientierten Aufgaben eng zusammenarbeiten konnen.
Dateisystem
Das UNIX-Dateisystem hat eine Baumstruktur.
/
/afs /bin /etc /usr /tmp
informatik....goe.de
a b c ...m...z
brosenne
local
bin
firefox
Die oberste Ebene heit/ (
root).
Darunter findet sich einigeStandard-Verzeichnisse/bin /sbin /etc /usr /var /tmp
/home ...
Es gibt keineLaufwerksbuchstaben,
sondernmount points.
Verzeichnisse konnen Unterverzeichnisseund Dateien enthalten, einige Sonderfalle/dev /proc /sys
Dateien
$ stat vortrag.texFile: "vortrag.tex" Size: 883 Blocks: 8 IO Block: 4096Device: 811h/2065 Inode: 7325018 Links: 1
Access: (0755/ -rwxr -xr-x) Uid: ( 1000/ brosenne) Gid: ( 1000/ brosenne)Access: 2012 -10 -23 14:44:07.000000000 +0200Modify: 2012 -10 -23 14:44:02.000000000 +0200Change: 2012 -10 -23 14:44:02.000000000 +0200
Eine Datei hat
Name
Groe
Berechtigungen
Datum
. . .
Verzeichnisse (1/2)
/afs/informatik.uni -goettingen.de/./afs/informatik.uni -goettingen.de/course /./afs/informatik.uni -goettingen.de/course/info1 /./afs/informatik.uni -goettingen.de/course/info1/public /./afs/informatik.uni -goettingen.de/course/info1/public/index.html/afs/informatik.uni -goettingen.de/course/info1/public/uebungen.html
Ein Verzeichnis hat
Name
Dateien/Verzeichnisse als Inhalt
Berechtigungen
Datum
. . .
Verzeichnisse (2/2)
Jeder Benutzer hat ein eigenes Home-Verzeichnis.
/afs/informatik.uni-goettingen.de/user/b/brosenne
Hier befinden sich die Daten und die Konfigurationsdateien des Benutzers.
Es gibt zwei besondereVerzeichnisse
. das aktuelle Verzeichnis,
.. das daruberliegende Verzeichnis
Bewegen im Dateisystem
$ pwd print working directory
Wo sind wir gerade?
$ ls list
Was befindet sich hier?
Was sind die Berechtigungen?
ls -l list long
$ cd change directory
Wir wollen woanders hin. . .
Berechtigungen
Dateiberechtigungen
Nicht jeder darf jede Datei
ausfuhren (eXecute)
schreiben (Write)
lesen (Read)
Verzeichnisberechtigungen
Nicht jeder darf in jedes/jedem Verzeichnis
wechseln (X)
schreiben (W), d.h. Dateien erzeugen,verschieben, loschen, . . .
auflisten (R)
Berechtigungen
rwx rwx rwx
Besitzer alle anderen Gruppe
Berechtigungen
Berechtigungen anzeigen: ls -l
typische Ausgabe (zusatzlich: Anderungsdatum, Groe)
- rwx rwx rwx musterma students datei1- rw- r-- --- musterma students datei2- --- --- --- cdamm professors datei4
d rwx r-x r-x musterma students verzeichnis1d rwx rwx rwx musterma students verzeichnis2d rwx --- --- cdamm professors klausur
Berechtigungen
Kombination von Datei- und Verzeichnisberechtigung
Verzeichnis: d --x /tmp/nurwechseln
Datei: - r-- /tmp/nurwechseln/nurlesen
Die Datei darf gelesen werden, aber der Anwender muss den Dateinamen kennen,da er kein
$ ls /tmp/nurwechseln
machen kann.
chmod (1/3)
Dateiberechtigungen konnen mit dem Befehl
$ chmod change modus
vom Besitzer der Datei geandert werden
Es sind zwei Schreibweisen moglich.
$ chmod g+rw
$ chmod 755
Flag Wertr 4w 2x 1
chmod (2/3)
$ chmod g+rw dateiI Gruppe: +Lesen, +Schreiben
$ chmod o-w dateiI Andere: -Schreiben
$ chmod u+x dateiI Besitzer: +Ausfuhren
$ chmod u+x,g-w dateiI Besitzer: +Ausfuhren, Gruppe: -Schreiben
chmod (3/3)
$ chmod 750 dateiI 750 == 4+2+1 , 4+1 , 0
7 = rwx5 = r-x0 = ---
I 750 = rwx r-x ---
$ chmod 664 dateiI 664 == 4+2 , 4+2, 4
6 = rw-4 = r
I 664 = rw- rw- r--
$ chmod 775 verzeichnis,programmI 775 == 4+2+1 , 4+2+1, 4+1
7 = rwx5 = r-x
I 775 = rwx rwx r-x
Dateiverwaltung
Hier eine Auswahl an wichtigen Befehlen.
Befehl Namepwd print working directoryls -l list longcd change directorymkdir make directoryrmdir remove directorytouch (legt Datei an)mv movecp copyrm -r remove recursively
Dateiverwaltung
$ cp einedatei /tmp/anderedatei
Kopiert einedatei in das Verzeichnis /tmp/ unter dem Namenanderedatei
$ cp einedatei anderedatei
Kopiert einedatei in anderedatei (im aktuellen Verzeichnis).
Dateiverwaltung
$ mv einedatei anderedatei
Benennt einedatei in anderedatei um.
$ mv einedatei /tmp/anderedatei
Verschiebt einedatei in das Verzeichnis /tmp/ und benennt sie um inanderedatei
$ mv /tmp/einedatei anderedatei
Verschiebt /tmp/einedatei in das aktuelle Verzeichnis und benennt sie umin anderedatei
mkdir, cd, pwd
$ pwd
/afs/.../brosenne
$ mkdir einfuehrungskurs
$ cd einfuehrungskurs
$ pwd
/afs/.../brosenne/einfuehrungskurs
$ ls -l
insgesamt 0
$ cd ..
$ rmdir einfuehrungskurs
Inhalt
EinstiegskursLinux/UNIX
UNIX-Dateisystem
Standardprogrammecat, less & mehr
Editorenman pagesPipesStandard-ProgrammeShellskripte
Standardprogramme
Zu einer UNIX-/Linux-Installation gehoren viele Standardprogramme, nutzlichekleine Tools, einige davon werden im Folgenden vorgestellt.
zunachst: wie bedient man die Konsole (Shell)?
anschlieend: wie bearbeitet man Text-Dateien?
Shell & Programme
Das Kommando
$ firefox
soll das Programm firefox starten. Aber wo findet sich die Programmdatei?
Die Shell durchsucht alle Verzeichnisse, die in der Variablen $PATH aufgelistetsind.
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11
und findet schlielich
$ which firefox
/usr/bin/firefox
Shell & Programme
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11
Ausschlielich diese Verzeichnisse werden durchsucht.
Nur ausfuhrbare Dateien in diesen Verzeichnissen konnen auf diese Weiseausgefuhrt werden.
Insbesondere: ausfuhrbare Dateien im aktuellen Verzeichnis konnen so nichtgestartet werden.
Das geht nur mit vollstandigen Pfad (absolut oder relativ).
$ ./mein skript.sh
$ /afs/.../brosenne/einfuehrung/mein skript.sh
$ ../anderes skript.sh
Fruher war alles besser. . .
Die Shell merkt sich die Eingaben.
Cursor-Hoch: letzte Befehle
Curor-Runter: nachste Befehle
STRG+R: Suchen
Tabulator: Vervollstandigung von Datei-/Verzeichnisnamen
$ programm1
$ ls