Shell-Programmierung/werkzeugkasten.tex

133 lines
2.8 KiB
TeX
Raw Normal View History

2001-07-02 12:52:18 +00:00
\chapter{N<EFBFBD>tzliche Shell-Kommandos}
Durch die gezeigten Steuerungsm<73>glichkeiten stehen dem Shell-Pro\-grammie\-rer
M<EFBFBD>glichkeiten offen, fast alle g<>ngigen Algorithmen zu implementieren. Es ist
tats<EFBFBD>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<7A> gestartet. Das
kostet nat<61>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<EFBFBD>gung, die einem die Entwicklung entsprechender eigener Routinen ersparen.
Diese externen Kommandos sind zudem in anderen Sprachen geschrieben worden, so
da<EFBFBD> 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<EFBFBD>glichkeiten vorgestellt werden. Eine vollst<73>ndige Beschreibung w<>re
(wenn <20>berhaupt m<>glich) viel zu lang, um an dieser Stelle untergebracht zu
werden. F<>r ausf<73>hrlichere Beschreibungen empfiehlt sich das Studium der
Man-Pages oder der Kauf eines entsprechenden Buches. Am besten macht man
nat<EFBFBD>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!!!
2001-07-02 15:32:33 +00:00
\subsection{script}\label{script}\index{script=\texttt{script}|(textbf}
2001-07-02 12:52:18 +00:00
2001-07-02 15:32:33 +00:00
Dieses Kommando eignet sich vorz<72>glich f<>r das Debuggen fertiger Skripte. Man
ruft es in Verbindung mit einem Dateinamen auf. Dieser Aufruf startet eine neue
Shell, in der man beliebige Kommandos ausf<73>hren kann. Wenn man fertig ist,
beendet man den script-Befehl durch die Eingabe von exit, logout oder Druck der
Tastenkombination control-d (EOF).
Script schreibt alle Ein- und Ausgaben die an dem Terminal vorgenommen werden
in die angegebene Datei. So kann man auch interaktive Skripte relativ leicht
debuggen, da sowohl Ein- als auch Ausgaben in dem Logfile sichtbar sind.
2001-07-02 12:52:18 +00:00
\subsection{seq}
TODO!!!
\subsection{expr}
TODO!!!
\subsection{bc}
TODO!!!
\subsection{kill}
TODO!!!
\subsection{sleep}
TODO!!!
\subsection{who}
TODO!!!