Informatik I - · PDF fileInformatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universit at G ottingen Institut f ur Informatik Basiert auf dem Einstiegskurs im

  • Upload
    lydang

  • View
    221

  • Download
    1

Embed Size (px)

Citation preview

  • 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