Viele Neuerungen

This commit is contained in:
rschaten
2005-02-03 22:24:18 +00:00
parent 82d1e3e470
commit 5b9829acef
7 changed files with 186 additions and 104 deletions

View File

@ -44,13 +44,19 @@ typische Aufgaben beschrieben. Diese enthalten `Links' zu den in Frage
kommenden Werkzeugen. Danach gibt es eine alphabetische Aufz<66>hlung der
wichtigsten Kommandos.
Das GNU-Projekt\marginpar{GNU!} hat vielen Kommandos n<>tzliche Parameter
zugef<EFBFBD>gt, einige der hier beschriebenen Tools stehen ausschlie<69>lich auf
GNU-Systemen zur Verf<72>gung. Da diese Optionen nicht auf allen Unix-Systemen zur
Verf<EFBFBD>gung stehen, werden die betroffenen Stellen wie dieser Absatz am Rand mit
`GNU!' markiert. Wenn diese Kommandos und Optionen benutzt werden mu<6D> also das
Zielsystem ber<65>cksichtigt werden, im Zweifelsfall sollten die Skripte
ausf<EFBFBD>hrlich getestet werden.
\begin{dinglist}{43}
\item Viele der hier vorgestellten Kommandos stehen in erweiterten Versionen
zur Verf<72>gung. Besonders auf GNU-Systemen~--~und somit auch auf Linux~--~gibt
es viele sehr n<>tzliche Parameter, die man sich auf `standardkonformeren'
Systemen nur w<>nschen kann. Diese Vorteile sind allerdings mit Vorsicht zu
genie<EFBFBD>en: Wenn sie zum Einsatz kommen sind die entstehenden Skripte nicht mehr
plattformunabh<EFBFBD>ngig.
Um <20>berraschungen zu vermeiden wurde versucht, diese Besonderheiten kenntlich
zu machen. Stellen mit einer Markierung wie in diesem Absatz sind also
besonders zu betrachten.
\end{dinglist}
\section{N<EFBFBD>gel...}\label{naegel}
@ -295,7 +301,7 @@ Prozeduren verwendet werden k
\LTXtable{\textwidth}{tab_kommandos_awk_variablen.tex}
Eigene Variablen k<>nnen nach Belieben verwendet werden, siehe dazu das Beispiel
mit den TeX-Dateien weiter unten.
mit den \TeX-Dateien weiter unten.
\subsubsection{Beispiele}
@ -397,10 +403,12 @@ Au
\lstinline|cat datei.txt | kommando| Daten an ein Programm <20>bergeben, das nur
von der Standardeingabe lesen kann (Filter).
GNU-\texttt{cat}\marginpar{GNU!} verf<72>gt <20>ber eine Reihe von Parametern, um die
Ausgabe zu formatieren, so k<>nnen mit \texttt{-n} bzw. \texttt{-b} die Zeilen
numeriert werden, oder mit \texttt{-s} mehrere Zeilen zu einer einzigen
zusammengefa<EFBFBD>t werden.
\begin{dinglist}{43}
\item GNU-\texttt{cat} verf<EFBFBD>gt <20>ber eine Reihe von Parametern, um die Ausgabe
zu formatieren, so k<>nnen mit \texttt{-n} bzw. \texttt{-b} die Zeilen numeriert
werden, oder mit \texttt{-s} mehrere Zeilen zu einer einzigen zusammengefa<EFBFBD>t
werden.
\end{dinglist}
\index{cat=\texttt{cat}|)}
@ -496,9 +504,14 @@ Will man lediglich die Gruppen-ID
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{chpasswd}\index{chpasswd=\texttt{chpasswd}|(textbf}\marginpar{GNU!}
\subsection{chpasswd}\index{chpasswd=\texttt{chpasswd}|(textbf}
Mit diesem GNU-Kommando bietet sich dem Administrator des Systems die
\begin{dinglist}{43}
\item Dies ist kein Standard-Kommando, es steht nicht auf allen Systemen zur
Verf<EFBFBD>gung.
\end{dinglist}
Mit diesem Kommando bietet sich dem Administrator des Systems die
M<EFBFBD>g\-lich\-keit, scriptgesteuert die Pa<50>w<EFBFBD>rter f<>r neue Benutzer zu vergeben.
Manuell <20>ndert man ein Pa<50>wort mit dem Kommando
\texttt{passwd}\index{passwd=\texttt{passwd}}, allerdings l<>scht (flusht)
@ -539,9 +552,11 @@ jeweils mit der Position (dezimal) und den beiden Bytes (oktal).
Durch \texttt{-s} l<><6C>t sich die Ausgabe von Unterschieden unterdr<64>cken, der
Exit-Status gibt weiterhin das Ergebnis an.
In der GNU-Version\marginpar{GNU!} gibt es auch Parameter, mit denen Bereiche
der Datei vom Vergleich ausgeschlossen werden k<>nnen (\texttt{-i}), oder mit
denen nur die ersten n Bytes der Dateien verglichen werden (\texttt{-n}).
\begin{dinglist}{43}
\item In der GNU-Version gibt es auch Parameter, mit denen Bereiche der Datei
vom Vergleich ausgeschlossen werden k<>nnen (\texttt{-i}), oder mit denen nur
die ersten n Bytes der Dateien verglichen werden (\texttt{-n}).
\end{dinglist}
\index{cmp=\texttt{cmp}|)}
@ -873,8 +888,8 @@ Empf
Wenn der Proze<7A> sich weigert zu sterben, wartet \texttt{killall} ewig.
Eine <20>hnliche Funktionalit<69>t bietet auch das Kommando \texttt{pkill} (Abschnitt
\ref{pkill}), \texttt{killall} hat aber den Vorteil da<64> es auf mehr Systemen
zur Verf<72>gung steht.
\ref{pkill}), allerdings hat \texttt{killall} den Vorteil da<64> es auf mehr
Systemen zur Verf<72>gung steht.
\index{killall=\texttt{killall}|)}
@ -888,9 +903,11 @@ informieren.
Der zu loggende Text wird einfach als Parameter <20>bergeben.
Die GNU-Version\marginpar{GNU!} verf<72>gt <20>ber einige Parameter, unter anderem
kann die Nachricht mit \texttt{-s} parallel zum System-Log auch auf der
\begin{dinglist}{43}
\item Die GNU-Version verf<72>gt <20>ber einige Parameter, unter anderem kann die
Nachricht mit \texttt{-s} parallel zum System-Log auch auf der
Standard-Fehlerausgabe ausgegeben werden.
\end{dinglist}
\index{logger=\texttt{logger}|)}
@ -902,15 +919,19 @@ Den Inhalt von Verzeichnissen im Dateisystem bringt man mit \texttt{ls} in
Erfahrung. Ein einfacher Aufruf listet lediglich die Dateinamen im aktuellen
oder angegebenen Verzeichnis auf, das Kommando hat aber auch sehr viele
Parameter mit denen sich die Ausgabe anpassen l<><6C>t. Hier sind die wichtigsten,
eine vollst<73>ndige Auflistung bietet wie immer die Man-Page:
eine vollst<73>ndige Auflistung bietet wie immer die Man-Page.
\marginpar{GNU!}\LTXtable{\textwidth}{tab_kommandos_ls_parameter.tex}
\begin{dinglist}{43}
\item Einige der folgenden Parameter entsprechen nicht dem allgemeinen
Standard:
\end{dinglist}
\LTXtable{\textwidth}{tab_kommandos_ls_parameter.tex}
Besonders informativ gibt sich der Parameter \texttt{-l}, da damit auch die
Eigent<EFBFBD>mer und die Berechtigungen der Dateien angezeigt werden. Die Ausgabe hat
die folgende Form:
\texttt{-rw-r--r-- 1 rschaten users 6252 Nov 19 14:14 shell.tex}
\lstinline|-rw-r--r-- 1 rschaten users 6252 Nov 19 14:14 shell.tex|
Die linke Spalte der Ausgabe zeigt die bestehenden Berechtigungen. Es ist ein
Block in der Form `drwxrwxrwx'. An Stelle des d k<>nnen auch andere Buchstaben
@ -985,13 +1006,18 @@ gedreht.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{pgrep}\label{pgrep}\index{pgrep=\texttt{pgrep}|(textbf}\marginpar{GNU!}
\subsection{pgrep}\label{pgrep}\index{pgrep=\texttt{pgrep}|(textbf}
Eine h<>ufig wiederkehrende Aufgabe ist es, zu sehen ob ein bestimmter Proze<7A>
existiert oder nicht. Falls das Kommando \texttt{pgrep} zur Verf<72>gung steht,
kannn man auf das Konstrukt mit \texttt{ps} und \texttt{grep} verzichten. Der
folgende Aufruf liefert alle Proze<7A>-IDs, deren Name httpd enth<74>lt, inclusive
des vollen Kommandos:
\begin{dinglist}{43}
\item Dies ist kein Standard-Kommando, es steht nicht auf allen Systemen zur
Verf<EFBFBD>gung.
\end{dinglist}
Eine h<>ufig wiederkehrende Aufgabe ist es, zu sehen ob ein bestimmter
Proze<EFBFBD> existiert oder nicht. Falls das Kommando \texttt{pgrep} zur Verf<72>gung
steht, kannn man auf das Konstrukt mit \texttt{ps} und \texttt{grep}
verzichten. Der folgende Aufruf liefert alle Proze<7A>-IDs, deren Name httpd
enth<EFBFBD>lt, inclusive des vollen Kommandos:
\lstinline|pgrep -lf httpd|
@ -1012,7 +1038,12 @@ Siehe auch: Abschnitt \ref{beispiele_suchen_prozesse}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{pkill}\label{pkill}\index{pkill=\texttt{pkill}|(textbf}\marginpar{GNU!}
\subsection{pkill}\label{pkill}\index{pkill=\texttt{pkill}|(textbf}
\begin{dinglist}{43}
\item Dies ist kein Standard-Kommando, es steht nicht auf allen Systemen zur
Verf<EFBFBD>gung.
\end{dinglist}
Dieses Kommando ist eng verwandt mit \texttt{pgrep} (Siehe Abschnitt
\ref{pgrep}), es versteht im Wesentlichen die gleichen Parameter. Allerdings
@ -1091,16 +1122,18 @@ In Skripten m
aktiv ist, ob also zum Beispiel ein bestimmter Serverdienst l<>uft. Dazu macht
man \texttt{ps} <20>ber Optionen gespr<70>chiger.
Das Kommando versteht in der GNU-Version\marginpar{GNU!} zwei unterschiedliche
Arten von Optionen. Den sogenannten Unix- bzw. Posix-Stil und den BSD-Stil.
Zus<EFBFBD>tzlich gibt es noch ausf<73>hrliche Parameter, aber die sollen hier nicht
beschrieben werden. Die jeweiligen Formen stehen nicht auf allen Systemen zur
Verf<EFBFBD>gung, wenn ein Skript beispielsweise auch unter Solaris benutzt werden
soll ist man gezwungen, die Unix-Parametrisierung zu benutzen.
\begin{dinglist}{43}
\item Das Kommando versteht in der GNU-Version zwei unterschiedliche Arten von
Optionen. Den sogenannten Unix- bzw. Posix-Stil und den BSD-Stil. Zus<75>tzlich
gibt es noch ausf<73>hrliche Parameter, aber die sollen hier nicht beschrieben
werden. Die jeweiligen Formen stehen nicht auf allen Systemen zur Verf<72>gung,
wenn ein Skript beispielsweise auch unter Solaris benutzt werden soll ist man
gezwungen, die Unix-Parametrisierung zu benutzen.
Unix-Parameter zeichnen sich durch die <20>bliche Angabe mit Bindestrich aus.
BSD-Pa\-ra\-me\-ter werden ohne Bindestrich angegeben, was neben den meisten
anderen Kommandos etwas ungewohnt aussieht.
\end{dinglist}
Es gibt sehr viele verschiedene Parameter, die beste Informationsquelle ist wie
immer die Man-Page bzw. ein entsprechendes Buch. Hier werden nur ein paar
@ -1163,20 +1196,20 @@ vor der Interpretation gesch
bewirkt also eine mehrzeilige Eingabe. Dieses Verhalten kann mit dem Parameter
\texttt{-r} abgeschaltet werden.
Normalerweise wird eine Eingabezeile mit einem Newline abgeschlossen. Mit dem
Parameter \texttt{-d}\marginpar{GNU!} ist es m<>glich, ein anderes
Zeilenendezeichen anzugeben. Beispielsweise liest
\lstinline|read -d " " var| alle Zeichen bis zum ersten Leerzeichen in die
Variable \texttt{var} ein.
\begin{dinglist}{43}
\item Normalerweise wird eine Eingabezeile mit einem Newline abgeschlossen. Mit
dem Parameter \texttt{-d} ist es m<>glich, ein anderes Zeilenendezeichen
anzugeben. Beispielsweise liest \lstinline|read -d " " var| alle Zeichen bis
zum ersten Leerzeichen in die Variable \texttt{var} ein.
Wenn nur eine bestimmte Zahl von Zeichen gelesen werden soll, kann diese durch
den Parameter \texttt{-n}\marginpar{GNU!} angegeben werden. Der Befehl
den Parameter \texttt{-n} angegeben werden. Der Befehl
\lstinline|read -n 5 var| liest die ersten f<>nf Zeichen in die Variable
\texttt{var} ein. Demzufolge kann ein Skript durch ein \lstinline|read -n 1|
dazu gebracht werden, auf einen einzelnen Tastendruck~--~nicht zwingend ein
Return~--~zu warten.
Mit dem Parameter \texttt{-p}\marginpar{GNU!} kann man einen Prompt, also eine
Mit dem Parameter \texttt{-p} kann man einen Prompt, also eine
Eingabeaufforderung ausgeben lassen. \lstinline|read -p "Gib was ein:" var|
schreibt also erst den Text \textit{Gib was ein:} auf das Terminal, bevor die
Eingaben in die Variable \texttt{var} <20>bernommen werden. Dieser Prompt wird nur
@ -1185,11 +1218,12 @@ Eingaben aus einer Datei oder aus einem Stream erh
Wenn die Eingabe von einem Terminal kommt und nicht auf dem Bildschirm
erscheinen soll, zum Beispiel bei Pa<50>wortabfragen, kann die Ausgabe mit dem
Parameter \texttt{-s}\marginpar{GNU!} (Silent) unterdr<64>ckt werden.
Parameter \texttt{-s} (Silent) unterdr<64>ckt werden.
Mit \texttt{-t}\marginpar{GNU!} kann ein Time-Out definiert werden, nach dessen
Ablauf das Kommando mit einem Fehler abbricht. Dieser Parameter ist nur bei
interaktiver Eingabe oder beim Lesen aus einer Pipe aktiv.
Mit \texttt{-t} kann ein Time-Out definiert werden, nach dessen Ablauf das
Kommando mit einem Fehler abbricht. Dieser Parameter ist nur bei interaktiver
Eingabe oder beim Lesen aus einer Pipe aktiv.
\end{dinglist}
Der R<>ckgabewert des \texttt{read}-Kommandos ist 0, es sei denn es trat ein
Timeout oder ein EOF auf.
@ -1209,8 +1243,10 @@ Verzeichnisse k
Gegensatz zu \texttt{rmdir} werden dann auch s<>mtliche enthaltenen Dateien und
Unterverzeichnisse gel<65>scht.
Die GNU-Version\marginpar{GNU!} von \texttt{rm} unterst<73>tzt zus<75>tzlich den
Parameter \texttt{-v}, mit dem jeder L<>schvorgang ausgegeben wird.
\begin{dinglist}{43}
\item Die GNU-Version von \texttt{rm} unterst<73>tzt zus<75>tzlich den Parameter
\texttt{-v}, mit dem jeder L<>schvorgang ausgegeben wird.
\end{dinglist}
\index{rm=\texttt{rm}|)}
@ -1232,7 +1268,12 @@ nicht-leere Verzeichnisse k
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{script}\label{script}\index{script=\texttt{script}|(textbf}\marginpar{GNU!}
\subsection{script}\label{script}\index{script=\texttt{script}|(textbf}
\begin{dinglist}{43}
\item Dies ist kein Standard-Kommando, es steht nicht auf allen Systemen zur
Verf<EFBFBD>gung.
\end{dinglist}
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
@ -1244,6 +1285,7 @@ beendet man den script-Befehl durch die Eingabe von \texttt{exit},
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.
\index{script=\texttt{script}|)}
@ -1293,8 +1335,12 @@ sed -f script.sed datei.txt
Neben den oben erw<72>hnten Parametern kann \texttt{sed} auch mit \texttt{-n}
ruhig gestellt werden. Damit werden die Zeilen nur dann ausgegeben, wenn das
mittels `p' explizit gefordert wird. Die GNU-Version\marginpar{GNU!} stellt
noch ein paar Parameter zur Verf<72>gung, die Man-Page verr<72>t n<>heres.
mittels `p' explizit gefordert wird.
\begin{dinglist}{43}
\item Die GNU-Version stellt noch ein paar Parameter zur Verf<72>gung, die
Man-Page verr<72>t n<>heres.
\end{dinglist}
\subsubsection{Addressierung}
@ -1339,18 +1385,18 @@ Modifikator f
falls mehrere Fundstellen in einer Zeile vorkommen. Der Aufruf sieht wie folgt
aus:
\texttt{s/Suchmuster/Ersatzmuster/g}
\lstinline|s/Suchmuster/Ersatzmuster/g|
Im Ersatzmuster k<>nnen auch Teile der Fundstelle wieder vorkommen, wenn sie
durch Klammern in einen Puffer kopiert werden:
\texttt{s/Seite ([0-9]*) von ([0-9]*)/\textbackslash{}1 aus \textbackslash{}2/}
\lstinline|s/Seite ([0-9]*) von ([0-9]*)/\1 aus \2/|
Mit \texttt{y} hingegen werden einzelne Buchstaben durch andere vertauscht. Das
folgende Kommando wandelt alle eingehenden Kleinbuchstaben in Gro<72>buchstaben
um\footnote{Umlaute und Sonderzeichen ausgeschlossen}:
\texttt{y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/}
\lstinline|y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/|
Normalerweise werden alle Eingabezeilen nach der Bearbeitung wieder ausgegeben,
unabh<EFBFBD>ngig davon ob sie ver<65>ndert wurden oder nicht. Das Verhalten kann <20>ber
@ -1451,7 +1497,12 @@ sed '/./,$!d'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{seq}\label{seq}\index{seq=\texttt{seq}|(textbf}\marginpar{GNU!}
\subsection{seq}\label{seq}\index{seq=\texttt{seq}|(textbf}
\begin{dinglist}{43}
\item Dies ist kein Standard-Kommando, es steht nicht auf allen Systemen zur
Verf<EFBFBD>gung.
\end{dinglist}
Oft wird eine auf- oder absteigende Sequenz aufeinanderfolgender Zahlen
ben<EFBFBD>tigt, beispielsweise um eine Schleife 100 mal zu durchlaufen. Es ist nicht
@ -1479,13 +1530,15 @@ mit f
Das Kommando \texttt{sleep} veranla<6C>t die Shell, f<>r eine angegebene Zeit zu
warten. Die Zeit wird dabei in Sekunden angegeben.
In der GNU-Variante\marginpar{GNU!} von \texttt{sleep} kann die Einheit der
angegebenen Zeitspanne durch Suffixe definiert werden: \lstinline|sleep 10s|
schl<EFBFBD>ft zehn Sekunden, \lstinline|sleep 10m| zehn Minuten. Genauso werden
Stunden (h) und Tage (d) definiert.
\begin{dinglist}{43}
\item In der GNU-Variante von \texttt{sleep} kann die Einheit der angegebenen
Zeitspanne durch Suffixe definiert werden: \lstinline|sleep 10s| schl<EFBFBD>ft zehn
Sekunden, \lstinline|sleep 10m| zehn Minuten. Genauso werden Stunden (h) und
Tage (d) definiert.
Au<EFBFBD>erdem kann die GNU-Variante auch mit nicht-Integer Zeiten arbeiten:
\lstinline|sleep 0.5| schl<68>ft eine halbe Sekunde.
\end{dinglist}
\index{sleep=\texttt{sleep}|)}
@ -1536,8 +1589,10 @@ Parameter \texttt{-n} steuern.
Mit dem Parameter \texttt{-f} (follow) gibt \texttt{tail} neue Zeilen aus,
sobald sie an die Datei angeh<65>ngt werden.
Die GNU-Version\marginpar{GNU!} kann auch das Ende mehrere Dateien ausgeben
bzw. verfolgen, wenn mehrere Namen angegeben werden.
\begin{dinglist}{43}
\item Die GNU-Version kann auch das Ende mehrere Dateien ausgeben bzw.
verfolgen, wenn mehrere Namen angegeben werden.
\end{dinglist}
\index{tail=\texttt{tail}|)}
@ -1692,8 +1747,12 @@ findet sich in Abschnitt \ref{fehlersuche}.
Mit dem Kommando \texttt{uniq} werden doppelt vorkommende Zeilen in einer
Eingabedatei oder der eingehenden Pipe (Standard-Eingabe) bearbeitet. Per
default steht `bearbeitet' an dieser Stelle f<>r `gel<65>scht', aber durch
Parameter kann dieses Verhalten angepa<70>t werden:
Parameter kann dieses Verhalten angepa<70>t werden.
\begin{dinglist}{43}
\item Einige der folgenden Parameter entsprechen nicht dem allgemeinen
Standard:
\end{dinglist}
\LTXtable{\textwidth}{tab_kommandos_uniq_parameter.tex}
Achtung: \texttt{uniq} betrachtet beim Vergleich nur direkt aufeinander
@ -1731,14 +1790,21 @@ Weitaus h
Zeilen z<>hlen lassen. Weiterhin kann man Bytes (\texttt{-c}) oder Zeichen
(\texttt{-m}) z<>hlen lassen.
Der Parameter \texttt{-L} gibt in der GNU-Version \marginpar{GNU!} die L<>nge
der l<>ngsten enthaltenen Zeile aus.
\begin{dinglist}{43}
\item Der Parameter \texttt{-L} gibt in der GNU-Version die L<>nge der l<>ngsten
enthaltenen Zeile aus.
\end{dinglist}
\index{wc=\texttt{wc}|)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{which}\label{which}\index{which=\texttt{which}|(textbf}\marginpar{GNU!}
\subsection{which}\label{which}\index{which=\texttt{which}|(textbf}
\begin{dinglist}{43}
\item Dies ist kein Standard-Kommando, es steht nicht auf allen Systemen zur
Verf<EFBFBD>gung.
\end{dinglist}
Sucht im Pfad (vordefinierte Variable
\texttt{\$PATH}\index{\$PATH=\texttt{\$PATH}}, siehe Abschnitt
@ -1788,12 +1854,14 @@ den \texttt{grep}-Aufruf angeh
werden, wird \texttt{grep} mehrfach aufgerufen, allerdings im Gegensatz zum
obigen Beispiel nicht einmal pro Fundstelle.
Neben einigen anderen Parametern informiert die Manpage der
GNU-Version\marginpar{GNU!} <20>ber die Option \texttt{-r}. Damit kann vermieden
werden, da<64> \texttt{xargs} das Kommando startet wenn keine Eingabe vorhanden
ist. Bezogen auf das angegebene Beispiel w<>rde \texttt{grep} ohne Dateinamen
gestartet, wenn \texttt{find} nichts findet. Es w<>rde auf Input von der
Standardeingabe warten, der aber wahrscheinlich nicht kommt. Das Skript w<>rde
h<EFBFBD>ngen, wenn der Parameter \texttt{-r} nicht angewandt w<>rde.
\begin{dinglist}{43}
\item Neben einigen anderen Parametern informiert die Manpage der GNU-Version
<EFBFBD>ber die Option \texttt{-r}. Damit kann vermieden werden, da<64> \texttt{xargs}
das Kommando startet wenn keine Eingabe vorhanden ist. Bezogen auf das
angegebene Beispiel w<>rde \texttt{grep} ohne Dateinamen gestartet, wenn
\texttt{find} nichts findet. Es w<>rde auf Input von der Standardeingabe warten,
der aber wahrscheinlich nicht kommt. Das Skript w<>rde h<>ngen, wenn der
Parameter \texttt{-r} nicht angewandt w<>rde.
\end{dinglist}
\index{xargs=\texttt{xargs}|)}