]> git.plutz.net Git - vhs_kurs/commitdiff
Merge commit '2ea6da29a8a86a1c168fc9259a6174aace90581f'
authorPaul Hänsch <paul@plutz.net>
Wed, 16 Oct 2019 13:35:18 +0000 (15:35 +0200)
committerPaul Hänsch <paul@plutz.net>
Wed, 16 Oct 2019 13:35:18 +0000 (15:35 +0200)
34 files changed:
.gitignore
1200px-Orange_blue_digital_signature_de.svg.png [new file with mode: 0644]
1200px-Orange_blue_public_key_cryptography_de.svg.png [new file with mode: 0644]
1200px-Orange_blue_symmetric_cryptography_de.svg.png [new file with mode: 0644]
Ankündigung [new file with mode: 0644]
Fragen u. Ideen [new file with mode: 0644]
Gliederung.txt [new file with mode: 0644]
Makefile [new file with mode: 0644]
Orange_blue_public_private_keygeneration_de.svg.png [new file with mode: 0644]
Tag_1.short [new file with mode: 0644]
Tag_2.short [new file with mode: 0644]
Tag_3.short [new file with mode: 0644]
Tag_4.short [new file with mode: 0644]
Tag_5.short [new file with mode: 0644]
aqemu_1.jpg [new file with mode: 0644]
aqemu_2.jpg [new file with mode: 0644]
aqemu_3.jpg [new file with mode: 0644]
clickslide/.gitignore [new file with mode: 0644]
clickslide/.gitmodules [new file with mode: 0644]
clickslide/cgilite/cgilite.sh [moved from cgilite/cgilite.sh with 100% similarity]
clickslide/cgilite/file.sh [moved from cgilite/file.sh with 100% similarity]
clickslide/cgilite/html-sh.sed [moved from cgilite/html-sh.sed with 100% similarity]
clickslide/cgilite/logging.sh [moved from cgilite/logging.sh with 100% similarity]
clickslide/cgilite/session.sh [moved from cgilite/session.sh with 100% similarity]
clickslide/cgilite/storage.sh [moved from cgilite/storage.sh with 100% similarity]
clickslide/clickslide.css [moved from clickslide.css with 100% similarity]
clickslide/clickslide.sh [moved from clickslide.sh with 100% similarity]
clickslide/demo/Makefile [moved from demo/Makefile with 100% similarity]
clickslide/demo/demo.short [moved from demo/demo.short with 100% similarity]
clickslide/demo/exb0.jpg [moved from demo/exb0.jpg with 100% similarity]
clickslide/demo/exb1.jpg [moved from demo/exb1.jpg with 100% similarity]
clickslide/demo/exb2.jpg [moved from demo/exb2.jpg with 100% similarity]
clickslide/demo/exb3.jpg [moved from demo/exb3.jpg with 100% similarity]
synaptic_1.jpg [new file with mode: 0644]

index 9b71e084c6d1b1837bbe06030a5905cab15ae805..17388bd2d2492c4ebe880b674c0e25b591d6b1d9 100644 (file)
@@ -1,3 +1,4 @@
-.*.swo
 .*.swp
+.*.swo
 *.html
+*.xwd
diff --git a/1200px-Orange_blue_digital_signature_de.svg.png b/1200px-Orange_blue_digital_signature_de.svg.png
new file mode 100644 (file)
index 0000000..cd67bf5
Binary files /dev/null and b/1200px-Orange_blue_digital_signature_de.svg.png differ
diff --git a/1200px-Orange_blue_public_key_cryptography_de.svg.png b/1200px-Orange_blue_public_key_cryptography_de.svg.png
new file mode 100644 (file)
index 0000000..110a807
Binary files /dev/null and b/1200px-Orange_blue_public_key_cryptography_de.svg.png differ
diff --git a/1200px-Orange_blue_symmetric_cryptography_de.svg.png b/1200px-Orange_blue_symmetric_cryptography_de.svg.png
new file mode 100644 (file)
index 0000000..b3dfead
Binary files /dev/null and b/1200px-Orange_blue_symmetric_cryptography_de.svg.png differ
diff --git a/Ankündigung b/Ankündigung
new file mode 100644 (file)
index 0000000..89dabb3
--- /dev/null
@@ -0,0 +1,3 @@
+Linux auf dem PC benutzen
+
+Flexibilität und Anpassbarkeit haben Linux einen festen Platz im akademischen und industriellen Bereich gesichert. Das freie Betriebssystem ermöglicht nicht nur einen Einblick in seine Funktionsweise, sondern erlaubt auch Seiten des Computers zu sehen, die woanders versteckt werden. In diesem Kurs werden wir mit Linux unseren Computer neu entdecken. Wir beginnen mit den Grundlagen des Betriebssystems, wie Bedienung, Softwareinstallation und Benutzerverwaltung. Nach und nach lernen wir Konzepte kennen, die sich vom Tablet bis zum Internetserver auf jedem Computer wiederfinden lassen.
diff --git a/Fragen u. Ideen b/Fragen u. Ideen
new file mode 100644 (file)
index 0000000..df891d3
--- /dev/null
@@ -0,0 +1,69 @@
+
+Kryptografische Signierung
+  -> Grundlagen erklären?
+  -> kommt vor bei Paketsystemen, SSH
+  -> Netzwerkteil vorziehen?
+
+Häufiger Zusammenfassungen von Themenabschnitten zeigen?
+Häufiger Befehlsübersichten zeigen, Übersichten im Voraus zeigen?
+
+Proleme mit Knoppix
+  -> KVM nur als root
+  -> Berechtigungen für `screen` anpassen
+  -> Dependency-Hell bei meisten Software-Installationen
+  -> Qemu stürzt ab
+  -> aqemu nicht installiert
+  -> aqemu ist unbenutzbar (keine Auswahl für x86er-Emulation)
+  -> Lokalisierungen unvollständig
+  -> `rdesktop` stürzt ab
+  -> Compiz ist albern
+  -> Mountpunkte / Verzeichnisstruktur sind Mist
+
+OS-Image remastern, "knoppix" in Folien ersetzen
+
+Gute Sache: Referenzen auf frühere Kurstage
+
+Was für Befehle gib es, wie finde ich eine Übersicht
+  -> nicht direkt sinnvoll, erklären
+  -> Programmsyntax früher erwähnen
+  -> man-Pages
+
+Mehr grafische Programme
+  -> als frühes CLI-Beispiel: lowriter --convert-to pdf 
+  -> grafischen Texteditor mehr nutzen
+  -> Unix-Rechte im grafischen Dateimanager? Welcher stellt das gut dar?
+     -> Berechtigungen in Matrix-Darstellung auf Folie?
+
+Navigation im Dateibaum
+  -> Dateibaum anzeichnen
+  -> mit Magneten / Klebezetteln mitspringen
+
+Pitfall:
+  ~$ cd ordner1
+  Richtig: ~$ mv ordner2/datei1 ./
+  Falsch:  ~$ mv ordner2/datei1 ordner1
+  -> Funktioniert, aber nicht wie erwartet
+  -> Umbenennung mit mv zuerst zeigen
+
+Gute Sache: datei " " (Leerzeichen) anlegen, demonstrieren
+
+Grafischer Prozessmanager (grafisches "htop") -> welcher? lxtask?
+
+Evtl. behandeln:
+  Benutzer anlegen
+  Passwort ändern
+
+Gute Sache: mit less/grep Dateien auf dem Blockdevice suchen
+
+Qemu bevorzugt via aqemu
+
+IP-Konfiguration: Network-Manager durchklicken
+
+Gute Sache: mtr/traceroute erklären, schöner "show-hack"
+
+Schwierigkeiten mit SSH
+  -> Auf welchem Host bin ich? Versehentlich SSH aus SSH-Session
+    -> Idee: Hostname beim Dozentenrechner ändern
+  -> weglassen `ssh -X`?
+  -> zuerst Netcat/Telnet
+  -> sshfs auf localhost führt zu Absturz des Filemanagers
diff --git a/Gliederung.txt b/Gliederung.txt
new file mode 100644 (file)
index 0000000..dfcadc0
--- /dev/null
@@ -0,0 +1,95 @@
+Arbeit mit Dateien, Zugriffsberechtigungen
+  touch, ls, cat, echo, chmod, groups, chgrp >...
+
+Tabcompletion, History
+
+Der Dateibaum
+  cd, mkdir, pwd, Dateipfade
+
+  rm rmdir cp mv
+
+
+
+--------------
+
+Shellumleitungen
+  > >> |
+  tr, wc
+
+Wildcards
+  * [xy] ?
+
+Programmstrukturen auf der Shell
+  Shell loops
+  for - in
+  while
+
+  Konditionen
+  && ||
+  if, case
+
+  Wildcards
+
+------------
+
+Datenträger
+  gparted
+  partitionen
+
+  /dev/sd*
+  mount
+  fdisk
+
+  df, du
+
+  Dateisysteme
+  mkfs
+  dd
+
+  hardlinks, symlinks
+
+Installation
+
+-------------- 
+
+Paketsysteme
+  synaptic
+  apt-get, apt-cache, apt-mark, dpkg
+  /etc/apt/
+  dependencies, recommends, suggestions
+
+  pacman
+  portage / emerge
+  yum
+
+---------------------
+
+
+Benutzer, Gruppen und Prozesse
+  adduser, passwd
+  /etc/passwd, /etc/group, /etc/shadow
+  sudo, su
+
+  top, htop, ps, kill, killall
+
+Netzwerk
+  ssh, scp, sftp, sshfs
+  ssh-keys
+  netcat
+  inetd
+
+  ip addr / ifconfig
+  ip route
+
+
+----------------------------
+
+Weitere Themen
+  Boot, Bios, EFI
+  Grub, Syslinux
+  SystemV, SystemD
+  Cron, Cups
+  vi / vim
+  X11, Verschlüsselung
+
+  Installparty
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..44f5fbf
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,6 @@
+CLICKSLIDE = clickslide/clickslide.sh
+
+default: $(addsuffix .html, $(basename $(wildcard *.short)))
+
+%.html: %.short
+       ${CLICKSLIDE} < $< > $@
diff --git a/Orange_blue_public_private_keygeneration_de.svg.png b/Orange_blue_public_private_keygeneration_de.svg.png
new file mode 100644 (file)
index 0000000..7c99a0a
Binary files /dev/null and b/Orange_blue_public_private_keygeneration_de.svg.png differ
diff --git a/Tag_1.short b/Tag_1.short
new file mode 100644 (file)
index 0000000..92a55ff
--- /dev/null
@@ -0,0 +1,433 @@
+[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.]
+  ]
+]
+
+]]
diff --git a/Tag_2.short b/Tag_2.short
new file mode 100644 (file)
index 0000000..346b5dc
--- /dev/null
@@ -0,0 +1,413 @@
+[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 &nbsp;]] [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]
+  ]
+]
+
+]
diff --git a/Tag_3.short b/Tag_3.short
new file mode 100644 (file)
index 0000000..25f9987
--- /dev/null
@@ -0,0 +1,367 @@
+[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 &#x2192; ???]
+  ]
+]
+
+[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 &#x2192; 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 &#x2192; 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]
+  ]
+]
+
+]]
diff --git a/Tag_4.short b/Tag_4.short
new file mode 100644 (file)
index 0000000..f11091f
--- /dev/null
@@ -0,0 +1,293 @@
+[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 &#x2192; [em Paketquellen] [ul
+      [li z.B. online zum Download]
+      [li z.B. als CD-Rom]
+    ]]
+    [li Verschiedene Distributionen benutzen verschiedene Arten Pakete zu bauen &#x2192; [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 (&#x2192; 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.]
+  ]
+]
+
+]]
+
diff --git a/Tag_5.short b/Tag_5.short
new file mode 100644 (file)
index 0000000..d2b22f0
--- /dev/null
@@ -0,0 +1,118 @@
+[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 dpgk --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 durch lesen [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 [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 \\
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; php-{gd,mbstring,sqlite3,xml,zip}]]
+  ]
+]
+
+[slide [h1 \...] cups, cron, adduser?]
+
+[slide [h2 Nächster Termin]
+  [ul
+    [h3 Installparty!]
+    [li nächster Mittwoch, 23. Oktober]
+    [li Bringt eure Laptops mit!]
+    [li Sichert vorher eure Daten!]
+  ]
+]
+
+]]
diff --git a/aqemu_1.jpg b/aqemu_1.jpg
new file mode 100644 (file)
index 0000000..ff5a3f3
Binary files /dev/null and b/aqemu_1.jpg differ
diff --git a/aqemu_2.jpg b/aqemu_2.jpg
new file mode 100644 (file)
index 0000000..bf32198
Binary files /dev/null and b/aqemu_2.jpg differ
diff --git a/aqemu_3.jpg b/aqemu_3.jpg
new file mode 100644 (file)
index 0000000..46c1d70
Binary files /dev/null and b/aqemu_3.jpg differ
diff --git a/clickslide/.gitignore b/clickslide/.gitignore
new file mode 100644 (file)
index 0000000..9b71e08
--- /dev/null
@@ -0,0 +1,3 @@
+.*.swo
+.*.swp
+*.html
diff --git a/clickslide/.gitmodules b/clickslide/.gitmodules
new file mode 100644 (file)
index 0000000..e69de29
similarity index 100%
rename from cgilite/file.sh
rename to clickslide/cgilite/file.sh
similarity index 100%
rename from clickslide.css
rename to clickslide/clickslide.css
similarity index 100%
rename from clickslide.sh
rename to clickslide/clickslide.sh
similarity index 100%
rename from demo/Makefile
rename to clickslide/demo/Makefile
similarity index 100%
rename from demo/demo.short
rename to clickslide/demo/demo.short
similarity index 100%
rename from demo/exb0.jpg
rename to clickslide/demo/exb0.jpg
similarity index 100%
rename from demo/exb1.jpg
rename to clickslide/demo/exb1.jpg
similarity index 100%
rename from demo/exb2.jpg
rename to clickslide/demo/exb2.jpg
similarity index 100%
rename from demo/exb3.jpg
rename to clickslide/demo/exb3.jpg
diff --git a/synaptic_1.jpg b/synaptic_1.jpg
new file mode 100644 (file)
index 0000000..cbe3f7e
Binary files /dev/null and b/synaptic_1.jpg differ