\chapter{Nützliche Shell-Kommandos}
Durch die gezeigten Steuerungsmöglichkeiten stehen dem Shell-Pro\-grammie\-rer
Möglichkeiten offen, fast alle gängigen Algorithmen zu implementieren. Es ist
tatsächlich in der Shell möglich, Sortier- oder Suchfunktionen zu schreiben.
Leider kommt aber an dieser Stelle einer der bedeutendsten Nachteile der Shell
zum tragen: Die Geschwindigkeit.

In einem Shell-Skript wird für jedes externe Kommando\footnote{Externe
Kommandos sind solche, die nicht direkt in der Shell enthalten sind, für die
also eine eigene Datei aufgerufen wird.} ein eigener Prozeß gestartet. Das
kostet natürlich Zeit und Speicher.

Zeitkritische Anwendungen sind also kein Einsatzgebiet für Shell-Skripte. Die
schreibt man besser in Perl, oder noch besser in einer `compilierten' Sprache
wie C oder C++.

Es stehen jedoch an der Shell viele sehr nützliche externe Kommandos zur
Verfügung, die einem die Entwicklung entsprechender eigener Routinen ersparen.
Diese externen Kommandos sind zudem in anderen Sprachen geschrieben worden, so
daß sie schneller ablaufen als jedes Shell-Skript. Man kommt als
Shell-Programmierer nicht sinnvoll um den Einsatz dieser Programme herum.

In diesem Abschnitt sollen einige dieser Programme mit typischen
Einsatzmöglichkeiten vorgestellt werden. Eine vollständige Beschreibung wäre
(wenn überhaupt möglich) viel zu lang, um an dieser Stelle untergebracht zu
werden. Für ausführlichere Beschreibungen empfiehlt sich das Studium der
Man-Pages oder der Kauf eines entsprechenden Buches. Am besten macht man
natürlich beides. ;-)

\section{Ein- und Ausgabe}

TODO!!!

\subsection{echo}

TODO!!!
\LTXtable{\textwidth}{tab_beisp_exitcode.tex}


\subsection{cat}

TODO!!!


\subsection{read}

TODO!!!


\section{Pfade und Dateien}

TODO!!!

\subsection{basename}

TODO!!!

\subsection{touch}

TODO!!!


\section{Pipes manipulieren}

TODO!!!

\subsection{grep}

TODO!!!


\subsection{sed}

TODO!!!


\subsection{awk}

TODO!!!

\subsection{sort}

TODO!!!

\subsection{tee}

TODO!!!

\subsection{wc}

TODO!!!


\section{Sonstige Befehle}

TODO!!!

\subsection{script}

TODO!!!

\subsection{seq}

TODO!!!

\subsection{expr}

TODO!!!

\subsection{bc}

TODO!!!

\subsection{kill}

TODO!!!

\subsection{sleep}

TODO!!!

\subsection{who}

TODO!!!
