diff --git a/20241002/dbs-20241002.pdf b/20241002/dbs-20241002.pdf
index 0c3f053e5da8895e4fec9fe3bef9ce5b00ef31c2..c25274b166a51f19081d8bbee394d3c53164ad51 100644
Binary files a/20241002/dbs-20241002.pdf and b/20241002/dbs-20241002.pdf differ
diff --git a/20241002/dbs-20241002.tex b/20241002/dbs-20241002.tex
index ed335591b237aa86135e48a98b9f355a69a4cb15..a91eb0335b474c1cade47819fad1e354beacaf01 100644
--- a/20241002/dbs-20241002.tex
+++ b/20241002/dbs-20241002.tex
@@ -679,6 +679,8 @@
 
 \end{frame}
 
+\iffalse
+
 \begin{frame}
 
   \showsubsection
@@ -943,8 +945,6 @@
 
 \end{frame}
 
-\iffalse
-
 \begin{frame}[fragile]
 
   \showsubsection
diff --git a/20241009/A_Day_in_the_Life_of_a_Wartime_Housewife-_Everyday_Life_in_London,_England,_1941_D2379.jpg b/20241009/A_Day_in_the_Life_of_a_Wartime_Housewife-_Everyday_Life_in_London,_England,_1941_D2379.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..540b94e4b65755cf24f22df226f82efcfb7c9476
Binary files /dev/null and b/20241009/A_Day_in_the_Life_of_a_Wartime_Housewife-_Everyday_Life_in_London,_England,_1941_D2379.jpg differ
diff --git a/20241009/Computergebouw_van_KLM_voor_automatische_boekingsmethode_Corda_in_Amstelveen._,_Bestanddeelnr_923-3365.jpg b/20241009/Computergebouw_van_KLM_voor_automatische_boekingsmethode_Corda_in_Amstelveen._,_Bestanddeelnr_923-3365.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bf66824c62be86cd93903ac8ef7ec6dfaf4631fe
Binary files /dev/null and b/20241009/Computergebouw_van_KLM_voor_automatische_boekingsmethode_Corda_in_Amstelveen._,_Bestanddeelnr_923-3365.jpg differ
diff --git a/20241009/Ken_Thompson_(sitting)_and_Dennis_Ritchie_at_PDP-11_(2876612463).jpg b/20241009/Ken_Thompson_(sitting)_and_Dennis_Ritchie_at_PDP-11_(2876612463).jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b06b4129ed61c8308656ad7939dbb59f75b978be
Binary files /dev/null and b/20241009/Ken_Thompson_(sitting)_and_Dennis_Ritchie_at_PDP-11_(2876612463).jpg differ
diff --git a/20241009/Shopping_online_with_bank_card.jpg b/20241009/Shopping_online_with_bank_card.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b31f47b7abcfba6001cdd8e3771c8785aa9f2882
Binary files /dev/null and b/20241009/Shopping_online_with_bank_card.jpg differ
diff --git a/20241009/Zeichen_123.pdf b/20241009/Zeichen_123.pdf
new file mode 120000
index 0000000000000000000000000000000000000000..fdbc897227df059cfda790a16555e6e417682116
--- /dev/null
+++ b/20241009/Zeichen_123.pdf
@@ -0,0 +1 @@
+../common/Zeichen_123.pdf
\ No newline at end of file
diff --git a/20241009/cd-sammlung.csv b/20241009/cd-sammlung.csv
new file mode 100644
index 0000000000000000000000000000000000000000..6887463b736544942b13d56470ddca9d67e276cb
--- /dev/null
+++ b/20241009/cd-sammlung.csv
@@ -0,0 +1,6 @@
+"CD_ID";"Albumtitel";"Interpret";"Gründungsjahr";"Erscheinungsjahr";"Track";"Titel"
+4711;"Not That Kind";"Anastacia";1999;2000;1;"Not That Kind"
+4711;"Not That Kind";"Anastacia";1999;2000;2;"I'm Outta Love"
+4711;"Not That Kind";"Anastacia";1999;2000;3;"Cowboys & Kisses"
+4712;"Wish You Were Here";"Pink Floyd";1965;1975;1;"Shine On You Crazy Diamond"
+4713;"Freak of Nature";"Anastacia";1999;2001;1;"Paid my Dues"
diff --git a/20241009/cd-sammlung.txt b/20241009/cd-sammlung.txt
new file mode 100644
index 0000000000000000000000000000000000000000..64616be1c35345950c191739a3a2c1b355a83c34
--- /dev/null
+++ b/20241009/cd-sammlung.txt
@@ -0,0 +1,6 @@
+CD_ID  Albumtitel          Interpret   Gründungsjahr  Erscheinungsjahr  Track  Titel
+4711   Not That Kind       Anastacia   1999           2000              1      Not That Kind
+4711   Not That Kind       Anastacia   1999           2000              2      I'm Outta Love
+4711   Not That Kind       Anastacia   1999           2000              3      Cowboys & Kisses
+4712   Wish You Were Here  Pink Floyd  1965           1975              1      Shine On You Crazy Diamond
+4713   Freak of Nature     Anastacia   1999           2001              1      Paid my Dues 
diff --git a/20241009/computer-arbeitsplaetze-lores.jpg b/20241009/computer-arbeitsplaetze-lores.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..acc7176d9a820d639bd7eabc8c117925ae182dcb
Binary files /dev/null and b/20241009/computer-arbeitsplaetze-lores.jpg differ
diff --git a/20241009/computer-arbeitsplaetze.jpg b/20241009/computer-arbeitsplaetze.jpg
new file mode 120000
index 0000000000000000000000000000000000000000..7900ffd4dbb790e6135035d2fb1088e743ab52f6
--- /dev/null
+++ b/20241009/computer-arbeitsplaetze.jpg
@@ -0,0 +1 @@
+Computergebouw_van_KLM_voor_automatische_boekingsmethode_Corda_in_Amstelveen._,_Bestanddeelnr_923-3365.jpg
\ No newline at end of file
diff --git a/20241009/dbms-ohne-computer.jpg b/20241009/dbms-ohne-computer.jpg
new file mode 120000
index 0000000000000000000000000000000000000000..e7cc236c7e146500d960f15a709f62938e54b9b9
--- /dev/null
+++ b/20241009/dbms-ohne-computer.jpg
@@ -0,0 +1 @@
+A_Day_in_the_Life_of_a_Wartime_Housewife-_Everyday_Life_in_London,_England,_1941_D2379.jpg
\ No newline at end of file
diff --git a/20241009/dbs-20241009.pdf b/20241009/dbs-20241009.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9a353dc71784d26ffa5fde75a3ebf08d0680b06e
Binary files /dev/null and b/20241009/dbs-20241009.pdf differ
diff --git a/20241009/dbs-20241009.tex b/20241009/dbs-20241009.tex
new file mode 100644
index 0000000000000000000000000000000000000000..31b04b689bab22259f1db357307fcf7ff39bad1c
--- /dev/null
+++ b/20241009/dbs-20241009.tex
@@ -0,0 +1,1256 @@
+% dbs-20241009.pdf - Lecture Slides on Databases and Information Security
+% Copyright (C) 2023, 2024  Peter Gerwinski
+%
+% This document is free software: you can redistribute it and/or
+% modify it either under the terms of the Creative Commons
+% Attribution-ShareAlike 3.0 License, or under the terms of the
+% GNU General Public License as published by the Free Software
+% Foundation, either version 3 of the License, or (at your option)
+% any later version.
+%
+% This document is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this document.  If not, see <http://www.gnu.org/licenses/>.
+%
+% You should have received a copy of the Creative Commons
+% Attribution-ShareAlike 3.0 Unported License along with this
+% document.  If not, see <http://creativecommons.org/licenses/>.
+
+% README: Unix-Kommandozeile: Dateiverwaltung, …
+
+\documentclass[10pt,t]{beamer}
+
+\usepackage{pgslides}
+\usepackage{tikz}
+
+\newcommand{\vfilll}{\vspace{0pt plus 1filll}}
+
+\newcommand{\underconstruction}{%
+  \begin{picture}(0,0)
+    \put(11,1.2){\makebox(0,0)[b]{\includegraphics[width=1.5cm]{Zeichen_123.pdf}}}
+    \put(11,0.9){\makebox(0,0)[t]{\shortstack{Änderungen\\vorbehalten}}}
+  \end{picture}}
+
+\title{Datenbanken und Datensicherheit}
+\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski}
+\date{9.\ Oktober 2024}
+
+\begin{document}
+
+\maketitleframe
+
+\nosectionnonumber{Vorab: Online-Werkzeuge}
+
+\begin{frame}
+
+  \shownosectionnonumber
+  \begin{itemize}
+    \item
+      Diese Veranstaltung findet \textbf{in Präsenz} statt.\\
+      Wir versuchen aber, auch eine Online-Teilnahme zu ermöglichen.
+    \medskip
+    \item
+      \textbf{Mumble}: Seminarraum 2\\
+      Fragen: Mikrofon einschalten oder über den Chat\\
+      Umfragen: über den Chat -- \textbf{auch während der Präsenz-Veranstaltung}
+    \smallskip
+    \item
+      \textbf{VNC}: Kanal 6, Passwort: \lstinline[style=cmd]{testcvh}\\
+      Eigenen Bildschirm freigeben: VNC-Software oder Web-Interface \emph{yesVNC}\\
+      Eigenes Kamerabild übertragen: Web-Interface \emph{CVH-Camera}
+    \smallskip
+    \item
+      Allgemeine Informationen:
+      \url{https://www.cvh-server.de/online-werkzeuge/}
+    \smallskip
+    \item
+      Notfall-Schnellzugang: \url{https://www.cvh-server.de/virtuelle-raeume/}\\
+      Seminarraum 2, VNC-Passwort: \lstinline[style=cmd]{testcvh}
+%    \smallskip
+%    \item
+%      Bei Problemen: bitte notieren:\\
+%      Art des Problems, genaue Uhrzeit, eigener Internet-Zugang
+    \bigskip
+    \item
+      \textbf{Lehrmaterialien:} \url{https://gitlab.cvh-server.de/pgerwinski/dbs}
+  \end{itemize}
+
+\end{frame}
+
+\section{Einführung}
+\subsection{Was sind Datenbanken?}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+
+  Datenbank = Datenbestand + System, um darauf zuzugreifen
+
+  \bigskip
+
+  Anforderungen an Datenbank \href{https://de.wikipedia.org/wiki/Datenbank}{[Wikipedia]}:\\
+  \begin{minipage}[t]{0.27\textwidth}
+    \begin{itemize}
+      \item effizient
+      \item widerspruchsfrei
+      \item dauerhaft
+    \end{itemize}
+  \end{minipage}\quad
+  \begin{minipage}[t]{0.65\textwidth}
+    \begin{itemize}
+%      \pause
+      \arrowitem Sortierung, Zugriffsalgorithmen
+%      \pause
+      \arrowitem automatische Konsistenzprüfungen
+%      \pause
+      \arrowitem Backup, Ausfallsicherheit
+    \end{itemize}
+  \end{minipage}
+
+\end{frame}
+
+\subsubsection{Datenbank ohne Computer}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+
+  \strut\hfill
+  \begin{picture}(0,0)
+    \put(0,-0.5){\makebox(0,2)[tr]{\includegraphics[width=0.41\textwidth]{dbms-ohne-computer.jpg}}}
+    \put(0,-7.0){\makebox(0,0)[tr]{%
+      \begin{minipage}{\textwidth}
+        \begin{flushright}
+          \scriptsize
+          Bildquelle:
+          \href{https://commons.wikimedia.org/wiki/File:A_Day_in_the_Life_of_a_Wartime_Housewife-_Everyday_Life_in_London,_England,_1941_D2379.jpg}%
+               {\nolinkurl{https://commons.wikimedia.org/wiki/File:A_Day_in_the_Life_of_a_}\\
+                \nolinkurl{Wartime_Housewife-_Everyday_Life_in_London,_England,_1941_D2379.jpg}}
+          \par
+        \end{flushright}
+      \end{minipage}}}
+  \end{picture}\\[-2.4ex]
+
+  \showsubsubsectionnonumber
+
+  \begin{itemize}
+%    \pause
+    \item
+      menschliche Anwesenheit erforderlich
+%    \pause
+    \item
+      sorgfältig geordnet
+      für effizienten Zugriff\\
+      \textarrow\ sorgfältiger Umgang erforderlich,\\
+      \phantom{\textarrow\ }um Ordnung zu erhalten
+%    \pause
+    \item
+      Jeweils 1 Person kann\\
+      an 1 Papier arbeiten.\\
+      \textarrow\ Hardware-Unterstützung\\
+      \phantom{\textarrow\ }für Konsistenz
+%      (Unabhängiges Arbeiten an verschiedenen Dateien ist möglich; die Hardware
+%      verhindert jedoch gleichzeitigen Schreibzugriff auf dieselben Daten.)
+%    \pause
+    \item
+      Kopien sehr aufwendig\\
+      \textarrow\ sorgfältige Archivierung erforderlich
+  \end{itemize}
+
+\end{frame}
+
+\subsubsection{Zentraler Computer}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+
+  \strut\hfill
+  \begin{picture}(0,0)
+    \put(0,-0.5){\makebox(0,2)[tr]{\includegraphics[width=0.56\textwidth]{zentraler-computer-lores.jpg}}}
+    \put(0,-7.0){\makebox(0,0)[tr]{%
+      \begin{minipage}{\textwidth}
+        \begin{flushright}
+          \scriptsize
+          Bildquelle:
+          \href{https://commons.wikimedia.org/wiki/File:Ken_Thompson_(sitting)_and_Dennis_Ritchie_at_PDP-11_(2876612463).jpg}%
+               {\nolinkurl{https://commons.wikimedia.org/wiki/File:Ken_Thompson_(sitting)_}\\
+                \nolinkurl{and_Dennis_Ritchie_at_PDP-11_(2876612463).jpg}}
+          \par
+        \end{flushright}
+      \end{minipage}}}
+  \end{picture}\\[-2.4ex]
+
+  \showsubsubsectionnonumber
+
+  \begin{itemize}
+%    \pause
+    \item
+      menschliche Anwesenheit\\
+      erforderlich
+%    \pause
+    \item
+      sorgfältig geordnet für\\
+      effizienten Zugriff\\
+      \textarrow\ Computer kann helfen,\\
+      \phantom{\textarrow\ }Ordnung zu erhalten
+%    \pause
+    \item
+      Jeweils 1 Person kann\\
+      am Computer arbeiten.\\
+      \textarrow\ Hardware-Unterstützung für Konsistenz
+%    \pause
+    \item
+      Backups möglich
+  \end{itemize}
+
+\end{frame}
+
+\subsubsection{Zentraler Computer,\\Zugriff von Arbeitsplätzen aus}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+
+  \strut\hfill
+  \begin{picture}(0,0)
+    \put(0,-0.5){\makebox(0,2)[tr]{\includegraphics[width=0.56\textwidth]{computer-arbeitsplaetze-lores.jpg}}}
+    \put(0,-7.0){\makebox(0,0)[tr]{%
+      \begin{minipage}{\textwidth}
+        \begin{flushright}
+          \scriptsize
+          Bildquelle:
+          \href{https://commons.wikimedia.org/wiki/File:Computergebouw_van_KLM_voor_automatische_boekingsmethode_Corda_in_Amstelveen._,_Bestanddeelnr_923-3365.jpg}%
+               {\nolinkurl{https://commons.wikimedia.org/wiki/File:Computergebouw_van_KLM_voor_automatische_}\\
+                \nolinkurl{boekingsmethode_Corda_in_Amstelveen._,_Bestanddeelnr_923-3365.jpg}}%
+          \par
+        \end{flushright}
+      \end{minipage}}}
+  \end{picture}\\[-2.4ex]
+
+  \showsubsubsectionnonumber
+
+  \begin{itemize}
+%    \pause
+    \item
+      Arbeiten auf\\
+      Entfernung möglich
+%    \pause
+    \item
+      sorgfältig geordnet für\\
+      effizienten Zugriff\\
+      \textarrow\ Computer kann helfen,\\
+      \phantom{\textarrow\ }Ordnung zu erhalten
+%    \pause
+    \item
+     Mehrere Personen können unbemerkt\\
+     gleichzeitig an denselben Daten arbeiten.\\
+     \textarrow\ Computer muß helfen, Konsistenz zu erhalten
+%    \pause
+    \item
+      Backups möglich
+  \end{itemize}
+
+\end{frame}
+
+\subsubsection{Zentraler Computer,\\öffentlicher Zugriff}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+
+  \strut\hfill
+  \begin{picture}(0,0)
+    \put(0,-0.5){\makebox(0,2)[tr]{\includegraphics[width=0.56\textwidth]{online-shop-lores.jpg}}}
+    \put(0,-7.0){\makebox(0,0)[tr]{%
+      \begin{minipage}{\textwidth}
+        \begin{flushright}
+          \scriptsize
+          Bildquelle:
+          \url{https://commons.wikimedia.org/wiki/File:Shopping_online_with_bank_card.jpg}
+          \par
+        \end{flushright}
+      \end{minipage}}}
+  \end{picture}\\[-2.5ex]
+
+  \showsubsubsectionnonumber
+
+  \begin{itemize}
+%    \pause
+    \item
+      Selbstbedienung auf\\
+      Entfernung möglich
+%    \pause
+    \item
+      sorgfältig geordnet für\\
+      effizienten Zugriff\\
+      \textarrow\ Computer muß\\
+      \phantom{\textarrow\ }selbständig Ordnung erhalten
+%    \pause
+    \item
+     Mehrere Personen können unbemerkt\\
+     gleichzeitig an denselben Daten arbeiten.\\
+     \textarrow\ Computer muß selbständig Konsistenz erhalten
+%    \pause
+    \item
+      Backups möglich
+%    \pause
+    \medskip
+    \item
+      Bessere Zugriffsmöglichkeiten \textarrow\ Datensicherheit wird Herausforderung
+  \end{itemize}
+
+\end{frame}
+
+\subsection{Was ist Datensicherheit?}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+
+  \begin{minipage}[t]{0.24\textwidth}
+    \begin{itemize}
+      \item[] \strut
+      \item Vertraulichkeit
+      \item Integrität
+      \item Verfügbarkeit
+    \end{itemize}
+  \end{minipage}%
+%  \pause
+  \begin{minipage}[t]{0.25\textwidth}
+    \begin{itemize}
+      \item[] (CIA)
+      \item[] (confidentiality)
+      \item[] (integrity)
+      \item[] (availability)
+    \end{itemize}
+  \end{minipage}\quad
+  \begin{minipage}[t]{0.45\textwidth}
+    \begin{itemize}
+      \item[] \strut
+%      \pause
+      \arrowitem Verschlüsselung
+%      \pause
+      \arrowitem Konsistenzprüfungen
+%      \pause
+      \arrowitem Backups, Ausfallsicherheit
+    \end{itemize}
+  \end{minipage}
+
+%  \pause
+  \bigskip
+
+  \begin{itemize}
+    \item
+      Identifizierbarkeit\\
+      (Authentizität, Nichtabstreitbarkeit, Zurechenbarkeit)\\
+      \textarrow\ Passwörter, Signaturen\\[\smallskipamount]
+%      \pause
+      bzw.
+    \item
+      Anonymität\\
+      (plausible Abstreitbarkeit, Nichtzurechenbarkeit)\\
+      \textarrow\ Pseudonymisierung, Anonymisierung\\[\smallskipamount]
+  \end{itemize}
+
+\end{frame}
+
+\subsection{In dieser Lehrveranstaltung}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+
+  \begin{itemize}
+    \item
+      Kurzeinführung: Unix-Shell
+    \item
+      Kurzeinführung: TCP/IP
+    \item
+      relationale Datenbank-Management-Systeme (DBMS)
+    \item
+      SQL-Programmierung
+    \item
+      sonstige Datenbank-Management-Systeme
+    \bigskip
+    \item
+      Kurzeinführung: Kryptographie
+    \item
+      Kryptographie in der Praxis:\\
+      Passwörter, Verschlüsselung, Signaturen,\\
+      Schlüssel-Infrastrukturen
+    \item
+      Netzwerksicherheit
+    \item
+      Sicherheit von Web-Anwendungen
+    \item
+      Datenschutz
+  \end{itemize}
+
+%  \pause
+  \vfilll
+  \underconstruction
+
+\end{frame}
+
+\begin{frame}
+
+  \showsubsectionnonumber
+
+  \textbf{3 Praktikumsversuche}
+  \begin{enumerate}\addtocounter{enumi}{-1}
+    \visible<2->{\item
+      Praxiserfahrung mit Unix und TCP/IP}
+    \item
+      Selbstbau eines einfachen DBMS
+%    \item
+%      Sicherheitsprüfung ("`Hacking"') eines Online-Shops
+    \item
+      Selbstbau einer prototypischen, sicheren Datenbankanwendung
+    \item
+      E-Mail-Verschlüsselung
+%    \visible<2->{\item[\boldmath$\infty\kern-1.18em\infty\kern-1.18em\infty$.]
+%      Selbstbau einer praxistauglichen, sicheren Datenbankanwendung}
+  \end{enumerate}
+  \visible<2->{Keine festen Abgabetermine, sondern:\\
+  Angebot zum betreuten Arbeiten im DV-Pool,\\
+  Vorzeigen (Testieren) der Ergebnisse}
+
+  \bigskip
+
+  \textbf{Prüfungsleistung:} Klausur
+
+  \vfilll
+  \underconstruction
+
+\end{frame}
+
+\nosectionnonumber{\inserttitle}
+
+\begin{frame}
+
+  \shownosectionnonumber
+
+  \begin{itemize}
+    \item[\textbf{1}] \textbf{Einführung}
+      \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/dbs}}}%
+      \begin{itemize}
+        \color{medgreen}
+        \item[1.1] Was sind Datenbanken?
+        \item[1.2] Was ist Datensicherheit?
+        \item[1.3] In dieser Lehrveranstaltung
+      \end{itemize}
+    \item[\textbf{2}] \textbf{Kurzeinführung Unix}
+      \begin{itemize}
+        \item[2.1] \color{red}Grundkonzepte
+        \item[2.2] Die Kommandozeile: Grundlagen
+        \item[2.3] Dateisysteme
+        \item[2.4] Ein- und Ausgabeströme
+        \item[2.5] Pipes
+        \item[2.6] Verzweigungen und Schleifen
+%        \item[\dots]
+      \end{itemize}
+    \color{gray}
+    \item[\textbf{3}] \textbf{Kurzeinführung TCP/IP}
+    \vspace*{-\smallskipamount}
+    \item[\textbf{\dots}]
+  \end{itemize}
+
+  \vfilll
+  \underconstruction
+
+\end{frame}
+
+\section{Kurzeinführung Unix}
+
+\subsection{Grundkonzepte}
+
+\begin{frame}
+
+  \begin{minipage}[b]{6.5cm}
+    \showsection
+    \vspace{-\medskipamount}
+    \showsubsection
+  \end{minipage}
+
+  \begin{description}
+    \addtolength{\leftskip}{-1cm}
+    \item[1965]
+      Vorgänger: Multics (Multiplexed Information and Computing Service)\\
+      "`überladen"'
+    \item[1970]
+      Unix: Einfachheit als Grundkonzept
+    \item[1972]
+      Umstellung auf neu entwickelte Programmiersprache C
+    \item[1975]
+      AT\&T: Unix inkl.\ Quelltext für Universitäten
+    \item[1977]
+      Berkeley Software Distribution (BSD)
+    \item[1983]
+      GNU-Projekt
+    \item[1987]
+      Minix
+    \item[1991]
+      Linux
+    \item[1993]
+      FreeBSD, NetBSD
+    \item[1994]
+      OpenBSD
+    \item[2000]
+      Darwin (Mac OS X, BSD-basiert)
+    \item[2008]
+      Android (Linux-basiert)
+  \end{description}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \begin{minipage}[b]{6.5cm}
+    \showsection
+    \vspace{-\medskipamount}
+    \showsubsection
+
+    Unix und C: Einfachheit als Grundkonzept
+%    \vspace{-\bigskipamount}
+    \begin{itemize}
+      \item
+        Vermeiden von Ausnahmen
+      \item[\color{lightgray}$\bullet$]
+        \color{lightgray}Baukastensystem
+    \end{itemize}
+  \end{minipage}\hspace*{0.5cm}%
+  \begin{minipage}[b]{5cm}
+    \small
+    C: Hauptprogramm\\
+    = "`normale"' Funktion
+
+    \medskip
+
+    \begin{lstlisting}[gobble=6]
+      int main (int argc, char **argv)
+      {
+        printf ("Hello, world!\n");
+        return 0;
+      }
+    \end{lstlisting}
+    \vspace{-\bigskipamount}
+  \end{minipage}
+
+  \bigskip
+  \bigskip
+
+  Unix: übergeordnetes Verzeichnis = "`normales"' Verzeichnis
+
+  \medskip
+
+  \begin{lstlisting}[style=terminal]
+    cassini/home/peter/foo> ¡ls -la¿
+    insgesamt 24
+    drwxr-xr-x   2 peter peter  4096 Okt  6 13:30 .
+    drwxr-xr-x 172 peter peter 20480 Okt  6 13:30 ..
+    cassini/home/peter/foo> ¡cd ..¿
+    cassini/home/peter>
+  \end{lstlisting}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \begin{minipage}[b]{6.5cm}
+    \showsection
+    \vspace{-\medskipamount}
+    \showsubsection
+
+    Unix und C: Einfachheit als Grundkonzept
+%    \vspace{-\bigskipamount}
+    \begin{itemize}
+      \item
+        Vermeiden von Ausnahmen
+      \item
+        Baukastensystem
+    \end{itemize}
+  \end{minipage}%
+  \begin{minipage}[b]{5.5cm}
+    \small
+    C: Bibliotheken
+    
+    \smallskip
+
+    z.\,B.: \lstinline{printf()} = "`normale"' Funktion\\
+    aus eine Bibliothek (\file{libc})
+  \end{minipage}
+
+  \bigskip
+  \bigskip
+
+  Unix: Programme arbeiten zusammen
+
+  \medskip
+
+  \begingroup\small
+
+  \begin{lstlisting}[style=terminal]
+    cassini/home/peter/bo> ¡find . -name "*klausur*.tex" \
+      | xargs grep -l "PBM-Datei"¿
+    ./2014ws/ainf/20150130.0/ainf-klausur-20150130.tex
+    ./2016ws/hp/20170920.0/klausur.tex
+    ./2016ws/hp/20170206.0/klausur.tex
+    ./2011ws/rarch/20120322.0/rarch-klausur-20120322.tex
+    ./2012ws/klausuren-gerwinski/rarch-klausur-20120322.tex
+    ./2013ws/ainf/20140918.0/ainf-klausur-20140918.tex
+    ./2017ws/hp/20180213.k1/klausur.tex
+    ./2017ws/hp/20180205/klausur.tex
+    ./2015ws/ainf/20160913/ainf-klausur-20160913.tex
+  \end{lstlisting}
+
+  \endgroup
+
+\end{frame}
+
+\subsection{Die Kommandozeile: Grundlagen}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Programm aufrufen: Namen eingeben, z.\,B.: \lstinline[style=cmd]{ls}
+    \item
+      Optionen: \lstinline[style=cmd]{ls -l}
+    \item
+      Lange Optionen (GNU-Konvention): \lstinline[style=cmd]{ls --help}
+    \medskip
+    \item
+      Text schreiben: \lstinline[style=cmd]{echo "Hello, world!"}
+    \item
+      (String-)Variable setzen: \lstinline[style=cmd]{FOO=bar}
+    \item
+      Variable einlesen: \lstinline[style=cmd]{read FOO}
+    \item
+      Variable abrufen: \lstinline[style=cmd]{echo $FOO}
+    \item
+      Aus Sicherheitsgründen: \lstinline[style=cmd]{echo "$FOO"}
+  \end{itemize}
+
+%  \pause
+  \begin{lstlisting}[style=terminal]
+    cassini/home/peter/bo> ¡FOO=ls¿
+    cassini/home/peter/bo> ¡echo "$FOO"¿
+    ls
+    cassini/home/peter/bo> ¡$FOO¿
+    2011ws  2012ws  2013ws  doc       misc  projekte
+    2012ss  2013ss  briefe  material  orga
+    cassini/home/peter/bo>
+  \end{lstlisting}
+
+\end{frame}
+
+\begin{frame}
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Befehl zurückholen: Pfeiltasten $\uparrow$, $\downarrow$
+    \item
+      Befehl bearbeiten: Pfeiltasten $\leftarrow$, $\rightarrow$ usw.
+    \item
+      Befehl vervollständigen: TAB
+    \item
+      Befehl rückwärts suchen: Ctrl+R
+    \item
+      Bildschirm löschen: Ctrl+L
+    \item
+      Befehl abbrechen: Ctrl+C
+    \bigskip
+%    \pause
+    \item
+      Hilfe-Option: \lstinline[style=cmd]{ls --help}
+    \item
+      Unix-Handbuch -- \emph{manual\/}: \lstinline[style=cmd]{man ls}\\
+      (Beenden mit \lstinline[style=cmd]{q})
+  \end{itemize}
+
+\end{frame}
+
+\nosectionnonumber{\inserttitle}
+
+\begin{frame}
+
+  \shownosectionnonumber
+
+  \begin{itemize}
+    \item[\textbf{1}] \textbf{Einführung}
+      \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/dbs}}}%
+      \begin{itemize}
+        \color{medgreen}
+        \item[1.1] Was sind Datenbanken?
+        \item[1.2] Was ist Datensicherheit?
+        \item[1.3] In dieser Lehrveranstaltung
+      \end{itemize}
+    \item[\textbf{2}] \textbf{Kurzeinführung Unix}
+      \begin{itemize}
+        \color{medgreen}
+        \item[2.1] Grundkonzepte
+        \color{orange}
+        \item[2.2] Die Kommandozeile: Grundlagen
+        \color{red}
+        \item[2.3] Dateisysteme
+        \item[2.4] Ein- und Ausgabeströme
+        \item[2.5] Pipes
+        \item[2.6] Verzweigungen und Schleifen
+      \end{itemize}
+    \color{gray}
+    \item[\textbf{3}] \textbf{Kurzeinführung TCP/IP}
+    \vspace*{-\smallskipamount}
+    \item[\textbf{\dots}]
+  \end{itemize}
+
+  \vfilll
+  \underconstruction
+
+\end{frame}
+
+\begin{frame}
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Verzeichnisse für Programme: \lstinline[style=cmd]{echo $PATH}
+    \item
+      Programm in explizitem Verzeichnis aufrufen: \lstinline[style=cmd]{/bin/ls -l}
+    \item
+      Programm im aktuellen Verzeichnis aufrufen: \lstinline[style=cmd]{./hello}
+    \bigskip
+
+    \addtolength{\leftskip}{1cm}
+    \item[MS-DOS:]
+      Ausführbare Programme werden gefunden,\\
+      wenn sie im \lstinline[style=terminal]{PATH} stehen\\
+      \emph{oder\/} sich im aktuellen Verzeichnis befinden.
+    \smallskip
+    \item[Unix:]
+      Ausführbare Programme werden gefunden,\\
+      wenn sie im \lstinline[style=terminal]{PATH} stehen.
+      
+      \smallskip
+      \textarrow\ Vermeiden von Ausnahmen
+
+%      \pause
+      \smallskip
+      Das aktuelle Verzeichnis (\lstinline[style=terminal]{.})
+      \emph{kann\/} im \lstinline[style=terminal]{PATH} stehen,\\
+      muß dies aber nicht\only<2>{ --\\
+      und sollte es aus Sicherheitsgründen auch nicht}.
+
+  \end{itemize}
+
+\end{frame}
+
+\subsection{Dateisysteme}
+
+\begin{frame}
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Dateien listen: \lstinline[style=cmd]{ls}\\
+      langes Listenformat: \lstinline[style=cmd]{ls -l}\\
+      rückwärts nach Zeit sortiert: \lstinline[style=cmd]{ls -lrt}
+    \item
+      Datei ausgeben: \lstinline[style=cmd]{cat hello.c}
+    \item
+      Datei anzeigen: \lstinline[style=cmd]{less hello.c}
+  \end{itemize}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Arbeitsverzeichnis anzeigen: \lstinline[style=cmd]{pwd}\\
+    \item
+      Arbeitsverzeichnis wechseln: \lstinline[style=cmd]{cd script}\\
+      (\emph{kein\/} Programm, sondern Shell-Befehl)
+    \item
+      übergeordnetes Verzeichnis: \lstinline[style=cmd]{cd ..}
+    \item
+      eigenes \newterm{Home-\/}Verzeichnis: \lstinline[style=cmd]{cd}
+    \item
+      Wurzelverzeichnis: \lstinline[style=cmd]{cd /}
+    \item
+      wieder zurück: \lstinline[style=cmd]{cd -}
+  \end{itemize}
+
+%  \pause
+  \begin{lstlisting}[style=terminal]
+    cassini/home/peter/bo/2013ss/net/script> ¡cd /usr/bin¿
+    cassini/usr/bin> ¡cd ../lib¿
+    cassini/usr/lib> ¡cd¿
+    cassini/home/peter>
+  \end{lstlisting}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Dateien kopieren (\emph{copy\/}): \lstinline[style=cmd]{cp}
+    \item
+      Dateien verschieben/umbenennen (\emph{move\/}): \lstinline[style=cmd]{mv}
+    \item
+      Dateien löschen (\emph{remove\/}): \lstinline[style=cmd]{rm}
+  \end{itemize}
+
+  \begin{lstlisting}[style=terminal,xleftmargin=-3pt]
+    cassini/home/peter> ¡cp -p foo/test.txt¿
+    cp: missing destination file operand after `foo/test.txt'
+    Try `cp --help' for more information.
+    cassini/home/peter> ¡cp -p foo/test.txt .¿
+    cassini/home/peter> ¡mv test.txt bla.txt¿
+    cassini/home/peter> ¡cat bla.txt¿
+    Dies ist ein Test.
+    cassini/home/peter> ¡rm bla.txt¿
+    cassini/home/peter>
+  \end{lstlisting}
+
+  \medskip
+
+  Aktuelles Verzeichnis: \lstinline[style=cmd]{.}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      \newterm{Zugriffsrechte}
+  \end{itemize}
+
+  \begingroup
+%    \small
+    \begin{lstlisting}[style=terminal,gobble=6,xleftmargin=-3pt]
+      cassini/home/peter/bo/2019ws/es/20191009> ¡ls -l¿
+      ...
+      -rw-r--r-- 1 peter peter 24523 Okt  8 21:47 es-20191009.tex
+    \end{lstlisting}
+  \endgroup
+  \begin{onlyenv}<2>
+    \begin{picture}(0,1)
+      \color{red}
+      \put(0.3,0){\tikz{\draw[-latex,red](0,0)--(0,1);
+                        \draw[-latex,red](0,0)--(2.5,1);}}
+      \put(0,-0.1){\makebox(0,0)[tl]{Benutzer (u -- \emph{user\/}) darf lesen und schreiben}}
+    \end{picture}
+  \end{onlyenv}
+  \begin{onlyenv}<3>
+    \begin{picture}(0,1)
+      \color{red}
+      \put(0.84,0){\tikz{\draw[-latex,red](0,0)--(0,1);
+                        \draw[-latex,red](0,0)--(3.2,1);}}
+      \put(0,-0.1){\makebox(0,0)[tl]{Gruppe (g -- \emph{group\/}) darf lesen}}
+    \end{picture}
+  \end{onlyenv}
+  \begin{onlyenv}<4>
+    \begin{picture}(0,1)
+      \color{red}
+      \put(1.47,0){\tikz{\draw[-latex,red](0,0)--(0,1);}}
+      \put(0,-0.1){\makebox(0,0)[tl]{alle anderen (o -- \emph{other\/}) dürfen lesen}}
+    \end{picture}
+  \end{onlyenv}
+
+  \medskip
+  \pause[5]
+  \begin{itemize}
+    \item
+      Zugriffsrechte ändern:\\
+      \lstinline[style=cmd]{chmod o-r es-20191009.tex} -- Lesezugriff entziehen\\
+      \lstinline[style=cmd]{chmod g+w es-20191009.tex} -- Schreibzugriff gewähren\\
+      \lstinline[style=cmd]{chmod 640 es-20191009.tex} --
+      auf \lstinline[style=terminal]{-}%
+          \lstinline[style=terminal]{rw-}%
+          \lstinline[style=terminal]{r--}%
+          \lstinline[style=terminal]{---} setzen
+  \end{itemize}
+  \pause
+  \begin{picture}(0,0)
+    \color{red}
+    \put(7.22,0.55){\makebox(0,0)[tl]{%
+      \small
+      \begin{math}%
+        \underbrace{\rule{0.7em}{0pt}}_{\textstyle 6}%
+        \underbrace{\rule{0.7em}{0pt}}_{\textstyle 4}%
+        \underbrace{\rule{0.7em}{0pt}}_{\textstyle 0}
+      \end{math}}}
+  \end{picture}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      \newterm{ausführbare\/} Dateien
+  \end{itemize}
+
+  \begingroup
+%    \small
+    \begin{lstlisting}[style=terminal,gobble=6,xleftmargin=-3pt]
+      cassini/home/peter/bo/2019ws/es/20191002> ¡cat test2.txt¿
+      ls -l
+      cassini/home/peter/bo/2019ws/es/20191002> ¡chmod +x test2.txt¿
+      cassini/home/peter/bo/2019ws/es/20191002> ¡ls -l test2.txt¿
+      -rwxr-xr-x 1 peter peter 6 Okt  2 13:43 test2.txt
+      cassini/home/peter/bo/2019ws/es/20191002> ¡./test2.txt¿
+      insgesamt 4828
+      lrwxrwxrwx 1 peter peter      18 Apr 13  2016 csa2.jpg -> ../common/csa2.jpg
+      -rw-r--r-- 1 peter peter 4619138 Okt  8 21:28 es-20191002.pdf
+      ...
+    \end{lstlisting}
+  \endgroup
+
+%  \pause
+  \begin{itemize}
+    \item
+      ausführbare Textdateien: \newterm{Skripte}
+
+%      \pause
+      \smallskip
+      hier: ausführbare Textdatei mit Shell-Befehlen\\
+      (ohne spezielle Kennung): Shell-Skript
+
+      \pause
+      \smallskip
+      Kennung: 1.\ Zeile enthält \lstinline[style=terminal]{#!} und den Interpreter,\\
+      z.\,B.\ \lstinline[style=terminal]{#!/bin/bash}\\
+  \end{itemize}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Datenträger in Verzeichnis \newterm{einhängen\/}: \lstinline[style=cmd]{mount}
+  \end{itemize}
+
+  \begin{lstlisting}[style=terminal]
+    cassini/home/peter> ¡ls /media/usb1/¿
+    cassini/home/peter> ¡mount /media/usb1¿
+    cassini/home/peter> ¡ls /media/usb1/¿
+    es-20191002.pdf  hello.c  hexapode  KIS-Bericht.pdf
+    cassini/home/peter> ¡umount /media/usb1¿
+    cassini/home/peter> ¡ls /media/usb1/¿
+    cassini/home/peter>
+  \end{lstlisting}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      \newterm{Symbolische Verknüpfungen -- symbolic links}
+
+      \smallskip
+
+      Verweis auf die eigentliche Datei\\
+      \textarrow\ Wenn man die Datei löscht, zeigt der Link ins Leere.
+
+      \smallskip
+
+      Verknüpfung anlegen: \lstinline[style=cmd]{ln -s datei link}\\
+      (Richtung: wie bei \lstinline[style=cmd]{cp})
+
+      \smallskip
+
+      Beispiel: \lstinline[style=cmd]{ln -s ../common/GNU-GPL-3 gpl.txt}
+    \pause
+    \medskip
+    \item
+      \newterm{Harte Verknüpfungen -- hard links}
+
+      \smallskip
+      
+      Dieselben Daten auf dem Datenträger\\
+      sind unter mehreren Namen verfügbar.\\
+      \textarrow\ Wenn man einen löscht, sind die Daten noch da.
+
+      \smallskip
+
+      \begingroup
+        \begin{lstlisting}[style=terminal,gobble=10,xleftmargin=-3pt]
+          cassini/home/peter/bo/2019ws/es/20191002> ¡ls -l¿
+          ...
+          -rw-r--r-- 1 peter peter    1202 Okt  2 13:35 shell-06.txt
+          drwxr-xr-x 2 peter peter    4096 Okt  2 13:16 test
+        \end{lstlisting}
+      \endgroup
+      \begin{picture}(0,0.5)
+        \color{red}
+        \put(2.31,0){\tikz{\draw[-latex,red](0,0)--(0,0.5);}}
+        \put(0,-0.1){\makebox(0,0)[tl]{Anzahl der ("`harten"') Links
+                                       auf diese Datei / dieses Verzeichnis}}
+      \end{picture}
+  \end{itemize}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      \lstinline[style=cmd]{grep}: Dateien durchsuchen
+  \end{itemize}
+  \begin{lstlisting}[style=terminal,xleftmargin=-3pt]
+    cassini/home/peter/bo/2019ws/es/20191002> ¡grep gcc *.txt¿
+    shell-03.txt: cassini/...> gcc -Wall -O hello.c -o hello
+  \end{lstlisting}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      \lstinline[style=cmd]{find}: Dateien anhand ihrer Eigenschaften suchen
+  \end{itemize}
+
+%  \small
+  \begin{lstlisting}[style=terminal]
+    $ ¡find . -name "*.txt"¿
+    ./shell-06.txt
+    ./shell-03.txt
+    ./shell-05.txt
+    ./test.txt
+    ./test/test.txt
+    ...
+    $ ¡find . -name "*.txt" -perm /u+x¿
+    ./test2.txt
+    $ ¡find . -name "*.txt" -perm /u+x -exec ls -l {} \;¿
+    -rwxr-xr-x 1 peter peter 6 Okt  2 13:43 ./test2.txt
+  \end{lstlisting}
+
+\end{frame}
+
+\subsection{Ein- und Ausgabeströme}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Standard-Ausgabe in Datei umleiten
+  \end{itemize}
+  \begin{lstlisting}[style=terminal]
+    $ ¡echo "Dies ist ein Test." > test.txt¿
+    $ ¡cat test.txt¿
+    Dies ist ein Test.
+  \end{lstlisting}
+
+  \pause
+  \smallskip
+
+  \begin{itemize}
+    \item
+      Standard-Ausgabe an Datei anhängen
+  \end{itemize}
+  \begin{lstlisting}[style=terminal]
+    $ ¡echo "Dies ist noch ein Test." >> test.txt¿
+    $ ¡cat test.txt¿
+    Dies ist ein Test.
+    Dies ist noch ein Test.
+  \end{lstlisting}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Fehler-Ausgabe in Datei umleiten
+  \end{itemize}
+  \begin{lstlisting}[style=terminal]
+    $ ¡cat gibtsnicht.txt > fehler.txt¿
+    cat: gibtsnicht.txt: No such file or directory
+    $ ¡cat fehler.txt¿
+    $ ¡cat gibtsnicht.txt 2> fehler.txt¿
+    $ ¡cat fehler.txt¿
+    cat: gibtsnicht.txt: No such file or directory
+  \end{lstlisting}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      Standard-Eingabe aus Datei lesen
+  \end{itemize}
+  \begin{lstlisting}[style=terminal]
+    $ ¡bc¿
+    bc 1.06.95
+    Copyright [...] 2006 Free Software Foundation, Inc.
+    This is free software with ABSOLUTELY NO WARRANTY.
+    For details type `warranty'.
+    ¡2 + 2¿
+    4
+    $ ¡echo "2 + 2" > test.bc¿
+    $ ¡bc < test.bc¿
+    4
+  \end{lstlisting}
+
+\end{frame}
+
+\subsection{Pipes}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  Standard-Ausgabe von Programm A\\
+  wird zu Standard-Eingabe von Programm B
+
+  \smallskip
+
+  \begin{lstlisting}[style=terminal]
+    $ ¡echo "2 + 2" | bc¿
+    4
+  \end{lstlisting}
+
+  \smallskip
+
+  \textarrow\ sehr mächtiger "`Baukasten"'
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      \lstinline[style=cmd]{sed}: \emph{stream editor}\\
+      Suchen und Ersetzen (und noch viel mehr)
+  \end{itemize}
+  \begin{lstlisting}[style=terminal]
+    $ ¡echo "Schlimmer geht nimmer." | sed -e 's/nim/im/g'¿
+    Schlimmer geht immer.
+  \end{lstlisting}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{itemize}
+    \item
+      \lstinline[style=cmd]{grep}: Standard-Eingabe durchsuchen
+  \end{itemize}
+  \begin{lstlisting}[style=terminal]
+    $ ¡ls | grep slides¿
+    pgslides.sty
+    $ ¡ls *.pdf | grep -v logo¿
+    es-20191002.pdf
+    Zeichen_123.pdf
+    $ ¡ls -l $(ls *.pdf | grep -v logo)¿
+    -rw-r--r-- 1 ... 4619138 Okt 8 21:28 es-20191002.pdf
+    lrwxrwxrwx 1 ...      25 Okt 3  2016 Zeichen_123.pdf -> ...
+  \end{lstlisting}
+
+\end{frame}
+
+\subsection{Verzweigungen und Schleifen}
+
+\begin{frame}[fragile]
+
+  \showsubsection
+
+  \begin{lstlisting}[style=terminal]
+    $ ¡if grep Blubb test.txt; then echo "gefunden"; \
+      else echo "nicht gefunden"; fi¿
+    nicht gefunden
+    $ ¡for x in foo bar baz; do echo $x; done¿
+    foo
+    bar
+    baz
+  \end{lstlisting}
+
+\end{frame}
+
+\nosectionnonumber{\inserttitle}
+
+\begin{frame}
+
+  \shownosectionnonumber
+
+  \begin{itemize}
+    \item[\textbf{1}] \textbf{Einführung}
+      \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/dbs}}}%
+      \begin{itemize}
+        \color{medgreen}
+        \item[1.1] Was sind Datenbanken?
+        \item[1.2] Was ist Datensicherheit?
+        \item[1.3] In dieser Lehrveranstaltung
+      \end{itemize}
+    \item[\textbf{2}] \textbf{Kurzeinführung Unix}
+      \begin{itemize}
+        \color{medgreen}
+        \item[2.1] Grundkonzepte
+        \color{orange}
+        \item[2.2] Die Kommandozeile: Grundlagen
+        \color{red}
+        \item[2.3] Dateisysteme
+        \item[2.4] Ein- und Ausgabeströme
+        \item[2.5] Pipes
+        \item[2.6] Verzweigungen und Schleifen
+%        \item[\dots]
+      \end{itemize}
+    \color{gray}
+    \item[\textbf{3}] \textbf{Kurzeinführung TCP/IP}
+    \vspace*{-\smallskipamount}
+    \item[\textbf{\dots}]
+  \end{itemize}
+
+  \vfilll
+  \underconstruction
+
+\end{frame}
+
+\iffalse
+
+\fi
+
+\end{document}
diff --git a/20241009/dbs-uebung-20241009.pdf b/20241009/dbs-uebung-20241009.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..f959c045086463febee46c297d352af0f54f12db
Binary files /dev/null and b/20241009/dbs-uebung-20241009.pdf differ
diff --git a/20241009/dbs-uebung-20241009.tex b/20241009/dbs-uebung-20241009.tex
new file mode 100644
index 0000000000000000000000000000000000000000..bb6ebdfcffe2e423f7d37304d3ada661676ebe46
--- /dev/null
+++ b/20241009/dbs-uebung-20241009.tex
@@ -0,0 +1,101 @@
+% dbs-uebung-20231005.pdf - Exercises on Databases and Information Security
+% Copyright (C) 2024  Peter Gerwinski
+%
+% This document is free software: you can redistribute it and/or
+% modify it either under the terms of the Creative Commons
+% Attribution-ShareAlike 3.0 License, or under the terms of the
+% GNU General Public License as published by the Free Software
+% Foundation, either version 3 of the License, or (at your option)
+% any later version.
+%
+% This document is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this document.  If not, see <http://www.gnu.org/licenses/>.
+%
+% You should have received a copy of the Creative Commons
+% Attribution-ShareAlike 3.0 Unported License along with this
+% document.  If not, see <http://creativecommons.org/licenses/>.
+
+% README: 1: Dateien umbenennen, Tabellen bearbeiten
+
+\documentclass[a4paper]{article}
+
+\usepackage{pgscript}
+
+\thispagestyle{empty}
+
+\begin{document}
+
+  \thispagestyle{empty}
+
+  \section*{Datenbanken und Datensicherheit\\
+            Übungsaufgaben 1 -- 9.\ Oktober 2024}
+
+  \exercise{Dateien umbenennen}
+
+  In einem Verzeichnis befinden sich die folgenden Dateien:
+  \begin{lstlisting}[style=terminal]
+    $ ¡ls dbs-20241002.*¿
+    dbs-20241002.aux  dbs-20241002.out  dbs-20241002.tex
+    dbs-20241002.log  dbs-20241002.pdf  dbs-20241002.toc
+    dbs-20241002.nav  dbs-20241002.snm  dbs-20241002.vrb
+  \end{lstlisting}
+  Beschreiben Sie einen Weg, diese Dateien auf möglichst effiziente und möglichst wenig
+  fehleranfällige Weise folgendermaßen umzubenennen:
+  \begin{lstlisting}[style=terminal]
+    $ ¡ls dbs-20241009.*¿
+    dbs-20241009.aux  dbs-20241009.out  dbs-20241009.tex
+    dbs-20241009.log  dbs-20241009.pdf  dbs-20241009.toc
+    dbs-20241009.nav  dbs-20241009.snm  dbs-20241009.vrb
+  \end{lstlisting}
+  Hinweis:\quad\lstinline[style=cmd]{man mmv}
+
+  \exercise{Tabellen bearbeiten}
+
+  Die Datei \gitfile{dbs}{2024ws/20241008}{cd-sammlung.txt}
+  enthält die folgende Tabelle in Textform:
+  \begin{lstlisting}[style=terminal,basicstyle=\footnotesize\ttfamily\color{darkgreen}]
+    CD_ID  Albumtitel          Interpret   Gründungsjahr  Erscheinungsjahr  Track  Titel
+    4711   Not That Kind       Anastacia   1999           2000              1      Not That Kind
+    4711   Not That Kind       Anastacia   1999           2000              2      I'm Outta Love
+    4711   Not That Kind       Anastacia   1999           2000              3      Cowboys & Kisses
+    4712   Wish You Were Here  Pink Floyd  1965           1975              1      Shine On You Crazy Diamond
+    4713   Freak of Nature     Anastacia   1999           2001              1      Paid my Dues 
+  \end{lstlisting}
+
+  Die Datei \gitfile{dbs}{2024ws/20241008}{cd-sammlung.csv}
+  enthält dieselbe Tabelle als CSV-Datei,
+  wie man sie z.\,B.\ auch mit Tabellenkalkulationsprogrammen bearbeiten kann:
+  \begin{lstlisting}[style=terminal,basicstyle=\footnotesize\ttfamily\color{darkgreen}]
+    "CD_ID";"Albumtitel";"Interpret";"Gründungsjahr";"Erscheinungsjahr";"Track";"Titel"
+    4711;"Not That Kind";"Anastacia";1999;2000;1;"Not That Kind"
+    4711;"Not That Kind";"Anastacia";1999;2000;2;"I'm Outta Love"
+    4711;"Not That Kind";"Anastacia";1999;2000;3;"Cowboys & Kisses"
+    4712;"Wish You Were Here";"Pink Floyd";1965;1975;1;"Shine On You Crazy Diamond"
+    4713;"Freak of Nature";"Anastacia";1999;2001;1;"Paid my Dues"
+  \end{lstlisting}
+
+  Extrahieren Sie aus (a) \gitfile{dbs}{2024ws/20241008}{cd-sammlung.txt}
+  und aus (b) \gitfile{dbs}{2024ws/20241008}{cd-sammlung.csv}
+  jeweils die dritte Spalte ("`Interpret"').
+  Bei (b) darf das Ergebnis die Anführungszeichen noch enthalten.
+
+  Hinweise:
+  \begin{itemize}
+    \item
+      Wenn Sie in dieser PDF-Datei die o.\,a.\ Dateinamen anklicken, können Sie
+      die entsprechende Datei von \url{https://gitlab.cvh-server.de/pgerwinski/dbs}
+      herunterladen.
+    \item
+      \lstinline[style=cmd]{man cut}
+  \end{itemize}
+
+  \begin{flushright}
+    \textit{Viel Erfolg!}
+  \end{flushright}
+
+\end{document}
diff --git a/20241009/logo-hochschule-bochum-cvh-text-v2.pdf b/20241009/logo-hochschule-bochum-cvh-text-v2.pdf
new file mode 120000
index 0000000000000000000000000000000000000000..4aa99b8f81061aca6dcaf43eed2d9efef40555f8
--- /dev/null
+++ b/20241009/logo-hochschule-bochum-cvh-text-v2.pdf
@@ -0,0 +1 @@
+../common/logo-hochschule-bochum-cvh-text-v2.pdf
\ No newline at end of file
diff --git a/20241009/logo-hochschule-bochum.pdf b/20241009/logo-hochschule-bochum.pdf
new file mode 120000
index 0000000000000000000000000000000000000000..b6b9491e370e499c9276918182cdb82cb311bcd1
--- /dev/null
+++ b/20241009/logo-hochschule-bochum.pdf
@@ -0,0 +1 @@
+../common/logo-hochschule-bochum.pdf
\ No newline at end of file
diff --git a/20241009/online-shop-lores.jpg b/20241009/online-shop-lores.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..67cb26bf2d67ffcc2241ec348794f463646da993
Binary files /dev/null and b/20241009/online-shop-lores.jpg differ
diff --git a/20241009/online-shop.jpg b/20241009/online-shop.jpg
new file mode 120000
index 0000000000000000000000000000000000000000..4c636276842c9a66b60474e2aadc27803cf5e678
--- /dev/null
+++ b/20241009/online-shop.jpg
@@ -0,0 +1 @@
+Shopping_online_with_bank_card.jpg
\ No newline at end of file
diff --git a/20241009/pgscript.sty b/20241009/pgscript.sty
new file mode 120000
index 0000000000000000000000000000000000000000..95c888478c99ea7fda0fd11ccf669ae91be7178b
--- /dev/null
+++ b/20241009/pgscript.sty
@@ -0,0 +1 @@
+../common/pgscript.sty
\ No newline at end of file
diff --git a/20241009/pgslides.sty b/20241009/pgslides.sty
new file mode 120000
index 0000000000000000000000000000000000000000..5be1416f4216f076aa268901f52a15d775e43f64
--- /dev/null
+++ b/20241009/pgslides.sty
@@ -0,0 +1 @@
+../common/pgslides.sty
\ No newline at end of file
diff --git a/20241009/zentraler-computer-lores.jpg b/20241009/zentraler-computer-lores.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6314ec19d132b2d4020fa2ce83127741eb9dd73b
Binary files /dev/null and b/20241009/zentraler-computer-lores.jpg differ
diff --git a/20241009/zentraler-computer.jpg b/20241009/zentraler-computer.jpg
new file mode 120000
index 0000000000000000000000000000000000000000..dbbe30e51e57e46f8906a33f51bbe1fec3683cfc
--- /dev/null
+++ b/20241009/zentraler-computer.jpg
@@ -0,0 +1 @@
+Ken_Thompson_(sitting)_and_Dennis_Ritchie_at_PDP-11_(2876612463).jpg
\ No newline at end of file
diff --git a/README.md b/README.md
index f5d155ac40907e428a12a5f31f5a377405e7fdb9..8fe27b954da766592a5c53264c7624ec54c7bf86 100644
--- a/README.md
+++ b/README.md
@@ -18,8 +18,13 @@ Für Details siehe [common/README](https://gitlab.cvh-server.de/pgerwinski/dbs/r
 Vortragsfolien und Beispiele:
 -----------------------------
  * [02.10.2024: Einführung, Unix-Kommandozeile](https://gitlab.cvh-server.de/pgerwinski/dbs/raw/2024ws/20241002/dbs-20241002.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/dbs/tree/2024ws/20241002/)
+ * [09.10.2024: Unix-Kommandozeile: Dateiverwaltung, …](https://gitlab.cvh-server.de/pgerwinski/dbs/raw/2024ws/20241009/dbs-20241009.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/dbs/tree/2024ws/20241009/)
  * [alle in 1 Datei](https://gitlab.cvh-server.de/pgerwinski/dbs/raw/2024ws/dbs-slides-2024ws.pdf)
 
+Übungsaufgaben:
+---------------
+ * [09.10.2024: 1: Dateien umbenennen, Tabellen bearbeiten](https://gitlab.cvh-server.de/pgerwinski/dbs/raw/2024ws/20241009/dbs-uebung-20241009.pdf)
+
 Praktikumsunterlagen:
 ---------------------
  * [Versuch 0: Erstkontakt mit der Unix-Shell](https://gitlab.cvh-server.de/pgerwinski/dbs/raw/2024ws/20241002/dbs-2024ws-p0.pdf)
diff --git a/dbs-slides-2024ws.pdf b/dbs-slides-2024ws.pdf
index 6b0c6c5a99491a3490564c18b9d6c162bbfd8f94..1fff026bb2e96d923e4a329b62036d1440f48795 100644
Binary files a/dbs-slides-2024ws.pdf and b/dbs-slides-2024ws.pdf differ
diff --git a/dbs-slides-2024ws.tex b/dbs-slides-2024ws.tex
index 17f7e397c87adac56c5b67f4372bbeb897228757..14abb93f32887e74304ca0cb8505e4c072bbc935 100644
--- a/dbs-slides-2024ws.tex
+++ b/dbs-slides-2024ws.tex
@@ -12,4 +12,6 @@
   \includepdf[pages=2-]{common/dbs-slides-title-2024ws.pdf}
   \pdfbookmark[1]{02.10.2024: Einführung, Unix-Kommandozeile}{20241002}
   \includepdf[pages=-]{20241002/dbs-20241002.pdf}
+  \pdfbookmark[1]{09.10.2024: Unix-Kommandozeile: Dateiverwaltung, …}{20241009}
+  \includepdf[pages=-]{20241009/dbs-20241009.pdf}
 \end{document}
diff --git a/update b/update
index 0994656ea5de14cd7ad0ddb8f1e218166ec2d17d..82304000c4a8e8ba34e9639f8341b1cb8fef49a5 100755
--- a/update
+++ b/update
@@ -140,7 +140,7 @@ cat >> $readme << EOF
  * [alle in 1 Datei](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/$course-slides-$sem.pdf)
 EOF
 
-#collect "Übungsaufgaben:" tex pdf $date_mask/$course-uebung-$date_mask.tex || echo "(keine)" >> $readme
+collect "Übungsaufgaben:" tex pdf $date_mask/$course-uebung-$date_mask.tex || echo "(keine)" >> $readme
 #collect "Musterlösungen:" tex pdf $date_mask/$course-musterloesung-$date_mask.tex || echo "(keine)" >> $readme
 #collect "Tafelbilder:" txt png $date_mask/*.txt || echo "(keine)" >> $readme
 #collect "Notizen:" txt txt $date_mask/dbs-*.txt || echo "(keine)" >> $readme