--- /dev/null
+[html
+[head [title VHS Linuxkurs]
+ [style type="text/css" <!--
+div.slide {
+ background: linear-gradient(rgba(255,255,255,.75), rgba(255,255,255,.75)), url("/usr/share/backgrounds/xfce/xfce-blue.jpg");
+ backgrpund-position: center;
+ background-size: contain;
+}
+div.slide h1,
+div.slide h2 {
+ background: rgba(192,192,192,.5);
+}
+ -->]
+]
+[body
+ [footer Paul Hänsch | Linux Presentation Day | VHS Leipzig]
+[slide
+ [h1 VHS Linux Presentation Day]
+]
+[slide [h1 Was ist ein Betriebssystem?] ]
+
+[slide [h2 Was ist ein Betriebssystem?]
+ [ul .uncover
+ [li Unterscheidung: Anwendungsprogramm, "App"]
+ [li idR. nicht selbst als "Programm" bezeichnet]
+ [li Läuft vom Start bis zum Halt des Computers]
+ [li Für Benutzer mehr oder weniger unsichtbar]
+ [li Stellt Funktionen für Programme Bereit]
+ ]
+]
+
+[slide [h2 Funktionen eines Betriebssystems]
+ [ul .uncover
+ [li Einheitlicher Zugriff auf Hardware (Treiber)]
+ [li Organisation von Dateien]
+ [li Zugriff auf Netzwerk]
+ [li Zuteilung von Rechenzeit (Task-Switching, Multitasking)]
+ [li Trennung von Applikationen (Virtualisierung)]
+ [li Trennung von Benutzern, Zugriffssrechte]
+ [li [b Kontrolle dieser Funktionen über Dienstprogramme]]
+ ]
+]
+
+[slide [h2 Begriffe]
+ [p style="text-align: center; font-size: 3em; line-height: 1.25em;"
+ [sup [b GNU]] [sub Desktop] [sup [i Unix]] [br]
+ [sub [u Ubuntu]] [sup [b Linux]] [sub Distribution]
+ [sub Gnome] [sup Knoppix]
+ ]
+]
+
+[slide [h2 Was ist Unix?]
+ [ul .uncover
+ [li 1969 von an den Bell Labs für PDP-7 konzipiert]
+ [li Von "C"-Erfinder Dennis Ritchie und Ken Thompson]
+ [li Entworfen um "Space Travel"-Spiel als Anwendung]
+ [li Schafft grundlegenden Aufbau für Beriebssysteme]
+ [li Von Bell an kommerzielle Computerhersteller lizensiert]
+ ]
+]
+
+[slide [h2 Was ist GNU?]
+ [ul
+ [p [b G]NU is]
+ [p [b N]ot]
+ [p [b U]nix]
+ ]
+]
+
+[slide [h2 Was ist GNU?]
+ [ul .uncover
+ [li 1983 am durch Richard M. Stallman am MIT begonnen]
+ [li Auslöser war u.A. Missmut über Kopierschutzpraktiken]
+ [li Grundlage der Free Software Bewegung]
+ [li Unix-Kompatibles Betriebssystem]
+ [li Umfasst Unix-Dienstprogramme]
+ ]
+]
+
+[slide [h2 Was ist Freie Software?]
+ [ul .uncover
+ Die Vier Freiheiten:
+ [li [b Verwenden:] das Programm für jeglichen Zweck ausführen]
+ [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen]
+ [li [b Verbreiten:] das Programm weitergeben]
+ [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben]
+ ]
+]
+
+[slide [h2 Was ist Linux?]
+ [ul .uncover
+ [li 1991 durch Linus Torvalds an der Uni Helsinki begonnen]
+ [li Unix-Kompatibler Betriebssystem-[em Kernel]]
+ [li Lauffähig mit GNU-Dienstprogrammen]
+ [p style="text-align: center; font-size: 2em; line-height: 1.25em;" GNU + Linux]
+ ]
+]
+
+[slide [h2 Was ist eine Distribution?]
+ [ul .uncover
+ [li Linux-Kernel ist ein eigenes Softwareprojekt]
+ [li GNU ist ein eigenes Softwareprojekt]
+ [li Grafische Bedienoerflächen sind unabhängig davon]
+ [li Anwendungsprogramme sind eigenständige Projekte]
+ [li "Distributor" stellt Softwarepakete zusammen]
+ [li Softwarekomponenten werden angepasst um miteinander kompatibel zu sein]
+ [li Software wird für Computerarchitekturen "kompiliert"]
+ ]
+]
+
+[slide [h2 Beispiele für Distributionen]
+ [ul
+ [li Ubuntu - Kommerzielle Distribution basierend auf Debian]
+ [li Debian - Frühe Distribution mit Online-Paketsystem]
+ [li Gentoo - Zusammenstellung von Quellcode zum selbst anpassen]
+ [li Arch - Verbreitete Distribution mit eigenem Paketsystem]
+ [li Knoppix - Debian basiertes Live-System]
+ [li Fedora, RedHat, Suse, Parabola, Puppy, Rebecca Black, ...]
+ [li Tausende weitere]
+ ]
+]
+
+[slide [h2 Desktopumgebungen]
+ Grafische Bedienoberflächen können sehr unterschiedlich aussehen
+ [ul
+ [li Gnome]
+ [li KDE]
+ [li LXDE]
+ [li Xfce]
+ [li Maté, i3, Awesome, WindowMaker, LXQT, Enlightenment, usw...]
+ [li Unterscheidung: Window Manager, Toolkit, Softwaresuite]
+ ]
+]
+
+[slide [h2 Weitere Begriffe]
+ [ul
+ [li [b Android:] anderes Betriebssystem mit Linux-Kernel]
+ [li [b BSD:] Berkeley Software Distribution, anderes Freies Unix]
+ [li [b Busybox:] andere Suite von Unix-Dienstprogrammen]
+ ]
+]
+
+[slide [h1 Themenübersicht]]
+
+[slide [h2 Themen im Linux Grundkurs]
+ [ul .uncover
+ [li Arbeit mit Dateien [ul
+ [li Ordnerstrukturen, Zugriffsrechte, Benutzer, Gruppen]
+ ]]
+ [li Syntax der Kommandozeile]
+ [li Datenträger, Dateisysteme, Partitionen]
+ [li Prozesse und Prozessmanagement]
+ [li Netzwerkgrundlagen[ul
+ [li TCP/IP, DNS, HTTP, SSH]
+ ]]
+ [li Softwareinstallation, Paketsysteme]
+ [li Installparty]
+ ]
+]
+
+[slide [h2 Linux Grundkurs an der VHS]
+ [ul
+ [li Datum: ]
+ ]
+]
+
+]]
+++ /dev/null
-[html
-[head [title VHS Linuxkurs]]
-[body
- [footer Paul Hänsch | Linux Grundkurs | VHS Leipzig]
-[slide
- [h1 VHS Linux Grundkurs]
-]
-[slide [h2 Dozent]
- [ul
- [li Paul Hänsch]
- [li Seit 2012 freiberuflicher Programmierer]
- [li Arbeit an und mit Freier Software (Open Source)]
- [li Kunden: Jugendclub, Kinderzirkus, Physiotherapie, HTW, ...]
- [li in der Vergangenheit: Free Software Foundation Europe]
- [li Videopodcast: GNUfunzt! http://gnufunzt.de]
- [li Kontakt: paul@plutz.net]
- ]
-]
-[slide [h2 Organisatorisches zum Kurs]
- [ul
- [li 6 Termine jeden Mittwoch]
- [li 17:00 bis 20:15 Uhr]
- [li Letzter Termin 23.10. - Installparty]
- [li Themenübersicht - Nach der Einführung]
- ]
-]
-[slide [h1 Was ist ein Betriebssystem?] ]
-
-[slide [h2 Was ist ein Betriebssystem?]
- [ul .uncover
- [li Unterscheidung: Anwendungsprogramm, "App"]
- [li idR. nicht selbst als "Programm" bezeichnet]
- [li Läuft vom Start bis zum Halt des Computers]
- [li Für Benutzer mehr oder weniger unsichtbar]
- [li Stellt Funktionen für Programme Bereit]
- ]
-]
-
-[slide [h2 Funktionen eines Betriebssystems]
- [ul .uncover
- [li Einheitlicher Zugriff auf Hardware (Treiber)]
- [li Organisation von Dateien]
- [li Zugriff auf Netzwerk]
- [li Zuteilung von Rechenzeit (Task-Switching, Multitasking)]
- [li Trennung von Applikationen (Virtualisierung)]
- [li Trennung von Benutzern, Zugriffssrechte]
- [li [b Kontrolle dieser Funktionen über Dienstprogramme]]
- ]
-]
-
-[slide [h2 Begriffe]
- [p style="text-align: center; font-size: 3em; line-height: 1.25em;"
- [sup [b GNU]] [sub Desktop] [sup [i Unix]] [br]
- [sub [u Ubuntu]] [sup [b Linux]] [sub Distribution]
- [sub Gnome] [sup Knoppix]
- ]
-]
-
-[slide [h2 Was ist Unix?]
- [ul .uncover
- [li 1969 von an den Bell Labs für PDP-7 konzipiert]
- [li Von "C"-Erfinder Dennis Ritchie und Ken Thompson]
- [li Entworfen um "Space Travel"-Spiel als Anwendung]
- [li Schafft grundlegenden Aufbau für Beriebssysteme]
- [li Von Bell an kommerzielle Computerhersteller lizensiert]
- ]
-]
-
-[slide [h2 Was ist GNU?]
- [ul
- [p [b G]NU is]
- [p [b N]ot]
- [p [b U]nix]
- ]
-]
-
-[slide [h2 Was ist GNU?]
- [ul .uncover
- [li 1983 am durch Richard M. Stallman am MIT begonnen]
- [li Auslöser war u.A. Missmut über Kopierschutzpraktiken]
- [li Grundlage der Free Software Bewegung]
- [li Unix-Kompatibles Betriebssystem]
- [li Umfasst Unix-Dienstprogramme]
- ]
-]
-
-[slide [h2 Was ist Freie Software?]
- [ul .uncover
- Die Vier Freiheiten:
- [li [b Verwenden:] das Programm für jeglichen Zweck ausführen]
- [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen]
- [li [b Verbreiten:] das Programm weitergeben]
- [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben]
- ]
-]
-
-[slide [h2 Was ist Linux?]
- [ul .uncover
- [li 1991 durch Linus Torvalds an der Uni Helsinki begonnen]
- [li Unix-Kompatibler Betriebssystem-[em Kernel]]
- [li Lauffähig mit GNU-Dienstprogrammen]
- [p style="text-align: center; font-size: 2em; line-height: 1.25em;" GNU + Linux]
- ]
-]
-
-[slide [h2 Was ist eine Distribution?]
- [ul .uncover
- [li Linux-Kernel ist ein eigenes Softwareprojekt]
- [li GNU ist ein eigenes Softwareprojekt]
- [li Grafische Bedienoerflächen sind unabhängig davon]
- [li Anwendungsprogramme sind eigenständige Projekte]
- [li "Distributor" stellt Softwarepakete zusammen]
- [li Softwarekomponenten werden angepasst um miteinander kompatibel zu sein]
- [li Software wird für Computerarchitekturen "kompiliert"]
- ]
-]
-
-[slide [h2 Beispiele für Distributionen]
- [ul
- [li Ubuntu - Kommerzielle Distribution basierend auf Debian]
- [li Debian - Frühe Distribution mit Online-Paketsystem]
- [li Gentoo - Zusammenstellung von Quellcode zum selbst anpassen]
- [li Arch - Verbreitete Distribution mit eigenem Paketsystem]
- [li Knoppix - Debian basiertes Live-System]
- [li Fedora, RedHat, Suse, Parabola, Puppy, Rebecca Black, ...]
- [li Tausende weitere]
- ]
-]
-
-[slide [h2 Desktopumgebungen]
- Grafische Bedienoberflächen können sehr unterschiedlich aussehen
- [ul
- [li Gnome]
- [li KDE]
- [li LXDE]
- [li Xfce]
- [li Maté, i3, Awesome, WindowMaker, LXQT, Enlightenment, usw...]
- [li Unterscheidung: Window Manager, Toolkit, Softwaresuite]
- ]
-]
-
-[slide [h2 Weitere Begriffe]
- [ul
- [li [b Android:] anderes Betriebssystem mit Linux-Kernel]
- [li [b BSD:] Berkeley Software Distribution, anderes Freies Unix]
- [li [b Busybox:] andere Suite von Unix-Dienstprogrammen]
- ]
-]
-
-[slide [h1 Themenübersicht]]
-
-[slide [h2 Themen Tag 1]
- [ul .uncover
- [li Arbeit mit Dateien]
- [li Etwas Kommandozeile]
- [li Zugriffsrechte]
- [li Benutzer, Gruppen]
- [li Ordnerstrukturen]
- ]
-]
-
-[slide [h2 Weitere Themen]
- [ul .uncover
- [li Prozessmanagement]
- [li Vertiefung Kommandozeile, Shellscripting]
- [li Datenträger, Dateisysteme, Partitionen]
- [li Systemstart]
- [li Paketsysteme, Softwareinstallation, Systeminstallation]
- [li Netzwerk, SSH]
- [li nach Wunsch Android, X11, Verschlüsselung, Internetdienste, Versionskontrolle, ...]
- [li Installparty]
- ]
-]
-
-[slide [h1 Arbeit mit Dateien]
- [pre ~$ _]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre ~$ touch datei1]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre ~$ ls]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre
- ~$ ls -l datei1
- -rw-r--r-- 1 live live 0 Apr 10 02:13 datei1]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre ~$ echo "Hallo Welt!" \> datei1]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre
- ~$ ls -l datei1
- -rw-r--r-- 1 live live 12 Apr 10 02:13 datei1]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre ~$ cat datei1]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre style="font-size: .75em; line-height: 1.5em;"
- ~$ touch datei1
- ~$ ls
- datei1
- ~$ ls -l datei1
- -rw-r--r-- 1 live live 0 Apr 10 02:13 datei1
- ~$ echo "Hallo Welt!" > datei1
- ~$ ls -l datei1
- -rw-r--r-- 1 live live 12 Apr 10 02:13 datei1
- ~$ cat datei1
- Hallo Welt!
- ~$ _
- ]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre
- ~$ ls -l /bin/bash
- -rwxr-xr-x 1 root root 1168776 Apr 18 06:12 /bin/bash]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre ~$ ls -l -h /bin/bash]
-]
-
-[slide [h2 Arbeit mit Dateien]
- [pre -rwxr-xr-x 1 root root 1.2M Apr 18 06:12 /bin/bash]
-]
-
-[slide [h2 Zusammenfassung]
- [ul
- [li [pre touch] legt eine Datei an]
- [li [pre ls] zeigt Informationen über eine Datei]
- ]
-]
-
-[slide [h2 Zusammenfassung]
- [ul
- [li Kommandos lassen sich parametrisieren, z.B. [pre ls -l] und [pre ls -h]]
- ]
-]
-
-[slide [h2 Zusammenfassung]
- [ul
- [li mit [pre echo] können wir text [strike in eine Datei schreiben] [ul .uncover
- [li [strong Eigentlich nur ausgeben!]]
- ]]
- ]
-]
-
-[slide [h2 Zusammenfassung]
- [ul
- [li [pre cat] zeigt den Inhalt von Dateien an]
- ]
-]
-
-[slide [h2 Zusammenfassung]
- [pre touch]
- [pre ls]
- [pre ls -l -h]
- [pre echo]
- [pre cat]
-]
-
-[slide [h1 Zugriffsrechte]]
-
-[slide [h2 Zugriffsrechte]
- [pre ~$ ls -l datei1]
- [pre -rw-r--r-- 1 live live 12 Apr 10 02:13 datei1]
- [table style="width: 85%;"
- [tr [th Typ] [th Eigentümer] [th Gruppe] [th Andere]]
- [tr [td [pre -]] [td [pre rw-]] [td [pre r--]] [td [pre r--]]]
- ]
-]
-
-[slide [h2 Zugriffsrechte]
- [pre ~$ ls -l /bin/cat]
- [pre -rwxr-xr-x 1 root root 34676 Feb 22 2017 /bin/cat]
- [table style="width: 85%;"
- [tr [th Typ] [th Eigentümer (root)] [th Gruppe (root)] [th Andere]]
- [tr [td [pre -]] [td [pre rwx]] [td [pre r-x]] [td [pre r-x]]]
- ]
-]
-
-[slide [h2 Zugriffsrechte]
- [pre
- ~$ chmod u-r datei1
- ~$ ls -l datei1]
- [pre --w-r--r-- 1 live live 12 Apr 10 02:13 datei1]
- [table style="width: 85%;"
- [tr [th Typ] [th Eigentümer] [th Gruppe] [th Andere]]
- [tr [td [pre -]] [td [pre -w-]] [td [pre r--]] [td [pre r--]]]
- ]
-]
-
-[slide [h2 Zugriffsrechte]
- [pre
- ~$ cat datei1
- cat: datei1: Keine Berechtigung]
-]
-
-[slide [h2 Zugriffsrechte]
- [pre
- ~$ chmod u+r datei1
- ~$ cat datei1
- Hallo Welt!]
-]
-
-[slide [h2 Zugriffsrechte - Gruppen]
- [pre
- ~$ groups
- live sudo video input]
-]
-
-[slide [h2 Zugriffsrechte - Gruppen]
- [pre
- ~$ chgrp video datei1
- ~$ ls -l datei1
- -rw-r--r-- 1 live video 12 Apr 10 02:13 datei1]
-]
-
-[slide [h1 Navigation im Dateisystem]]
-
-[slide [h2 Navigation im Dateisystem]
- [pre
- ~$ pwd
- /home/live]
-]
-
-[slide [h2 Navigation im Dateisystem]
- [pre
- ~$ cd .
- ~$ pwd
- /home/live]
-]
-
-[slide [h2 Navigation im Dateisystem]
- [pre
- ~$ cd ..
- ~$ pwd
- /home]
-]
-
-[slide [h2 Navigation im Dateisystem]
- [pre
- ~$ cd ..
- ~$ pwd
- /
- ~$ ls
- bin etc media proc sys var boot home mnt
- root tmp dev lib opt sbin usr]
-]
-
-[slide [h2 Navigation im Dateisystem]
- [div
- [pre ~$ ls bin]
- [pre ~$ ls etc]
- [pre ~$ ls dev]
- ]
-]
-
-[slide [h2 Navigation im Dateisystem]
- [ul .uncover
- [li Dateipfade können [em absolut] oder [em relativ] sein]
- [li Absolute Pfade beginnen immer mit einem Slash (Schrägstrich)]
- [li [pre /bin/bash]
- [pre /home/live/datei1]]
- [li Relative Pfade beginnen niemals mit einem Schrägstrich]
- [li [pre bash]
- [pre live/datei1]]
- [li Relative Pfade bezeichenen einen Ort Abhängig vom Arbeitsverzeichnis (pwd)]
- ]
-]
-
-[slide [h2 Navigation im Dateisystem]
- [ul .uncover
- Weitere Pfade:
- [li [pre /home/live/../live/../live]]
- [li [pre /./bin/./]]
- ]
-]
-
-[slide [h2 Systemordner in Unix]
- [ul
- [li [strong /bin] enthält ausführbare Programme]
- [li [strong /boot] enthält den Systemkernel und Dateien, die damit unmittelbar in Zusammenhang stehen]
- [li [strong /etc] enthält systemweite Konfigurationsdateien]
- [li [strong /home] enthält Heimverzeichnisse der Benutzer]
- [li [strong /lib] enthält sogenannte Softwarebibliotheken]
- [li [strong /media] wird benutzt um temporäre Medien wie CDs und USB-Sticks abzubilden]
- [li [strong /var] enthält Dateien, die sich ohne Handlung des Benutzers im regulären Betrieb verändern (z.B. Logbücher)]
- [li [strong /usr] enthält weitere /bin und /lib Verzeichnisse für weniger grundlegende Programme]
- ]
-]
-
-[slide [h2 Systemordner in Unix]
- [ul .uncover
- [li [strong /dev] enthält Geräte]
- [li [strong /proc] enthält Prozesse]
- [li [strong /sys] enthält Treiberschnittstellen]
- [p style="text-align: center; margin: .5em; font-size: 1.5em" Everything is a File!]
- ]
-]
-
-[slide [h1 Mehr dazu nächstes mal!]]
-
-[slide [h2 Zusammenfassung]
- [ul .uncover
- [li Einführung, Historie]
- [li Dateien: touch, ls, cat]
- [li Berechtigungen: chmod, groups, chgrp]
- [li Navigation: cd, pwd]
- [li Absolute Pfade, Relative Pfade]
- [li Ordnerstrukturen]
- ]
-]
-
-[slide [h2 Daran denken:]
- [ul
- [li Anwesenheitsliste]
- [li Lehrnachweis]
- [li nächster Termin: 25.9.]
- ]
-]
-
-]]
+++ /dev/null
-[html
-[head [title VHS Linuxkurs]]
-[body
- [footer Paul Hänsch | Linux Grundkurs | VHS Leipzig]
-
-[slide
- [h1 VHS Linux Grundkurs - Teil 2]
-]
-
-[slide [h2 Themen]
- [ul
- [li Wiederholung + Syntax der Kommandozeile]
- [li Arbeit mit Dateien und Pfaden]
- [li Datenträger und Dateisysteme]
- ]
-]
-
-[slide [h2 Nicht Vergessen!]
- [ul [li Achja, Die Tastaturbelegung...]]
-]
-
-[slide [h1 Syntax der Kommandozeile]]
-
-[slide [h2 Syntax der Kommandozeile]
- [pre ~$ echo Hallo Welt]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [pre
- ~$ echo Hallo Welt
- Hallo Welt]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [pre
- ~$ echo Hallo Welt
- Hallo Welt
-
- ~$ echo Hallo Welt]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [pre
- ~$ echo Hallo Welt
- Hallo Welt
-
- ~$ echo Hallo Welt
- Hallo Welt]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [table width="85%"
- [tr
- [th Shellprompt] [th Befehl / Programm] [th Parameter 1] [th Parameter 2]
- ][tr
- [th ~$] [td [pre echo]] [td [pre Hallo]] [td [pre Welt]]
- ]
- ]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [pre ~$ echo "Hallo Welt"]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [table width="85%"
- [tr
- [th Shellprompt] [th Befehl / Programm] [th Parameter 1]
- ][tr
- [th ~$] [td [pre echo]] [td [pre Hallo Welt]]
- ]
- ]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [h3 Identisch:]
- [pre ~$ echo "Hallo Welt"]
- [pre ~$ echo Hallo" "Welt]
- [h3 [em Nicht] identisch:]
- [pre ~$ echo Hallo " " Welt]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [pre ~$ echo "Hallo Welt"]
- [pre ~$ echo Hallo" "Welt]
- [table width="85%"
- [tr
- [th Shellprompt] [th Befehl] [th Parameter 1]
- ][tr
- [th ~$] [td [pre echo]] [td [pre Hallo Welt]]
- ]
- ]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [pre ~$ echo Hallo " " Welt]
- [pre ~$ echo "Hallo" " " "Welt"]
- [table width="85%"
- [tr
- [th Shellprompt] [th Befehl] [th Parameter 1] [th Parameter 2] [th Parameter 3]
- ][tr
- [th ~$] [td [pre echo]] [td [pre Hallo]] [td [pre ]] [td [pre Welt]]
- ]
- ]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [h3 Folie vom ersten Kurstag:]
- [pre ~$ echo "Hallo Welt!" \> datei1]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [ul
- [h3 Folie vom ersten Kurstag:]
- [li mit [pre echo] können wir text [strike in eine Datei schreiben] [ul
- [li [strong Eigentlich nur ausgeben!]]
- ]]
- ]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [table width="85%"
- [tr
- [th Shellprompt] [th Befehl] [th Parameter 1] [th Umleitung] [th Ziel der Umleitung]
- ][tr
- [th ~$] [td [pre echo]] [td [pre Hallo Welt!]] [td \>] [td datei1]
- ]
- ]
-]
-
-[slide [h2 Syntax der Kommandozeile]
- [ul .uncover
- [li style="margin-top: 1em;" [pre ~$ echo "Hallo Welt!" > datei1]]
- [li style="margin-top: 1em;" [pre ~$ ls -l > datei1]]
- [li style="margin-top: 1em;" [pre ~$ cat datei1 > datei2]]
- [li style="margin-top: 1em;" [strong Shellkommandos sind eine Sprache!]]
- ]
-]
-
-[slide [h1 Arbeit mit Dateien und Pfaden]]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre ~$ touch datei1 datei2 datei3]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre ~$ mkdir ordner1 ordner2]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre ~$ mv datei1 ordner1]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre ~$ mv datei2 datei3 ordner2]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [table width="85%"
- [tr
- [th Shellprompt] [th Befehl] [th Parameter 1] [th Parameter 2]
- ][tr
- [th ~$] [td [pre mv]] [td [pre datei1]] [td [pre ordner1]]
- ]
- ]
- [table width="85%"
- [tr
- [th Shellprompt] [th Befehl] [th Parameter 1] [th Parameter 2] [th Parameter 3]
- ][tr
- [th ~$] [td [pre mv]] [td [pre datei2]] [td [pre datei3]] [td [pre ordner2]]
- ]
- ]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [ul .uncover
- [li [pre ~$ ls ordner1]]
- [li [pre ~$ cd ordner1]]
- [li [pre ~$ ls]]
- [li [pre ~$ ls ordner1]]
- ]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [ul
- [li [pre ~$ ls ordner1]]
- [li [pre ~$ cd ordner1]]
- [li [pre ~$ ls]]
- [li [pre ~$ ls ordner1]]
- [li Wir sind [strong in] [em ordner1], dieser Ordner enthält nicht seinerseits einen [em ordner1]]
- ]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre ~$ ls /home/live/ordner1]
- funktioniert immer =\> absoluter Pfad
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [ul
- [li Relativer Pfad: [pre ~$ ls ../ordner2]]
- [li Absoluter Pfad: [pre ~$ ls /home/live/ordner2]]
- ]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre ~$ cp datei1 "Name mit Leerzeichen"]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [ul .uncover
- [li [pre ~$ mv "Name mit Leerzeichen" Name_ohne_Leerzeichen]]
- [li auch möglich:
- [pre ~$ mv Name\\ mit\\ Leerzeichen Name_ohne_Leerzeichen]]
- ]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre
- ~$ mv Name_ohne_Leerzeichen ..
- ~$ mv ../Name_ohne_Leerzeichen .]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre
- ~$ mv ../ordner2/datei2 .
- ~$ mv /home/live/ordner2/datei3 .]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre
- ~$ cd /home/live
- ~$ rmdir ordner2]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre
- ~$ rmdir ordner1]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre
- ~$ rm ordner1]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre
- ~$ rm ordner1/datei2]
-]
-
-[slide [h2 Arbeit mit Dateien und Pfaden]
- [pre
- ~$ rm -r ordner1/]
-]
-
-[slide [h2 Zusammenfassung]
- [ul .uncover
- [h3 Shellsyntax]
- [li Die Shell erlaubt es Instruktionen zu beschreiben]
- [li mit \> kann jede Programmausgabe in eine Datei geleitet werden]
- [li Die Fähigkeiten von Programmen sind so erweiterbar]
- ]
-]
-
-[slide [h2 Zusammenfassung]
- [ul .uncover
- [h3 Pfade]
- [li Einige Programme nehmen Pfade als Parameter an]
- [li Pfade können nach Belieben absolut oder relativ sein]
- [li Pfade mit Leerzeichen werden in Anführungszeichen gefasst, damit sie als einzelne Parameter gelten]
- [li [strong Kommandos:] mkdir, cp, mv, rmdir, rm, rm -r]
- ]
-]
-
-[slide [h1 Datenträger und Dateisysteme]]
-
-[slide [h2 Datenträger]
- [ul .uncover
- [li Enthalten Verzeichnisse und Dateien]
- [li Aber: Gerät enthält nur einen "Datenstrom"]
- [li Dateistrukturen müssen kodiert werden]
- [li Ein Dateisystem kodiert Dateien auf einem Datenträger]
- ]
-]
-
-[slide [h2 Datenträger]
- [ul .uncover
- [h3 Beispiel: CD-ROM Images]
- [li Dateisystem von CD-ROMs ist spezifiziert in ISO 9660]
- [li ISO 9660 wird beim Schreiben von CDs zusamengebaut, ist nicht nachträglich veränderlich]
- [li Unterstützt Unix-Benutzerrechte nur mit Erweiterungen]
- [li Ganzes Dateisystem kann in .iso-Dateien gespeichert werden]
- ]
-]
-
-[slide [h2 Datenträger]
- [ul .uncover
- [h3 Beispiel: CD-ROMs]
- [li CD-ROM kann von .iso-Datei gebrannt werden]
- [li Inhalt der CD ist [em identisch] mit .iso-Datei]
- [li Erstellen eines CD-Images: [pre ~$ cp /dev/cdrom live.iso]]
- ]
-]
-
-[slide [h1 Dateisysteme]]
-
-[slide [h2 Dateisysteme]
- [ul .uncover
- [li [pre ~$ mkdir cdrom][br]]
- [li [pre ~$ sudo mount live.iso cdrom/][br]]
- [li [pre ~$ ls cdrom/]]
- ]
-]
-
-[slide [h2 Dateisysteme]
- [ul .uncover
- [h3 Diverse Kommandos]
- [li [pre ~$ lsblk][br]]
- [li [pre ~$ df] [pre ~$ df -h] [br]]
- [li [pre ~$ mount][br]]
- [li [pre ~$ umount]]
- ]
-]
-
-[slide [h1 Dateisysteme auf Datenträgern anlegen]]
-
-[slide [h2 Dateisysteme und Datenträger]
- [p [h3 Wir brauchen einen Computer ;-)]
- [img "aqemu_1.jpg" "aQemu aus dem Menü starten"]
- ]
-]
-
-[slide [h2 Dateisysteme und Datenträger]
- [p [h3 Wir brauchen einen Computer ;-)]
- [img "aqemu_2.jpg" "eine neue Maschine anlegen"]
- ]
-]
-
-[slide [h2 Dateisysteme und Datenträger]
- [p [h3 Wir brauchen einen Computer ;-)]
- [img "aqemu_3.jpg" "Das CDROM-Laufwerk hinzufügen"]
- ]
-]
-
-[slide [h2 Dateisysteme und Datenträger]
- [p [h3 Alternativ auf der Kommandozeile ;-)]
- [pre ~$ dd bs=1M count=0 seek=2048 of=sparse.img]
- [pre ~$ kvm -m 1024 sparse.img -cdrom /dev/cdrom]
- ]
-]
-
-[slide [h2 Dateisysteme und Datenträger]
- [ul .uncover
- [li Festplatten und USB-Sticks werden [em partitioniert]]
- [li Dateisysteme werden idR. in einer Partition angelegt]
- [li Ein Programm zum Anlegen von Partitionen und Dateisystemen:
- [pre ~$ sudo gparted]
- ]
- ]
-]
-
-[slide [h2 Dateisysteme und Datenträger]
- [ul .uncover
- [h3 Wir brauchen:]
- [li Eine Partitionstabelle: gpt]
- [li Eine Partition]
- [li Ein Dateisystem: vfat]
- [li Eine zweite Partition]
- [li Ein zweites Dateisystem: ext4]
- ]
-]
-
-[slide [h2 Dateisysteme und Datenträger]
- [ul .uncover
- [h3 Dateisysteme]
- [li Ext4: Verbreitet für Linux-Systeminstallation]
- [li FAT (vfat): Verbreitet für Wechselmedien [ul
- [li Kann keine Zugriffsrechte abbilden]]]
- [li exFAT: Moderneres FS für Wechselmedien (unterstützt Dateien \>4GB)]
- [li NTFS: Dateisystem für Windows-Installationen]
- [li Weitere: HPFS, BtrFS, UDF, ...]
- ]
-]
-
-[slide [h2 Dateisysteme und Datenträger]
- [ul .uncover
- [h3 Dateisystem-Tools auf der Kommandozeile:]
- [li [pre ~$ sudo fdisk /dev/sda][br]]
- [li [pre ~$ sudo mkfs.ext4 /dev/sda1][br]]
- [li mkfs.vfat, mkisofs, ...]
- ]
-]
-
-[slide [h1 \...]]
-
-[slide [h2 Zusammenfassung]
- [ul
- [li Um Dateien darzustellen benötigen wir ein Dateisystem]
- [li Verschiedene Dateisysteme haben verschiedene Eigenschaften]
- [li Datenträger werden partitioniert]
- [li Partitionen nehmen Dateisysteme auf]
- [li Wir [em mounten] Dateisysteme um auf Dateien zuzugreifen]
- ]
-]
-
-[slide [h2 Nächster Termin]
- [ul
- [li Nächster Termin: 2. Oktober]
- [li Themen: Prozessverwaltung, Netzwerke]
- ]
-]
-
-]
+++ /dev/null
-[html
-[head [title VHS Linuxkurs]]
-[body
- [footer Paul Hänsch | Linux Grundkurs | VHS Leipzig]
-
-[slide [h1 VHS Linux Grundkurs - Teil 3]]
-
-[slide [h2 Themen]
- [ul
- [li Prozessverwaltung]
- [li Prozesse und Benutzer]
- [li Netzwerke]
- ]
-]
-
-[slide [h1 Prozesse und Prozessmanagement]]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre ~$ mousepad]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre Strg + Z]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre ~$ fg]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre
- Strg + Z
- ~$ bg]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre ~$ pidof mousepad]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre ~$ mousepad &]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre ~$ pidof mousepad]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre ~$ kill ...]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre
- ~$ ps
- ~$ ps -e
- ~$ ps -eo pid,user,command]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre
- ~$ pstree
- ~$ pstree -u -p]
-]
-
-[slide [h2 Prozesse und Prozessmanagement]
- [pre ~$ htop]
-]
-
-[slide [h1 Prozesse und Benutzer]]
-
-[slide [h2 Prozesse und Benutzer]
- [ul .uncover
- [li [pre ~$ touch /home/live/datei1][br]]
- [li [pre ~$ touch /datei1][br]]
- [li "live" hat keine Schreibrechte im Stammverzeichnis]
- ]
-]
-
-[slide [h2 Prozesse und Benutzer]
- [pre ~$ ls -lh /usr/bin/sudo]
-]
-
-[slide [h2 Prozesse und Benutzer]
- [h3 Zugriffsrechte]
- [pre /usr/bin/sudo]
- [table
- [tr [th Typ] [th Eigentümer [strong (root)]] [th Gruppe [strong (root)]] [Andere]]
- [tr [td -] [td rw[strong s]] [td r-x] [td r-x]]
- ]
- [p]
- [ul .uncover
- [li sudo wird immer mit den Rechten von "root" ausgeführt]
- ]
-]
-
-[slide [h2 Prozesse und Benutzer]
- [ul
- [p [em sudo] gestattet die Ausführung eines Programms als [em root]. Je nach konfiguration fragt es dabei nach dem Benutzerpasswort, und gestattet oder verwährt bestimmte Aktionen.]
- [li [pre
- ~$ whoami
- live] [br]]
- [li [pre
- ~$ sudo whoami
- root]]
- ]
-]
-
-[slide [h2 Prozesse und Benutzer]
- [ul .uncover
- [li [pre ~$ sudo touch /home/live/datei2][br]]
- [li [pre ~$ sudo touch /datei2]]
- ]
-]
-
-[slide [h2 Prozesse und Benutzer]
- [ul .uncover
- [li [pre ~$ echo Hallo > /home/live/datei2][br]]
- [li [pre ~$ echo Hallo > /datei2]]
- ]
-]
-
-[slide [h2 Prozesse und Benutzer]
- [ul .uncover
- [li [pre ~$ sudo echo Hallo > /home/live/datei2][br]]
- [li [pre ~$ sudo echo Hallo > /datei2][br]]
- [li → ???]
- ]
-]
-
-[slide [h2 Prozesse und Benutzer]
- [table [tr
- [th] [th Programm] [th Parameter 1] [th Parameter 2] [th Umleitung] [th Ziel]
- ][tr
- [td [pre ~$]] [td [pre sudo]] [td [pre echo]] [td [pre Hallo]] [td [pre \>]] [td [pre datei2]]
- ][tr
- [td ] [td nimmt die Identität root an] [td wird von sudo als root ausgeführt] [td Geht als [em Parameter 1] an echo] [td wird von der Shell abgewickelt] [td wird von der Shell geschrieben]
- ]]
- [p]
- [ul .uncover
- [li → Die Shell läuft selbst als Benutzer]
- ]
-]
-
-[slide [h2 Zusammenfassung]
- [ul .uncover
- [h3 Prozesse]
- [li Prozesse können auf dem Terminal im Hintergrund und im Vordergrund laufen]
- [li Prozesse sind hierarchisch angeordnet]
- [li jeder Prozess ist einem Systembenutzer zugeordnet]
- [li [strong Kommandos:] jobs, fg, bg, pidof, kill, ps, pstree, htop]
- ]
-]
-
-[slide [h1 [strike Linux Grundkurs][br]
- Netzwerk Grundkurs]
-]
-
-[slide [h2 Netzwerk - Beispiel]
- [h3 Wir rufen eine Webseite auf]
- [pre
-~$ telnet vhs-leipzig.de 80
-GET / HTTP/1.1
-Host: vhs-leipzig.de
-]
-]
-
-[slide [h2 Netzwerk - Beispiel HTTP]
- [ul
- [li HTTP ist ein Netzwerkprotokoll]
- [li Wir benutzen es für eine Anwendung - zum Aufrufen von Webseiten]
- [li HTTP ist ein Applikationsprotokoll]
- ]
-]
-
-[slide [h2 Netzwerk - Routing]
- [h3 Was ist vhs-leipzig.de?]
- [pre ~$ nslookup vhs-leipzig.de]
-]
-
-[slide [h2 Netzwerk - Routing]
- [ul
- [li Jeder [em Internethost] hat eine IP-Adresse]
- [li IP ist das Internetprotokoll]
- [li Das Internet ist eine Verbindung [em zwischen] Netzwerken - Inter Net]
- [li IP ermöglicht Routing zwischen Netzwerken und Routenfindung im Internet]
- ]
-]
-
-[slide [h2 Netzwerk - Routing]
- [h3 Unser Rechner hat auch eine IP-Adresse]
- [pre ~$ ip address]
-]
-
-[slide [h2 Netzwerk - Routing]
- [h3 Unser Rechner wird über ein [em Gateway] ins Internet geroutet]
- [pre ~$ ip route list]
-]
-
-[slide [h2 Netzwerk - Routing]
- [ul
- [li Ein Gateway bzw. Router vermittelt zwischen IP-Netzen]
- [li Unser Rechner benutzt das Gateway um andere Netze im Internet zu erreichen]
- ]
-]
-
-[slide [h2 Netzwerk - Link]
- [h3 Im lokalen Netz gibt es auch Link-Addressen]
- [pre ~$ arp -n]
-]
-
-[slide [h2 Netzwerk - Link]
- [ul
- [li Link-Adressen werden auch Hardware- oder MAC-Adressen genannt]
- [li Link-Adressen werden [strong nicht] zwischen Netzwerken geroutet - dazu dienen nur IP-Adressen]
- [li Über Link-Adressen können nur Rechner im selben Netzwerk erreicht werden]
- [li Link-Adressen sind idR. in der Netzwerkhardware fest eingestellt]
- [li Ein Netzwerk sind Rechner, die über Kabel und [em Switches] verbunden sind]
- ]
-]
-
-[slide [h2 Netzwerk - Transport]
- [ul
- [h3 Eine Sache fehlt noch:]
- [li Das [em Transport]-Protokoll]
- [li [pre ~$ telnet vhs-leipzig.de [strong 80]]]
- ]
-]
-
-[slide [h2 Netzwerk - Transport]
- [ul .uncover
- [li HTTP ist ein Applikationsprotokoll auf Port 80]
- [li ... auf Port 80 von TCP, dem Transmission Control Protocol]
- [li TCP ist ein Transportprotokoll]
- [li TCP-"Adressen" werden Ports genannt, und erlauben es an einem einzelnen Internethost mehrere [em Dienste] bzw. Applikationen zu unterscheiden]
- ]
-]
-
-[slide [h2 Netzwerk - Transport]
- [ul
- [li IP bricht Netzwerkdaten in Pakete auf]
- [li TCP ermöglicht es Paketverluste zu erkennen und eine Neuübertragung durchzuführen]
- [li TCP ordnet vertauschte Pakete in der richtigen Reihenfolge an]
- [li TCP ermöglicht damit [em Verbindungen] und [em Streams]]
- ]
-]
-
-[slide [h2 Netzwerk - Transport]
- [ul
- [li Ein anderes Transportprotokoll ist UDP]
- [li UDP ist Sinnvoll für Übertragungen in einzelnen Paketen]
- [li Ein Applikationsprotokoll auf UDP ist z.B. Namensauflösung (DNS, Port 53)]
- [li [pre ~$ nslookup vhs-leipzig.de]]
- ]
-]
-
-[slide [h2 Netzwerk - IP-Konfiguration]
- [ul .uncover
- [li [em Link-Adressen sind idR. in der Netzwerkhardware fest eingestellt]]
- [li Eine IP-Adresse ist abhängig von dem Netz, in dem sich ein Rechner befindet]
- [li ebenso die Adresse des Gateways]
- [li und ggf. der [em Nameserver]]
- [li und ggf. Gateways zu anderen lokalen Netzen]
- [li usw...]
- ]
-]
-
-[slide [h2 Netzwerk - IP-Konfiguration]
- [ul .uncover
- [li zur automatischen IP-Konfiguration dient das Protokoll DHCP]
- [li sobald ein Link besteht kann ein Rechner eine IP-Konfiguration via DHCP erfragen]
- [li ein DHCP-Server sendet als Antwort die IP-Konfiguration]
- [li Unter GNU/Linux gibt es versciedene Hilfsmittel zur IP-Konfiguration]
- [li Der Dienst [em NetworkManager] enthält diverse Automatismen]
- [li Beispiel für manuellen DHCP-Request: [pre ~$ sudo dhclient -v eth0]]
- ]
-]
-
-[slide [h2 Netzwerk - Problembehebung]
- [ul .uncover
- [h3 Ein Netzwerkdienst (eine Webseite) kann nicht erreicht werden]
- [li geht mein Link?]
- [li geht das Gateway?]
- [li geht die Namensauflösung?]
- [li geht der Internethost?]
- [li geht der Dienst?]
- ]
-]
-
-[slide [h2 Netzwerk - Problembehebung]
- [ul
- [h3 Programme zur Diagnose]
- [li [pre ~$ ip address]]
- [li [pre ~$ ip route list]]
- [li [pre ~$ nslookup] oder [pre ~$ dig]]
- [li Gateway pingen, Nameserver pingen, bekannte IP-Adresse pingen
- [pre ~$ ping]]
- [li [pre ~$ nmap]]
- ]
-]
-
-[slide [h1 SSH - Die Secure Shell]]
-
-[slide [h2 SSH]
- [pre ~$ ssh live@hostname]
- ("hostname" ist die IP-Adresse an der Tafel)
-]
-
-[slide [h2 SSH]
- [pre ~$ tmux a]
-]
-
-[slide [h2 SSH]
- [pre ~$ ssh -X live@hostname]
- [pre ~$ mousepad]
-]
-
-[slide [h2 SSH - Dateiübertragung]
- [ul .uncover
- [li [pre ~$ ssh live@hostname ls]]
- [li [pre ~$ ssh live@hostname cat datei1]]
- [li [pre ~$ ssh live@hostname cat datei1 > datei1]]
- ]
-]
-
-[slide [h2 SSH - Dateiübertragung]
- [pre scp live@hostname:datei1 ./]
-]
-
-[slide [h2 SSH - Dateiübertragung]
- [p Dateimanager → sftp://live@hostname]
-]
-
-[slide [h2 SSH - Dateiübertragung]
- [pre
- ~$ mkdir mount
- ~$ sshfs live@hostname: mount
- ~$ ls mount]
-]
-
-[slide [h1 Rdesktop]]
-
-[slide [h2 Rdesktop]
- [pre ~$ rdesktop hostname]
-]
-
-[slide [h2 Rdesktop]
- [ul .uncover
- [li RDesktop ist ein [em Client] für das Remote Desktop Protocol (RDP)]
- [li Das gibt es auch unter Windows]
- [li RDesktop erlaubt auch den Login auf Windows-Terminal Servern]
- [li Der RDP-Client unter Windows kann auch für den Login auf Linux-Servern genutzt werden]
- ]
-]
-
-[slide [h1 \...]
- Webserver..., Netcat..., tar..., inetd...
-]
-
-[slide [h2 Nächster Termin]
- [ul
- [li Mittwoch, 9. Oktober]
- [li Softwareinstallation]
- [li Anwendungsprogramme]
- ]
-]
-
-]]
+++ /dev/null
-[html
-[head [title VHS Linuxkurs]]
-[body
- [footer Paul Hänsch | Linux Grundkurs | VHS Leipzig]
-
-[slide [h1 VHS Linux Grundkurs - Teil 4]]
-
-[slide [h2 Themen]
- [ul
- [li Softwareinstallation mit Paketsystemen]
- [li Installation des Betriebssystems]
- ]
-]
-
-[slide [h1 Softwareinstallation und Paketsysteme]]
-
-[slide [h2 Softwareinstallation]
- [p [h3 Wir benutzen ein Paketsystem]
- [img src="synaptic_1.jpg"]
- ]
-]
-
-[slide [h2 Was ist ein Paketsystem?]
- [ul .uncover
- Die Vier Freiheiten:
- [li [b Verwenden:] das Programm für jeglichen Zweck ausführen]
- [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen]
- [li [b Verbreiten:] das Programm weitergeben]
- [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben]
- ]
-]
-
-[slide [h2 Was ist ein Paketsystem?]
- [ul
- Die Vier Freiheiten:
- [li [b Verwenden:] das Programm für jeglichen Zweck ausführen]
- [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen [ul
- [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]]
- ]]
- [li [b Verbreiten:] das Programm weitergeben]
- [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben [ul
- [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]]
- ]]
- ]
-]
-
-[slide [h2 Was ist ein Paketsystem?]
- [ul .uncover
- [li Ein Softwareauthor schreibt [em Quellcode]]
- [li Programm muss für ein Rechnersystem [em kompiliert/gebaut] werden]
- [li Dies ist nicht Aufgabe des Authors (denn große Vielfalt von Plattformen, Hardware, etc.)]
- [li Eine System-[em Distribution] ist eine Sammlung von Software[em paketen]]
- [li Maintainer [em paketieren] Programme für eine Distribution]
- ]
-]
-
-[slide [h2 Was ist ein Paketsystem?]
- [ul .uncover
- [li Distributionen stellen Softwarearchive bereit → [em Paketquellen] [ul
- [li z.B. online zum Download]
- [li z.B. als CD-Rom]
- ]]
- [li Verschiedene Distributionen benutzen verschiedene Arten Pakete zu bauen → [em Paketsysteme] [ul
- [li z.B. nur Archiv entpacken]
- [li z.B. Quellcode automatisch bauen]
- [li z.B. Dateisystemimage mounten]
- ]]
- [li Oft sind Pakete kryptographisch signiert]
- ]
-]
-
-[slide [h2 Was ist ein Paketsystem?]
- [ul
- [li [strong Oft sind Pakete kryptographisch signiert]]
- [li Einer der wichtigsten Sicherheitsaspekte von Linux-Systemen]
- ]
-]
-
-[slide [h1 Doch nochmal zur Kryptographie]]
-
-[slide [h2 Was ist verschlüsselung?]
- [p [h3 Der Klassiker: Symmetrische Verschlüsselung:]
- [a href="https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem"
- [img src="1200px-Orange_blue_symmetric_cryptography_de.svg.png" width="50%"]
- [br] https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem]
- ]
-]
-
-[slide [h2 Symmetrische Verschlüsselung]
- [ul
- [h3 Verschlüsseln:]
- [li [pre ~$ echo "Geh Heim Dienst!" >datei]]
- [li [pre ~$ gpg -c datei]]
- [h3 Zum entschlüsseln:]
- [li [pre ~$ gpg -d date.gpg]]
- [p (Achtung: gpg merkt sich Passworte für kurze Zeit)]
- ]
-]
-
-[slide [h1 Symmetrische Verschlüsselung -> Asymmetrische Verschlüsselung]]
-
-[slide [h2 Asymmetrische Verschlüsselung]
- [p style="text-align: center;"
- [a href="https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem"
- [img src="Orange_blue_public_private_keygeneration_de.svg.png" width="25%" ]
- [img src="1200px-Orange_blue_public_key_cryptography_de.svg.png" width="60%" ]
- [br] https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem
- ]
- ]
-]
-
-[slide [h1 Asymmetrische Verschlüsselung -> Signierung]
- Wenn jeder eine Nachricht an mich verschlüsseln kann, wie kann ich dann die Identität des Absenders verifizieren?
-]
-
-[slide [h2 Signierung]
- [p style="text-align: center;"
- [a href="https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem"
- [img src="1200px-Orange_blue_digital_signature_de.svg.png" width="50%"]
- [br] https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem
- ]
- ]
-]
-
-[slide [h2 Signierung]
- [h3 Übung aus dem letzten Kurstag]
- [pre
- ~$ ssh beamer
- The authenticity of host 'beamer (192.168.101.20)' can't be established.
- ECDSA key fingerprint is SHA256:....
- Are you sure you want to continue connecting (yes/no)? _
- ]
- [ul
- [li -> der öffentliche Schlüssel identifiziert einen Host (Fingerprinting)]
- ]
-]
-
-[slide [h2 Was ist ein Paketsystem?]
- [ul .uncover
- [li [strong Oft sind Pakete kryptographisch signiert]]
- [li Einer der wichtigsten Sicherheitsaspekte von Linux-Systemen]
- [li -> Pakete sind vom Maintainer signiert]
- ]
-]
-
-[slide [h1 Apt und dpkg]]
-
-[slide [h2 Apt und dpkg]
- [ul .uncover
- [li Paketinformationen neu laden]
- [li Paketquellen bearbeiten]
- [li zum Installieren vormerken]
- ]
-]
-
-[slide [h2 Apt und dpkg]
- [ul .uncover
- [li [pre ~$ sudo apt-get update]]
- [li [pre ~$ apt-cache search ...]]
- [li [pre ~$ apt-cache show ...]]
- [li [pre ~$ sudo apt-get install ...]]
- [li [pre ~$ sudo apt-get remove ...]]
- ]
-]
-
-[slide [h2 Apt und dpkg]
- [ul .uncover
- [li Pakete haben Abhängigkeiten]
- [li Abhängigkeiten können Paketinstallationen blockieren]
- [li Distributionen paketieren deshalb häufig nicht die neusten Programmversionen]
- ]
-]
-
-[slide [h2 Apt und dpkg]
- [ul .uncover
- [li [pre ~$ less /etc/apt/sources.list]]
- [li [pre ~$ sudo apt-get upgrade]]
- [li [pre ~$ sudo apt-get dist-upgrade]]
- [li [pre ~$ sudo apt-get autoremove]]
- ]
-]
-
-[slide [h1 Andere Paketsysteme]]
-
-[slide [h2 Andere Paketsysteme]
- [ul .uncover
- [li Arch GNU Linux [ul
- [li [pre pacman -Ss ...; pacman -S ...; pacman -R ...]]
- ]]
- [li Gentoo [ul
- [li [pre emerge --sync; emerge --search ...; emerge ... ]]
- ]]
- [li Fedora/RedHat [ul
- [li [pre yum search ...; yum install ...; yum remove ... ]]
- ]]
- [li Andere [ul
- [li ipkg/opkg, msi, ...]
- ]]
- ]
-]
-
-[slide [h1 Software selbst übersetzen]
- Selbst "Maintainer" sein ...
-]
-
-[slide [h2 Software selbst übersetzen]
- [ul .uncover
- [li Authoren stellen Quellcode häufig über [em Versionsverwaltung] bereit [ul
- [li Wir müssen den Quellcode [em auschecken / clonen]]
- ]]
- [li Software muss in Maschinencode übersetzt werden [ul
- [li Wir brauchen einen [em Compiler] für die entsprechende Programmiersprache]
- [li Wir müssen selbst [em Abhängigkeiten] beachten (→ Dependency Hell)]
- ]]
- [li IdR. wird der Prozess vereinfacht durch Buildautomatisierung]
- ]
-]
-
-[slide [h2 Software selbst übersetzen]
- [ul .uncover
- [h3 Ein einfaches Beispiel]
- [li [pre ~$ git clone https://git.plutz.net/git/vhs_kurs]]
- [li [pre ~$ cd vhs_kurs]]
- [li [pre ~$ make]]
- ]
-]
-
-<!--
-[Xslide [h1 Anwendungsprogramme]]
-
-[Xslide [h2 Anwendungsprogramme]
- Sprachpakete
- LibreOffice, Inkscape, Marble, Cups, Webserver
-]
--->
-
-[slide [h1 Systeminstallation]]
-
-[slide [h2 Systeminstallation]
- [ul .uncover
- [li Beginnt mit einer leeren Partition]
- [li System muss gerade soweit bestehen, dass Software installiert werden kann]
- [li Systemkernel muss installiert sein]
- [li Bootloader muss installiert sein (Plattformspezifisch)]
- [li ggf. Benutzer anlegen]
- [li ggf. /etc/fstab anpassen]
- ]
-]
-
-[slide [h2 Systeminstallation]
- [ul .uncover
- [h3 Installation des Basissystems]
- [li Abhängig von Distribution]
- [li debootstrap, pacstrap]
- [li Archiv entpacken]
- ]
-]
-
-[slide [h2 Systeminstallation]
- [ul .uncover
- [li [pre ~$ mkdir sys]]
- [li [strike mount /dev/sdx1 sys/]]
- [li [pre ~$ mkdir sys/bin]]
- [li [pre ~$ cp /bin/busybox sys/bin]]
- [li [pre ~$ sys/bin/busybox --install sys/bin]]
- ]
-]
-[slide [h2 Systeminstallation]
- [ul .uncover
- [li [pre ~$ sudo chroot sys /bin/sh]]
- ]
-]
-
-[slide [h2 Zusammenfassung]
- [ul
- [li Paketsysteme vereinfachen die Softwareinstallation]
- [li Paketsysteme erhöhen die Sicherheit]
- [li Paketsysteme und verfügbare Pakete sind der Hauptunterschied zwischen Distributionen]
- [li Zur Systeminstallation wird im wesentlichen das Paketsystem ausgerollt]
- ]
-]
-
-[slide [h1 Anwendersoftware]]
-[slide [h1 \...]]
-
-[slide [h2 Nächster Termin]
- [ul
- [li Mittwoch, 16.10.]
- ]
-]
-
-]]
-
+++ /dev/null
-[html
-[head [title VHS Linuxkurs]]
-[body
- [footer Paul Hänsch | Linux Grundkurs | VHS Leipzig]
-
-[slide [h1 VHS Linux Grundkurs - Teil 5]]
-
-[slide [h2 Themen]
- [ul
- [li Ein Beispiel in Wine]
- [li Symlinks, Hardlinks und Konzepte für das Backup]
- [li Owncloud/Nextcloud - Beispiel für einen Webservice]
- ]
-]
-
-[slide [h1 Ein Beispiel in WinE] [strong W]ine [strong i]s [strong n]ot an [strong E]mulator]
-
-[slide [h2 Installation von Wine]
- [ul .uncover
- [li [pre ~$ sudo apt-get install wine]]
- [li -> 32 bit vs. 64 bit]
- [li [pre ~$ sudo dpkg --add-architecture i386] Notiz am Rande: Lange Option mit --]
- [li [pre ~$ sudo apt-get update]]
- [li [pre ~$ sudo apt-get install wine32]]
- ]
-]
-
-[slide [h2 Benutzen von Wine]
- [ul
- [li [pre ~$ winecfg]]
- [li [pre ~$ WINEPREFIX=~/.wine/irgendwas winecfg]]
- [h3 Beispiel Media Monkey:]
- [li [pre ~$ WINEPREFIX=~/.wine/mediamonkey wine MediaMonkey.exe]]
- ]
-]
-
-[slide [h2 Installation von Software]
- [ul
- [li Lizenzvertrag durchlesen [ul
- [li Verwenden, Verstehen, Verbreiten, Verbessern?]
- [li GNU Software in Windows-Programmen?]
- ]]
- ]
-]
-
-[slide [h2 Alternativen finden]
- [ul
- [li Clementine [ul
- [li Remote Control]
- [li Automatisches Tagging]
- [li Formate konvertieren]
- ]]
- [li K3B [ul
- [li CDs Erstellen / Kopieren]
- [li auch Lautstärke normalisieren, etc...]
- ]]
- [li Programme können kombiniert werden]
- ]
-]
-
-[slide [h1 Symlinks, Hardlinks, Backup]]
-
-[slide [h2 Symlinks]
- [ul .uncover
- [li Symlinks sind Verweise auf einen anderen Pfad, wirken wie Dateien]
- [li Andere Bzeichungen: symbolische Links, semantische Links]
- [li [pre ~$ ln -s /usr/share/icons/Adwaita/scalable/ icons]]
- [li Im Dateimanager: Ordner ziehen, Strg + Shift]
- [li Symlinks können ungültig sein]
- ]
-]
-
-[slide [h2 Hardlinks]
- [ul .uncover
- [li Eine Datei wird über einen Pfad identifiziert]
- [li Ein Pfad ist ein Verzeichniseintrag]
- [li Verschiedene Verzeichiseinträge dürfen auf die selbe Datei verweisen]
- [li Die Datei ist an mehreren Orten gleichzeitig (!)]
- [li Funktioniert natürlich nur innerhalb des selben Dateisystems]
- [li Wird ein Eintrag gelöscht, bleiben die anderen gültig]
- ]
-]
-
-[slide [h2 Backups]
- [ul
- [li Zum Backup gehört auch Restore ;-)]
- [li Klassisches Backup: voll, differentiell, inkrementell]
- [li Probleme: [ul
- [li Backups müssen in mehreren Schritten zurück gespielt werden]
- [li Verlust eines Backups macht nachfolgende Inkremente unbrauchbar]
- ]]
- [li Das geht besser - mit Hardlinks]
- ]
-]
-
-[slide [h2 Backups mit rsync]
- [ul
- [li [pre ~$ rsync -a Daten/ Backup_2019-10-16/]]
- [li [pre ~$ rsync -a Daten/ Backup_2019-10-17/ --link-dest=Backup_2019-10-16/ ]]
- [li Jedes Backup wirkt wie ein Vollbackup [ul
- [li Kann als ganzes zurückgespielt werden]
- [li Kann gelöscht werden - andere Backups bleiben nutzbar]
- ]]
- [li Zeit- und Speicherplatzaufwand wirken wie bei inkrementellen Backups]
- ]
-]
-
-[slide [h1 Nextcloud]]
-
-[slide [h2 Installation]
- [p [h3 1. Der Webserver]
- [pre ~$ sudo apt-get install apache2 php]
- ]
-]
-
-[slide [h2 Installation]
- [h3 2. Die Applikation]
- [ul
- [li [pre ~$ wget https://download.nextcloud.com/server/releases/nextcloud-17.0.0.zip]]
- [li [pre ~$ unzip nextcloud-17.0.0.zip]]
- [li [pre ~$ mv nextcloud /srv/]]
- ]
-]
-
-[slide [h2 Nextcloud Konfiguration]
- [pre ~$ sudo nano /etc/apache2/sites-available/nextcloud.conf]
- [pre
-Alias / "/srv/nextcloud/"
-
-<Directory /srv/nextcloud/>
- Require all granted
- Options FollowSymlinks MultiViews
- AllowOverride All
-
- SetEnv HOME /srv/nextcloud
- SetEnv HTTP_HOME /srv/nextcloud
-</Directory>]
-]
-
-[slide [h2 Nextcloud Abhängigkeiten]
- [ul
- [li [pre ~$ sudo a2ensite nextcloud]]
- [li [pre ~$ sudo systemctl reload apache2]]
- [li Webbroser http://localhost]
- [li Log-Files?]
- [li [pre ~$ sudo chown www-data:www-data -R /srv/nextcloud]]
- [li [pre ~$ sudo apt-get install php-curl php-fdomdocument \\
- php-{gd,mbstring,sqlite3,xml,zip}]]
- ]
-]
-
-[slide [h1 \...] cups, cron, adduser, snapshots?]
-
-[slide [h2 Nächster Termin]
- [ul
- [h3 Installparty!]
- [li nächster Mittwoch, 23. Oktober]
- [li Bringt eure Laptops mit!]
- [li Sichert vorher eure Daten!]
- ]
-]
-
-]]