diff --git a/kiss/shell/whyshell.org b/kiss/shell/whyshell.org
index b02dd9c761e5046f0fbd6f5b95cf0cb5f8a32f93..b68741171ea1aa2d975a2a4f2cb244b0950cd2a2 100644
--- a/kiss/shell/whyshell.org
+++ b/kiss/shell/whyshell.org
@@ -1,5 +1,5 @@
 #+TITLE:     Arbeiten auf der Commandozeile
-#+AUTHOR:    Björn & Milan
+#+AUTHOR:    Björn, Milan & Co.
 #+DATE:      2012-10-18 Thu
 #+STARTUP: beamer
 #+LaTeX_CLASS: beamer
@@ -13,35 +13,135 @@
 - Bedienung eines Rechners, ggfs. nichtgrafisch ueber ssh ("Server").
 - Szenario: Man will auf einem Server den von allen Nutzern verwendeten
   Speicherplatz zusammenrechnen und das ganze als Textdatei abspeichern.
-- du -s * | sort -nr > $HOME/user_space_report.txt
+#+begin_src bash
+du -s * | sort -nr > $HOME/user_space_report.txt
+#+end_src
 
 ** Warum eine GUI Umgebung nicht ausreicht
 - GUIs sind nuetzlich und sinnvoll fuer viele verschiedene
 Anwendungsgebiete und Aufgaben.
-- Symbolischer zugriff auf vorgefertigte Ablaeufe per Icon und Mausclick sind zwar bequem, aber unflexibel und koennen zu ungeniessbaren Workflows fuehren.
+- Symbolischer zugriff auf vorgefertigte Ablaeufe per Icon und Mausclick
+  sind zwar bequem, aber unflexibel und koennen zu ungeniessbaren
+  Workflows fuehren.
 - RSI (Tennisarm) durch Mausschubsen.
 - Repetetives stupides Arbeiten im GUI; Beispielaufgabe: Finde alle Textdateien in einer mehrfach verschachtelten Verzeichnisstruktur die eine gewisse Zeichenkette beinhalten und ersetze diese Zeichenkette durch eine andere. -> Typischer Fall fuer ein Script.
 - GUIs und Desktopumgebungen aendern sich sehr oft und sind alles andere als uniform.
 
 ** Die Vorteile der Commandozeile
 - Einmal ausgefuehrtes bleibt in der History (C-r fuer Rueckwaertssuche)
-- Man kann in einer Sprache (Syntax & Semantik) mit dem Computer "reden" und ihm sehr praezise mitteilen was man will und ist nicht auf eine "Babysprache" beschraenkt.
+- Man kann in einer Sprache (Syntax & Semantik) interaktiv mit dem Computer "reden" und ihm sehr praezise mitteilen was man will und ist nicht auf eine "Babysprache" beschraenkt.
+- Scriptbarkeit "fuer spaeter"
 
-* Rudimentaere Grundlagen
-** Navigation
+
+* Grundlagen
+** Ein paar oft benutzte Kommandos (1)
 - pwd
 - ls
 - cd
+- mv
+- cp
+- rm
+- mkdir
 - which
 - cat
 - less
+- tar
 - man / info
 - bash
-- $PATH
+- env
+- chmod / chown
+
+** Ein paar oft benutzte Kommandos (2)
+- top
+- grep
+- locate
+- find
+- cat
+- echo
+- alias
+- free
+- ps
+- df
+- fg
+- jobs
+- kill
+- nohup
+- su / sudo
+
+** Verzeichnisstruktur
+- Hierarchie(!) Wurzel "/" ist "ganz oben" im Dateisystem (und nicht "My Computer" oder "Arbeitsplatz").
+- "/home/$USER" bzw "~" ist das Zuhause fuer persoenliche Nutzerdateien und Einstellungen (dotfiles)
+- "." ist immer das aktuelle Verzeichnis, ".." bedeutet "eine Ebene hoeher"
+- Andere Verzeichnisse unter / beinhalten z.b. Systemweite Einstellungen, geteilte Dateien, Dokumentationen, Quellcodes, Binaerdateien (Pedant zu .exe unter Windows).
+- Verzeichnisse, Geraete und anderes Dinge koennen beliebig in die Hierarchie eingebunden werden (mount).
+- Umbenennen und Verschieben ist ein und dasselbe (denn nur der inode-eintrag im Dateisystem geaendert wird)!
+- Symbolische und "Harte" Verlinkung ist moeglich mit "ln".
 
 ** Ein paar Dinge zu Dateinamen
 - Ein mit einem Punkt "." beginnender Dateiname steht fuer eine "versteckte" Datei oder "dotfile" (z.b. lokale Systemeinstellungen)
 - Gross-/Kleinschreibung ist WICHTIG.
 - Dateiendungen sind rein optional!
 - Leerstellen sind moeglich, sollten aber vermieden oder "escaped" werden!
-- Bitte Bitte keine Minuszeichen als erstes Zeichen im Dateinamen!
+- Bitte bitte bitte keine Minuszeichen als erstes Zeichen im Dateinamen! (geht zwar, tut aber weh. Loesung "--" als Trenner)
+
+** Was fuer Arten von Kommandos gibt es?
+- Ausfuehrbare (chmod +x) dateien (im $PATH)
+- Shell-builtins (z.b. cd, echo, alias)
+- (selbstdefinierte) Shell-funktionen
+- Aliase
+*** Was und wo ist was?
+- type
+- which
+- whereis
+- echo $PATH
+
+** Hilfe zur Selbsthilfe
+- Immer ausprobieren: --help Kurzhilfe
+- manpages und infopages(!!!) (erfordert oft *-doc pakete)
+- apropros (== man -k)
+- help fuer shell buildins
+
+
+
+* Beispiele
+** grep (Suchfunktion fuer Dateiinhalte mit oder ohne regex)
+- grep -i "linuxparty" meinedatei
+- grep -A 3 -i "pizza" meinedatei
+- grep -r "hunger" *  (oder "rgrep")
+
+** find und locate (Suchfunktion fuer Dateinamen)
+- locate suchstring
+- updatedb
+- find -iname "*party*
+- find . -type f -iname *.sh -print0
+- find -iname "MyCProgram.c" -exec md5sum {} \;
+#+begin_src bash
+find / -iname *.jpg -type f -print | xargs \
+tar -cvzf images.tar.gz
+#+end_src
+
+** chmod / chown
+- chmod ug+rwx meinedatei
+- chown meinuser:meinegruppe meinedate
+
+** Liste meistbenutzter Kommandos
+#+begin_src bash
+history | awk '{CMD[$2]++;\
+count++;}END \
+{ for (a in CMD)print CMD[a]\
+" " CMD[a]/count*100 "% " a;}' \
+\| grep -v "./" | column -c3 -s \
+" " -t | sort -nr | nl |  head -n10
+#+end_src
+
+** I/O umleiten
+#+begin_src bash
+ls > dateilisting.txt
+sort < dateilisting.txt > sortiertes_dateilisting.txt
+ls -la | less
+ls -lt | head
+du -h | sort -nr
+find . -type f -print | wc -l
+echo "test" > neuedatei
+echo "muhalol" >> bereitsvorhandenedatei
+#+end_src
diff --git a/kiss/shell/whyshell.pdf b/kiss/shell/whyshell.pdf
index 236c172fe3ed8263d21913b4717d9daed18294fd..d485c480da277817418915b581f448b7e376dcf7 100644
Binary files a/kiss/shell/whyshell.pdf and b/kiss/shell/whyshell.pdf differ
diff --git a/kiss/shell/whyshell.tex b/kiss/shell/whyshell.tex
index 62d4486c98c0f3b225016a2a94ac552a7ac39fb4..6d28c48e674f0dd27232dd4d653dbb0b5fd3828d 100644
--- a/kiss/shell/whyshell.tex
+++ b/kiss/shell/whyshell.tex
@@ -1,4 +1,4 @@
-% Created 2013-04-18 Thu 18:30
+% Created 2013-04-18 Thu 19:59
 \documentclass[bigger]{beamer}
 \usepackage[utf8]{inputenc}
 \usepackage[T1]{fontenc}
@@ -19,7 +19,7 @@
 \providecommand{\alert}[1]{\textbf{#1}}
 
 \title{Arbeiten auf der Commandozeile}
-\author{Björn \& Milan}
+\author{Björn, Milan \& Co.}
 \date{2012-10-18 Thu}
 \hypersetup{
   pdfkeywords={},
@@ -39,7 +39,7 @@
 
 \section{Einleitung}
 \label{sec-1}
-\begin{frame}
+\begin{frame}[fragile]
 \frametitle{Wozu eigentlich?}
 \label{sec-1-1}
 
@@ -47,8 +47,11 @@
 \item Bedienung eines Rechners, ggfs. nichtgrafisch ueber ssh (``Server'').
 \item Szenario: Man will auf einem Server den von allen Nutzern verwendeten
   Speicherplatz zusammenrechnen und das ganze als Textdatei abspeichern.
-\item du -s * | sort -nr > \$HOME/user$_{\mathrm{space}}$$_{\mathrm{report}}$.txt
 \end{itemize}
+
+\begin{verbatim}
+du -s * | sort -nr > $HOME/user_space_report.txt
+\end{verbatim}
 \end{frame}
 \begin{frame}
 \frametitle{Warum eine GUI Umgebung nicht ausreicht}
@@ -59,7 +62,9 @@
 \end{itemize}
 Anwendungsgebiete und Aufgaben.
 \begin{itemize}
-\item Symbolischer zugriff auf vorgefertigte Ablaeufe per Icon und Mausclick sind zwar bequem, aber unflexibel und koennen zu ungeniessbaren Workflows fuehren.
+\item Symbolischer zugriff auf vorgefertigte Ablaeufe per Icon und Mausclick
+  sind zwar bequem, aber unflexibel und koennen zu ungeniessbaren
+  Workflows fuehren.
 \item RSI (Tennisarm) durch Mausschubsen.
 \item Repetetives stupides Arbeiten im GUI; Beispielaufgabe: Finde alle Textdateien in einer mehrfach verschachtelten Verzeichnisstruktur die eine gewisse Zeichenkette beinhalten und ersetze diese Zeichenkette durch eine andere. -> Typischer Fall fuer ein Script.
 \item GUIs und Desktopumgebungen aendern sich sehr oft und sind alles andere als uniform.
@@ -71,38 +76,183 @@ Anwendungsgebiete und Aufgaben.
 
 \begin{itemize}
 \item Einmal ausgefuehrtes bleibt in der History (C-r fuer Rueckwaertssuche)
-\item Man kann in einer Sprache (Syntax \& Semantik) mit dem Computer ``reden'' und ihm sehr praezise mitteilen was man will und ist nicht auf eine ``Babysprache'' beschraenkt.
+\item Man kann in einer Sprache (Syntax \& Semantik) interaktiv mit dem Computer ``reden'' und ihm sehr praezise mitteilen was man will und ist nicht auf eine ``Babysprache'' beschraenkt.
+\item Scriptbarkeit ``fuer spaeter''
 \end{itemize}
 \end{frame}
-\section{Rudimentaere Grundlagen}
+\section{Grundlagen}
 \label{sec-2}
 \begin{frame}
-\frametitle{Navigation}
+\frametitle{Ein paar oft benutzte Kommandos (1)}
 \label{sec-2-1}
 
 \begin{itemize}
 \item pwd
 \item ls
 \item cd
+\item mv
+\item cp
+\item rm
+\item mkdir
 \item which
 \item cat
 \item less
+\item tar
 \item man / info
 \item bash
-\item \$PATH
+\item env
+\item chmod / chown
 \end{itemize}
 \end{frame}
 \begin{frame}
-\frametitle{Ein paar Dinge zu Dateinamen}
+\frametitle{Ein paar oft benutzte Kommandos (2)}
 \label{sec-2-2}
 
+\begin{itemize}
+\item top
+\item grep
+\item locate
+\item find
+\item cat
+\item echo
+\item alias
+\item free
+\item ps
+\item df
+\item fg
+\item jobs
+\item kill
+\item nohup
+\item su / sudo
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Verzeichnisstruktur}
+\label{sec-2-3}
+
+\begin{itemize}
+\item Hierarchie(!) Wurzel ``/'' ist ``ganz oben'' im Dateisystem (und nicht ``My Computer'' oder ``Arbeitsplatz'').
+\item ``/home/\$USER'' bzw ``\~{}'' ist das Zuhause fuer persoenliche Nutzerdateien und Einstellungen (dotfiles)
+\item ``.'' ist immer das aktuelle Verzeichnis, ``..'' bedeutet ``eine Ebene hoeher''
+\item Andere Verzeichnisse unter / beinhalten z.b. Systemweite Einstellungen, geteilte Dateien, Dokumentationen, Quellcodes, Binaerdateien (Pedant zu .exe unter Windows).
+\item Verzeichnisse, Geraete und anderes Dinge koennen beliebig in die Hierarchie eingebunden werden (mount).
+\item Umbenennen und Verschieben ist ein und dasselbe (denn nur der inode-eintrag im Dateisystem geaendert wird)!
+\item Symbolische und ``Harte'' Verlinkung ist moeglich mit ``ln''.
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Ein paar Dinge zu Dateinamen}
+\label{sec-2-4}
+
 \begin{itemize}
 \item Ein mit einem Punkt ``.'' beginnender Dateiname steht fuer eine ``versteckte'' Datei oder ``dotfile'' (z.b. lokale Systemeinstellungen)
 \item Gross-/Kleinschreibung ist WICHTIG.
 \item Dateiendungen sind rein optional!
 \item Leerstellen sind moeglich, sollten aber vermieden oder ``escaped'' werden!
-\item Bitte Bitte keine Minuszeichen als erstes Zeichen im Dateinamen!
+\item Bitte bitte bitte keine Minuszeichen als erstes Zeichen im Dateinamen! (geht zwar, tut aber weh. Loesung ``--'' als Trenner)
+\end{itemize}
+\end{frame}
+\begin{frame}
+\frametitle{Was fuer Arten von Kommandos gibt es?}
+\label{sec-2-5}
+
+\begin{itemize}
+\item Ausfuehrbare (chmod +x) dateien (im \$PATH)
+\item Shell-builtins (z.b. cd, echo, alias)
+\item (selbstdefinierte) Shell-funktionen
+\item Aliase
+\end{itemize}
+\begin{itemize}
+
+\item Was und wo ist was?
+\label{sec-2-5-1}%
+\begin{itemize}
+\item type
+\item which
+\item whereis
+\item echo \$PATH
+\end{itemize}
+
+\end{itemize} % ends low level
+\end{frame}
+\begin{frame}
+\frametitle{Hilfe zur Selbsthilfe}
+\label{sec-2-6}
+
+\begin{itemize}
+\item Immer ausprobieren: --help Kurzhilfe
+\item manpages und infopages(!!!) (erfordert oft *-doc pakete)
+\item apropros (== man -k)
+\item help fuer shell buildins
+\end{itemize}
+\end{frame}
+\section{Beispiele}
+\label{sec-3}
+\begin{frame}
+\frametitle{grep (Suchfunktion fuer Dateiinhalte mit oder ohne regex)}
+\label{sec-3-1}
+
+\begin{itemize}
+\item grep -i ``linuxparty'' meinedatei
+\item grep -A 3 -i ``pizza'' meinedatei
+\item grep -r ``hunger'' *  (oder ``rgrep'')
+\end{itemize}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{find und locate (Suchfunktion fuer Dateinamen)}
+\label{sec-3-2}
+
+\begin{itemize}
+\item locate suchstring
+\item updatedb
+\item find -iname ``*party*
+\item find . -type f -iname *.sh -print0
+\item find -iname ``MyCProgram.c'' -exec md5sum \{} \;
+\end{itemize}
+
+\begin{verbatim}
+find / -iname *.jpg -type f -print | xargs \
+tar -cvzf images.tar.gz
+\end{verbatim}
+\end{frame}
+\begin{frame}
+\frametitle{chmod / chown}
+\label{sec-3-3}
+
+\begin{itemize}
+\item chmod ug+rwx meinedatei
+\item chown meinuser:meinegruppe meinedate
 \end{itemize}
 \end{frame}
+\begin{frame}[fragile]
+\frametitle{Liste meistbenutzter Kommandos}
+\label{sec-3-4}
+
+
+\begin{verbatim}
+history | awk '{CMD[$2]++;\
+count++;}END \
+{ for (a in CMD)print CMD[a]\
+" " CMD[a]/count*100 "% " a;}' \
+\| grep -v "./" | column -c3 -s \
+" " -t | sort -nr | nl |  head -n10
+\end{verbatim}
+\end{frame}
+\begin{frame}[fragile]
+\frametitle{I/O umleiten}
+\label{sec-3-5}
+
+
+\begin{verbatim}
+ls > dateilisting.txt
+sort < dateilisting.txt > sortiertes_dateilisting.txt
+ls -la | less
+ls -lt | head
+du -h | sort -nr
+find . -type f -print | wc -l
+echo "test" > neuedatei
+echo "muhalol" >> bereitsvorhandenedatei
+\end{verbatim}
+\end{frame}
 
 \end{document}