|
|
|
@ -44,13 +44,19 @@ typische Aufgaben beschrieben. Diese enthalten `Links' zu den in Frage
|
|
|
|
|
kommenden Werkzeugen. Danach gibt es eine alphabetische Aufzählung der
|
|
|
|
|
wichtigsten Kommandos.
|
|
|
|
|
|
|
|
|
|
Das GNU-Projekt\marginpar{GNU!} hat vielen Kommandos nützliche Parameter
|
|
|
|
|
zugefügt, einige der hier beschriebenen Tools stehen ausschließlich auf
|
|
|
|
|
GNU-Systemen zur Verfügung. Da diese Optionen nicht auf allen Unix-Systemen zur
|
|
|
|
|
Verfügung stehen, werden die betroffenen Stellen wie dieser Absatz am Rand mit
|
|
|
|
|
`GNU!' markiert. Wenn diese Kommandos und Optionen benutzt werden muß also das
|
|
|
|
|
Zielsystem berücksichtigt werden, im Zweifelsfall sollten die Skripte
|
|
|
|
|
ausführlich getestet werden.
|
|
|
|
|
\begin{dinglist}{43}
|
|
|
|
|
\item Viele der hier vorgestellten Kommandos stehen in erweiterten Versionen
|
|
|
|
|
zur Verfü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ßen: Wenn sie zum Einsatz kommen sind die entstehenden Skripte nicht mehr
|
|
|
|
|
plattformunabhängig.
|
|
|
|
|
|
|
|
|
|
Um Ü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ä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 übergeben, das nur
|
|
|
|
|
von der Standardeingabe lesen kann (Filter).
|
|
|
|
|
|
|
|
|
|
GNU-\texttt{cat}\marginpar{GNU!} verfügt ü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ßt werden.
|
|
|
|
|
\begin{dinglist}{43}
|
|
|
|
|
\item GNU-\texttt{cat} verfügt ü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ß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ügung.
|
|
|
|
|
\end{dinglist}
|
|
|
|
|
|
|
|
|
|
Mit diesem Kommando bietet sich dem Administrator des Systems die
|
|
|
|
|
Mög\-lich\-keit, scriptgesteuert die Paßwörter für neue Benutzer zu vergeben.
|
|
|
|
|
Manuell ändert man ein Paß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äßt sich die Ausgabe von Unterschieden unterdrü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ß sich weigert zu sterben, wartet \texttt{killall} ewig.
|
|
|
|
|
|
|
|
|
|
Eine ähnliche Funktionalität bietet auch das Kommando \texttt{pkill} (Abschnitt
|
|
|
|
|
\ref{pkill}), \texttt{killall} hat aber den Vorteil daß es auf mehr Systemen
|
|
|
|
|
zur Verfügung steht.
|
|
|
|
|
\ref{pkill}), allerdings hat \texttt{killall} den Vorteil daß es auf mehr
|
|
|
|
|
Systemen zur Verfügung steht.
|
|
|
|
|
|
|
|
|
|
\index{killall=\texttt{killall}|)}
|
|
|
|
|
|
|
|
|
@ -888,9 +903,11 @@ informieren.
|
|
|
|
|
|
|
|
|
|
Der zu loggende Text wird einfach als Parameter übergeben.
|
|
|
|
|
|
|
|
|
|
Die GNU-Version\marginpar{GNU!} verfügt ü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ügt ü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äßt. Hier sind die wichtigsten,
|
|
|
|
|
eine vollständige Auflistung bietet wie immer die Man-Page:
|
|
|
|
|
eine vollstä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ü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ß
|
|
|
|
|
existiert oder nicht. Falls das Kommando \texttt{pgrep} zur Verfügung steht,
|
|
|
|
|
kannn man auf das Konstrukt mit \texttt{ps} und \texttt{grep} verzichten. Der
|
|
|
|
|
folgende Aufruf liefert alle Prozeß-IDs, deren Name httpd enthält, inclusive
|
|
|
|
|
des vollen Kommandos:
|
|
|
|
|
\begin{dinglist}{43}
|
|
|
|
|
\item Dies ist kein Standard-Kommando, es steht nicht auf allen Systemen zur
|
|
|
|
|
Verfügung.
|
|
|
|
|
\end{dinglist}
|
|
|
|
|
|
|
|
|
|
Eine häufig wiederkehrende Aufgabe ist es, zu sehen ob ein bestimmter
|
|
|
|
|
Prozeß existiert oder nicht. Falls das Kommando \texttt{pgrep} zur Verfügung
|
|
|
|
|
steht, kannn man auf das Konstrukt mit \texttt{ps} und \texttt{grep}
|
|
|
|
|
verzichten. Der folgende Aufruf liefert alle Prozeß-IDs, deren Name httpd
|
|
|
|
|
enthä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ü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} über Optionen gesprä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ätzlich gibt es noch ausführliche Parameter, aber die sollen hier nicht
|
|
|
|
|
beschrieben werden. Die jeweiligen Formen stehen nicht auf allen Systemen zur
|
|
|
|
|
Verfü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ätzlich
|
|
|
|
|
gibt es noch ausführliche Parameter, aber die sollen hier nicht beschrieben
|
|
|
|
|
werden. Die jeweiligen Formen stehen nicht auf allen Systemen zur Verfü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 ü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} ü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ßwortabfragen, kann die Ausgabe mit dem
|
|
|
|
|
Parameter \texttt{-s}\marginpar{GNU!} (Silent) unterdrückt werden.
|
|
|
|
|
Parameter \texttt{-s} (Silent) unterdrü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öscht.
|
|
|
|
|
|
|
|
|
|
Die GNU-Version\marginpar{GNU!} von \texttt{rm} unterstützt zusätzlich den
|
|
|
|
|
Parameter \texttt{-v}, mit dem jeder Löschvorgang ausgegeben wird.
|
|
|
|
|
\begin{dinglist}{43}
|
|
|
|
|
\item Die GNU-Version von \texttt{rm} unterstützt zusä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ügung.
|
|
|
|
|
\end{dinglist}
|
|
|
|
|
|
|
|
|
|
Dieses Kommando eignet sich vorzü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ä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ügung, die Man-Page verrät näheres.
|
|
|
|
|
mittels `p' explizit gefordert wird.
|
|
|
|
|
|
|
|
|
|
\begin{dinglist}{43}
|
|
|
|
|
\item Die GNU-Version stellt noch ein paar Parameter zur Verfügung, die
|
|
|
|
|
Man-Page verrä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ß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ängig davon ob sie verändert wurden oder nicht. Das Verhalten kann ü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ügung.
|
|
|
|
|
\end{dinglist}
|
|
|
|
|
|
|
|
|
|
Oft wird eine auf- oder absteigende Sequenz aufeinanderfolgender Zahlen
|
|
|
|
|
benötigt, beispielsweise um eine Schleife 100 mal zu durchlaufen. Es ist nicht
|
|
|
|
@ -1479,13 +1530,15 @@ mit f
|
|
|
|
|
Das Kommando \texttt{sleep} veranlaß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ä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äft zehn
|
|
|
|
|
Sekunden, \lstinline|sleep 10m| zehn Minuten. Genauso werden Stunden (h) und
|
|
|
|
|
Tage (d) definiert.
|
|
|
|
|
|
|
|
|
|
Außerdem kann die GNU-Variante auch mit nicht-Integer Zeiten arbeiten:
|
|
|
|
|
\lstinline|sleep 0.5| schlä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ä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öscht', aber durch
|
|
|
|
|
Parameter kann dieses Verhalten angepaßt werden:
|
|
|
|
|
Parameter kann dieses Verhalten angepaß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ü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!} über die Option \texttt{-r}. Damit kann vermieden
|
|
|
|
|
werden, daß \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.
|
|
|
|
|
\begin{dinglist}{43}
|
|
|
|
|
\item Neben einigen anderen Parametern informiert die Manpage der GNU-Version
|
|
|
|
|
über die Option \texttt{-r}. Damit kann vermieden werden, daß \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}|)}
|
|
|
|
|