]> git.plutz.net Git - vhs_kurs/commitdiff
Merge commit '2c91cc63d0e28a4f202ee2db9a8d769e63d54f7f'
authorPaul Hänsch <paul@plutz.net>
Wed, 18 Sep 2019 13:41:39 +0000 (15:41 +0200)
committerPaul Hänsch <paul@plutz.net>
Wed, 18 Sep 2019 13:41:39 +0000 (15:41 +0200)
26 files changed:
.gitignore
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]
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]
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]

index 9b71e084c6d1b1837bbe06030a5905cab15ae805..d44bb1651027770c40f39f74365a162160df2332 100644 (file)
@@ -1,3 +1,3 @@
-.*.swo
 .*.swp
+.*.swo
 *.html
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/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..92797be
--- /dev/null
@@ -0,0 +1,339 @@
+[html
+[head [title VHS Linuxkurs]]
+[body
+  [footer Paul Hänsch | Linux Grundkurs | VHS Chemnitz]
+
+[slide
+  [h1 VHS Linux Grundkurs - Teil 2]
+]
+
+[slide [h2 Themen]
+  [ul
+    [li Wiederholung + Syntax der Kommandozeile]
+    [li Arbeit mit Dateien und Pfaden]
+    [li Einführung Prozesse, Prozessmanagement]
+  ]
+]
+
+[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/knoppix/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/knoppix/ordner2]]
+  ]
+]
+
+[slide [h2 Arbeit mit Dateien und Pfaden]
+  [pre ~$ cp datei1 "Name mit Leerzeichen"]
+]
+
+[slide [h2 Arbeit mit Dateien und Pfaden]
+  [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/knoppix/ordner2/datei3 .]
+]
+
+[slide [h2 Arbeit mit Dateien und Pfaden]
+  [pre
+  ~$ cd /home/knoppix
+  ~$ 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 [h1 Prozesse und Prozessmanagement]]
+
+[slide [h2 Prozesse und Prozessmanagement]
+  [pre ~$ xeyes]
+]
+
+[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 xeyes]
+]
+
+[slide [h2 Prozesse und Prozessmanagement]
+  [pre ~$ xeyes &]
+]
+
+[slide [h2 Prozesse und Prozessmanagement]
+  [pre ~$ pidof xeyes]
+]
+
+[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 \...]]
+
+[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 [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 [h2 Nächster Termin]
+  [ul
+    [li Nächster Termin: Mittwoch]
+    [li Thema: Datenträger und Dateisysteme]
+  ]
+]
+
+]
diff --git a/Tag_3.short b/Tag_3.short
new file mode 100644 (file)
index 0000000..fbe752a
--- /dev/null
@@ -0,0 +1,220 @@
+[html
+[head [title VHS Linuxkurs]]
+[body
+  [footer Paul Hänsch | Linux Grundkurs | VHS Chemnitz]
+
+[slide [h1 VHS Linux Grundkurs - Teil 3]]
+
+[slide [h2 Themen]
+  [ul
+    [li Prozesse und Benutzer]
+    [li Datenträger]
+    [li Dateisysteme]
+  ]
+]
+
+[slide [h2 Prozesse und Benutzer]
+  [ul .uncover
+    [li [pre ~$ touch /home/knoppix/datei1][br]]
+    [li [pre ~$ touch /datei1][br]]
+    [li "knoppix" 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
+    knoppix] [br]]
+    [li [pre
+    ~$ sudo whoami
+    root]]
+  ]
+]
+
+[slide [h2 Prozesse und Benutzer]
+  [ul .uncover
+    [li [pre ~$ sudo touch /home/knoppix/datei1][br]]
+    [li [pre ~$ sudo touch /datei1]]
+  ]
+]
+
+[slide [h2 Prozesse und Benutzer]
+  [ul .uncover
+    [li [pre ~$ echo Hallo > /home/knoppix/datei2][br]]
+    [li [pre ~$ echo Hallo > /datei2]]
+  ]
+]
+
+[slide [h2 Prozesse und Benutzer]
+  [ul .uncover
+    [li [pre ~$ sudo echo Hallo > /home/knoppix/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 [h1 Datenträger]]
+
+[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 knoppix.iso]]
+  ]
+]
+
+[slide [h1 Dateisysteme]]
+
+[slide [h2 Dateisysteme]
+  [ul .uncover
+    [li [pre ~$ mkdir cdrom][br]]
+    [li [pre ~$ sudo mount knoppix.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 Datenträger ;-)]
+    [pre ~$ dd bs=1M count=0 seek=2048 of=sparse.img]
+  ]
+]
+
+[slide [h2 Dateisysteme und Datenträger]
+  [p [h3 Wir brauchen einen Computer ;-)]
+    [pre ~$ sudo qemu-system-x86_64 -machine accel=kvm -m 1024 \\
+      -boot d -cdrom /dev/cdrom sparse.img]
+  ]
+]
+
+[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 Mittwoch, 24. April]
+    [li Softwareinstallation]
+    [li Anwendungsprogramme]
+  ]
+]
+
+[slide [h1 Frohe Ostern]
+  Filmempfehlung: Das Leben des Brian
+]
+
+]]
diff --git a/Tag_4.short b/Tag_4.short
new file mode 100644 (file)
index 0000000..5618c88
--- /dev/null
@@ -0,0 +1,217 @@
+[html
+[head [title VHS Linuxkurs]]
+[body
+  [footer Paul Hänsch | Linux Grundkurs | VHS Chemnitz]
+
+[slide [h1 VHS Linux Grundkurs - Teil 4]]
+
+[slide [h2 Themen]
+  [ul
+    [li Softwareinstallation mit Paketsystemen]
+    [li Installation des Betriebssystems]
+  ]
+]
+
+[slide [h1 Was ist ein Paketsystem?]]
+
+[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?]
+]
+
+[slide [h1 Apt und dpkg]]
+
+[slide [h2 Apt und dpkg]
+  [ul .uncover
+    [pre ~$ sudo synaptic]
+    [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 [h1 \...]]
+
+[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 [h2 Nächster Termin]
+  [ul
+    [li Freitag, 26.4.]
+    [li Netzwerk, Remotelogin, Dateiübertragung]
+  ]
+]
+
+]]
+
diff --git a/Tag_5.short b/Tag_5.short
new file mode 100644 (file)
index 0000000..7802517
--- /dev/null
@@ -0,0 +1,232 @@
+[html
+[head [title VHS Linuxkurs]]
+[body
+  [footer Paul Hänsch | Linux Grundkurs | VHS Chemnitz]
+
+[slide [h1 VHS Linux Grundkurs - Teil 5]]
+
+[slide [h2 Themen]
+  [ul
+    [li Netzwerke]
+    [li Remote logins]
+    [li Dateiübertragung]
+  ]
+]
+
+[slide [h1 [strike Linux Grundkurs][br]
+                   Netzwerk Grundkurs]
+]
+
+[slide [h2 Netzwerk - Beispiel]
+  [h3 Wir rufen eine Webseite auf]
+  [pre
+~$ telnet vhs-chemnitz.de 80
+GET / HTTP/1.1
+Host: vhs-chemnitz.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-chemnitz.de?]
+  [pre ~$ dig vhs-chemnitz.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-chemnitz.de [strong 80]]]
+  ]
+]
+
+[slide [h2 Netzwerk - Transport]
+  [ul
+    [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 ~$ dig vhs-chemnitz.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 ~$ 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 knoppix@hostname]
+  ("hostname" ist die IP-Adresse an der Tafel)
+]
+
+[slide [h2 SSH]
+  [pre ~$ screen -rx]
+]
+
+[slide [h2 SSH]
+  [pre ~$ ssh -X knoppix@hostname]
+  [pre ~$ xeyes]
+]
+
+[slide [h2 SSH - Dateiübertragung]
+  [ul .uncover
+    [li [pre ~$ ssh knoppix@hostname ls]]
+    [li [pre ~$ ssh knoppix@hostname cat datei1]]
+    [li [pre ~$ ssh knoppix@hostname cat datei1 > datei1]]
+  ]
+]
+
+[slide [h2 SSH - Dateiübertragung]
+  [pre scp knoppix@hostname:datei1 ./]
+]
+
+[slide [h2 SSH - Dateiübertragung]
+  [p Dateimanager &#x2192; sftp://knoppix@hostname]
+]
+
+[slide [h2 SSH - Dateiübertragung]
+  [pre
+    ~$ mkdir mount
+    ~$ sshfs knoppix@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
+    [h3 Installparty!]
+    [li nächster Freitag, 3. Mai]
+    [li Bringt eure Laptops mit!]
+    [li Sichert vorher eure Daten!]
+    [li Wir sind im Laptop-Raum gegenüber]
+  ]
+]
+
+]]
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