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

@ -115,20 +115,28 @@ Standardeingabe der Schleife (und somit auf das \texttt{read}-Kommando) legen.
\section{Ein typisches Init-Skript}\label{init-skript}\index{Init-Skript} \section{Ein typisches Init-Skript}\label{init-skript}\index{Init-Skript}
Dieses Skript dient dazu, den Apache HTTP-Server zu starten. Es wird w<>hrend des Bootvorgangs gestartet, wenn der dazugeh<65>rige Runlevel initialisiert wird. Dieses Skript dient dazu, den Apache HTTP-Server zu starten. Es wird w<>hrend
des Bootvorgangs gestartet, wenn der dazugeh<65>rige Runlevel initialisiert wird.
Das Skript mu<6D> mit einem Parameter\index{Parameter} aufgerufen werden. M<>glich sind hier \textsl{start}, \textsl{stop}, \textsl{status}, \textsl{restart} und \textsl{reload}. Wenn falsche Parameter\index{Parameter} <20>bergeben wurden, wird eine entsprechende Meldung angezeigt. Das Skript mu<6D> mit einem Parameter\index{Parameter} aufgerufen werden. M<>glich
sind hier \textsl{start}, \textsl{stop}, \textsl{status}, \textsl{restart} und
\textsl{reload}. Wenn falsche Parameter\index{Parameter} <20>bergeben wurden, wird
eine entsprechende Meldung angezeigt.
Das Ergebnis der Ausf<73>hrung wird mit Funktionen\index{Funktion} dargestellt, die aus der Datei \texttt{/etc/rc.d/init.d/functions} stammen. Ebenfalls in dieser Datei sind Funktionen, die einen Dienst starten oder stoppen. Das Ergebnis der Ausf<73>hrung wird mit Funktionen\index{Funktion} dargestellt,
die aus der Datei \lstinline|functions| stammen. Ebenfalls in dieser Datei sind
Funktionen, die einen Dienst starten oder stoppen.
Zun<EFBFBD>chst wird festgelegt, da<64> dieses Skript in der Bourne-Shell ausgef<65>hrt werden soll (\ref{auswahl_der_shell}). Zun<EFBFBD>chst wird festgelegt, da<64> dieses Skript in der Bourne-Shell ausgef<65>hrt
werden soll (\ref{auswahl_der_shell}).
\begin{lstlisting} \begin{lstlisting}
#!/bin/sh #!/bin/sh
\end{lstlisting} \end{lstlisting}
Dann folgen Kommentare\index{Kommentar}, die den Sinn des Skriptes erl<72>utern (\ref{kommentare}). Dann folgen Kommentare\index{Kommentar}, die den Sinn des Skriptes erl<72>utern
(\ref{kommentare}).
\begin{lstlisting}[firstnumber=last] \begin{lstlisting}[firstnumber=last]
# #
@ -310,7 +318,7 @@ echo "aflag=$aflag / Name = $name / Die Dateien sind $*"
\section{Fallensteller: Auf Traps reagieren}\label{traps}\index{trap=\texttt{trap}|(}\index{Signal|(} \section{Fallensteller: Auf Traps reagieren}\label{traps}\index{trap=\texttt{trap}|(}\index{Signal|(}
Ein laufendes Shell-Skript kann durch Druck auf die Interrupt-Taste Ein laufendes Shell-Skript kann durch Druck auf die Interrupt-Taste
(normalerweise \Ovalbox{CTRL}+\Ovalbox{C}) unterbrochen werden. Durch Druck auf (\Ovalbox{CTRL}+\Ovalbox{C}) unterbrochen werden. Durch Druck auf
diese Taste wird ein Signal an den entsprechenden Proze<7A> gesandt, das ihn diese Taste wird ein Signal an den entsprechenden Proze<7A> gesandt, das ihn
bittet sich zu beenden. Dieses Signal hei<65>t SIGINT (f<>r SIGnal INTerrupt) und bittet sich zu beenden. Dieses Signal hei<65>t SIGINT (f<>r SIGnal INTerrupt) und
tr<EFBFBD>gt die Nummer 2. Das kann ein kleines Problem darstellen, wenn das Skript tr<EFBFBD>gt die Nummer 2. Das kann ein kleines Problem darstellen, wenn das Skript

View File

@ -132,8 +132,10 @@ M```+$P$`FIP8````!&=!34$``+&.?/M1DP```"!C2%)-``!Z)0``@(,``/G_
\end{lstlisting} \end{lstlisting}
Nach einem Hinweis wird also das Here-Dokument als Eingabe f<>r das Tool Nach einem Hinweis wird also das Here-Dokument als Eingabe f<>r das Tool
\texttt{uudecode} benutzt. Erstellt wurde das Dokument mit einer Zeile in der \texttt{uudecode} benutzt. Erstellt wurde das Dokument mit einer Zeile der
Form \texttt{uuencode icon.png icon.png}. folgenden Form:
\lstinline|uuencode icon.png icon.png|
Wie man sieht ist der Name der Datei in dem Here-Dokument enthalten. Die Datei Wie man sieht ist der Name der Datei in dem Here-Dokument enthalten. Die Datei
wird entpackt und unter diesem gespeichert. In der `realen Welt' mu<6D> an der wird entpackt und unter diesem gespeichert. In der `realen Welt' mu<6D> an der
@ -172,11 +174,11 @@ werden mu
Dabei gibt es zwei Methoden, die angeh<65>ngte Datei wieder abzuschneiden. Die Dabei gibt es zwei Methoden, die angeh<65>ngte Datei wieder abzuschneiden. Die
einfachere Methode funktioniert mit \texttt{tail}: einfachere Methode funktioniert mit \texttt{tail}:
\texttt{tail -n +227 \$0 > icon.png} \lstinline|tail -n +227 $0 > icon.png|
Dieses Beispiel geht davon aus, da<64> das Skript selbst 227 Zeilen umfa<66>t. Die Dieses Beispiel geht davon aus, da<64> das Skript selbst 227 Zeilen umfa<66>t. Die
bin<EFBFBD>re Datei wurde mit einem Kommando wie \texttt{cat icon.png >> skript.sh} an bin<EFBFBD>re Datei wurde mit einem Kommando wie \lstinline|cat icon.png >> skript.sh|
das Skript angeh<65>ngt. an das Skript angeh<65>ngt.
F<EFBFBD>r die etwas kompliziertere Variante mu<6D> die L<>nge des eigentlichen F<EFBFBD>r die etwas kompliziertere Variante mu<6D> die L<>nge des eigentlichen
Skript-Teiles genau angepa<70>t werden. Wenn das Skript beispielsweise etwa 5,5kB Skript-Teiles genau angepa<70>t werden. Wenn das Skript beispielsweise etwa 5,5kB
@ -184,7 +186,7 @@ lang ist, m
werden, damit sich eine L<>nge von 6kB ergibt. Dann kann das Anh<6E>ngsel mit dem werden, damit sich eine L<>nge von 6kB ergibt. Dann kann das Anh<6E>ngsel mit dem
Kommando \texttt{dd} in der folgenden Form abgeschnitten werden: Kommando \texttt{dd} in der folgenden Form abgeschnitten werden:
\texttt{dd bs=1024 if=\$0 of=icon.png skip=6} \lstinline|dd bs=1024 if=$0 of=icon.png skip=6|
Das Kommando kopiert Daten aus einer Eingabe- in eine Ausgabedatei. Im Das Kommando kopiert Daten aus einer Eingabe- in eine Ausgabedatei. Im
einzelnen wird hier eine Blockgr<67><72>e (blocksize, bs) von 1024 Bytes festgelegt. einzelnen wird hier eine Blockgr<67><72>e (blocksize, bs) von 1024 Bytes festgelegt.
@ -248,8 +250,10 @@ Bei einfachen Zahlenwerten k
Komplexere Informationen k<>nnen in eine tempor<6F>re Datei geschrieben werden, die Komplexere Informationen k<>nnen in eine tempor<6F>re Datei geschrieben werden, die
danach geparst werden m<><6D>te. Wenn die Informationen in Zeilen der Form danach geparst werden m<><6D>te. Wenn die Informationen in Zeilen der Form
\lstinline|VARIABLE="Wert"| gespeichert werden, kann die Datei einfach mittels \lstinline|VARIABLE="Wert"| gespeichert werden, kann die Datei einfach mittels
\texttt{source} (Abschnitt \ref{source}) oder einem Konstrukt der Art \texttt{source} (Abschnitt \ref{source}) oder einem Konstrukt der folgenden Art
\texttt{eval `cat tempfile`} gelesen werden. gelesen werden:
\lstinline|eval `cat tempfile`|
Und genau mit dieser <20>berlegung kommen wir zu einem eleganten~--~wenn auch Und genau mit dieser <20>berlegung kommen wir zu einem eleganten~--~wenn auch
nicht ganz einfachen~--~Trick. nicht ganz einfachen~--~Trick.

View File

@ -28,6 +28,7 @@
\usepackage{mathptmx} % Andere Schriften benutzen \usepackage{mathptmx} % Andere Schriften benutzen
\usepackage[scaled=.90]{helvet} \usepackage[scaled=.90]{helvet}
\usepackage{courier} \usepackage{courier}
\usepackage{pifont} % f<>r dinglist (Icon neben Text)
%\usepackage[dvips]{graphicx} % Grafikpaket f<>r Bilder laden %\usepackage[dvips]{graphicx} % Grafikpaket f<>r Bilder laden
%\usepackage{epstopdf} % .eps bei Bedarf nach .pdf wandeln %\usepackage{epstopdf} % .eps bei Bedarf nach .pdf wandeln
@ -97,7 +98,7 @@
\rule{5in}{.04in}\\ \vspace{.25in} \rule{5in}{.04in}\\ \vspace{.25in}
\Huge {\bf SHELL\\ \vspace{.4in} PROGRAMMIERUNG}\\ \vspace{.1in} \Huge {\bf SHELL\\ \vspace{.4in} PROGRAMMIERUNG}\\ \vspace{.1in}
\rule{5in}{.04in}\\ \vspace{.6in} \rule{5in}{.04in}\\ \vspace{.6in}
\large v2.0.0 RC1\\ \large v2.0.0 RC2\\
\large \today\\ \vspace{.75in} \large \today\\ \vspace{.75in}
\large von\\ \vspace{.3in} \large von\\ \vspace{.3in}
\LARGE {\bf Ronald Schaten} \\ \vspace{.6in} \LARGE {\bf Ronald Schaten} \\ \vspace{.6in}
@ -109,7 +110,7 @@
~\vfill ~\vfill
% Syntax-Boxen (sybox) definieren: % Syntax-Boxen (sybox) definieren:
TODO: Breite der sybox anpassen % TODO: Breite der sybox anpassen:
\fboxsep 1.36mm \fboxsep 1.36mm
\definecolor{g1}{gray}{0.95} \definecolor{g1}{gray}{0.95}
\newsavebox{\syntaxbox} \newsavebox{\syntaxbox}

View File

@ -10,14 +10,14 @@
\texttt{-1} & Formatiert die Ausgabe einspaltig \tabularnewline\STRUT \texttt{-1} & Formatiert die Ausgabe einspaltig \tabularnewline\STRUT
\texttt{-a} & Zeigt alle Dateien an, auch solche deren Name mit einem Punkt anf<6E>ngt \tabularnewline\STRUT \texttt{-a} & Zeigt alle Dateien an, auch solche deren Name mit einem Punkt anf<6E>ngt \tabularnewline\STRUT
\texttt{-A} & GNU-Erweiterung: Zeigt `fast alle' Dateien an, also auch alle deren Name mit einem Punkt anf<6E>ngt, allerdings nicht `.' und `..', die in jedem Verzeichnis vorkommen \tabularnewline\STRUT \texttt{-A} & \ding{43} Zeigt `fast alle' Dateien an, also auch alle deren Name mit einem Punkt anf<6E>ngt, allerdings nicht `.' und `..', die in jedem Verzeichnis vorkommen \tabularnewline\STRUT
\texttt{-d} & Verzeichnisse werden behandelt wie jede andere Datei auch, ein \texttt{ls -ld verzeichnis} gibt also die Eigenschaften des Verzeichnisses aus, nicht dessen Inhalt \tabularnewline\STRUT \texttt{-d} & Verzeichnisse werden behandelt wie jede andere Datei auch, ein \texttt{ls -ld verzeichnis} gibt also die Eigenschaften des Verzeichnisses aus, nicht dessen Inhalt \tabularnewline\STRUT
\texttt{-h} & GNU-Erweiterung: Gibt bei einer langen Ausgabe mittels \texttt{-l} die Gr<47><72>e der Datei `human readable' aus, also nicht zwingend in Bytes \tabularnewline\STRUT \texttt{-h} & \ding{43} Gibt bei einer langen Ausgabe mittels \texttt{-l} die Gr<47><72>e der Datei `human readable' aus, also nicht zwingend in Bytes \tabularnewline\STRUT
\texttt{-l} & Lange Ausgabe, inklusiv der Dateiattribute \tabularnewline\STRUT \texttt{-l} & Lange Ausgabe, inklusiv der Dateiattribute \tabularnewline\STRUT
\texttt{-L} & GNU-Erweiterung: `Dereferenziert' Links vor der Ausgabe. Es werden nicht die Eigenschaften des Links angezeigt, sondern die der verlinkten Datei \tabularnewline\STRUT \texttt{-L} & \ding{43} `Dereferenziert' Links vor der Ausgabe. Es werden nicht die Eigenschaften des Links angezeigt, sondern die der verlinkten Datei \tabularnewline\STRUT
\texttt{-r} & Sortierreihenfolge umkehren \tabularnewline\STRUT \texttt{-r} & Sortierreihenfolge umkehren \tabularnewline\STRUT
\texttt{-R} & Rekursiv in Verzeichnisse absteigen und deren Inhalte anzeigen \tabularnewline\STRUT \texttt{-R} & Rekursiv in Verzeichnisse absteigen und deren Inhalte anzeigen \tabularnewline\STRUT
\texttt{-S} & GNU-Erweiterung: Nach der Gr<47><72>e der Datei sortieren \tabularnewline\STRUT \texttt{-S} & \ding{43} Nach der Gr<47><72>e der Datei sortieren \tabularnewline\STRUT
\texttt{-t} & Nach der letzten <20>nderungszeit sortieren \tabularnewline\STRUT \texttt{-t} & Nach der letzten <20>nderungszeit sortieren \tabularnewline\STRUT
\texttt{-X} & GNU-Erweiterung: Nach der Extension (also dem Namensteil nach dem letzten Punkt) sortieren \texttt{-X} & \ding{43} Nach der Extension (also dem Namensteil nach dem letzten Punkt) sortieren
\end{longtable} \end{longtable}

View File

@ -10,10 +10,10 @@
\texttt{-c} & Anzahl der Vorkommnisse vor die Zeilen schreiben \tabularnewline\STRUT \texttt{-c} & Anzahl der Vorkommnisse vor die Zeilen schreiben \tabularnewline\STRUT
\texttt{-d} & Nur doppelte Zeilen ausgeben, jede nur einmal \tabularnewline\STRUT \texttt{-d} & Nur doppelte Zeilen ausgeben, jede nur einmal \tabularnewline\STRUT
\texttt{-D} & GNU-Erweiterung: Alle doppelten Zeilen ausgeben \tabularnewline\STRUT \texttt{-D} & \ding{43} Alle doppelten Zeilen ausgeben \tabularnewline\STRUT
\texttt{-f }\textsl{n} & Die ersten \textsl{n} Felder ignorieren \tabularnewline\STRUT \texttt{-f }\textsl{n} & Die ersten \textsl{n} Felder ignorieren \tabularnewline\STRUT
\texttt{-i} & GNU-Erweiterung: Gro<72>- / Kleinschreibung ignorieren \tabularnewline\STRUT \texttt{-i} & \ding{43} Gro<72>- / Kleinschreibung ignorieren \tabularnewline\STRUT
\texttt{-s }\textsl{n} & Die ersten \textsl{n} Zeichen ignorieren \tabularnewline\STRUT \texttt{-s }\textsl{n} & Die ersten \textsl{n} Zeichen ignorieren \tabularnewline\STRUT
\texttt{-u} & Nur einfach vorkommende Zeilen ausgeben \tabularnewline\STRUT \texttt{-u} & Nur einfach vorkommende Zeilen ausgeben \tabularnewline\STRUT
\texttt{-w }\textsl{n} & GNU-Erweiterung: Nur die ersten \textsl{n} Zeichen betrachten \texttt{-w }\textsl{n} & \ding{43} Nur die ersten \textsl{n} Zeichen betrachten
\end{longtable} \end{longtable}

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 kommenden Werkzeugen. Danach gibt es eine alphabetische Aufz<66>hlung der
wichtigsten Kommandos. wichtigsten Kommandos.
Das GNU-Projekt\marginpar{GNU!} hat vielen Kommandos n<>tzliche Parameter \begin{dinglist}{43}
zugef<EFBFBD>gt, einige der hier beschriebenen Tools stehen ausschlie<69>lich auf \item Viele der hier vorgestellten Kommandos stehen in erweiterten Versionen
GNU-Systemen zur Verf<72>gung. Da diese Optionen nicht auf allen Unix-Systemen zur zur Verf<72>gung. Besonders auf GNU-Systemen~--~und somit auch auf Linux~--~gibt
Verf<EFBFBD>gung stehen, werden die betroffenen Stellen wie dieser Absatz am Rand mit es viele sehr n<>tzliche Parameter, die man sich auf `standardkonformeren'
`GNU!' markiert. Wenn diese Kommandos und Optionen benutzt werden mu<6D> also das Systemen nur w<>nschen kann. Diese Vorteile sind allerdings mit Vorsicht zu
Zielsystem ber<65>cksichtigt werden, im Zweifelsfall sollten die Skripte genie<EFBFBD>en: Wenn sie zum Einsatz kommen sind die entstehenden Skripte nicht mehr
ausf<EFBFBD>hrlich getestet werden. 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} \section{N<EFBFBD>gel...}\label{naegel}
@ -295,7 +301,7 @@ Prozeduren verwendet werden k
\LTXtable{\textwidth}{tab_kommandos_awk_variablen.tex} \LTXtable{\textwidth}{tab_kommandos_awk_variablen.tex}
Eigene Variablen k<>nnen nach Belieben verwendet werden, siehe dazu das Beispiel 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} \subsubsection{Beispiele}
@ -397,10 +403,12 @@ Au
\lstinline|cat datei.txt | kommando| Daten an ein Programm <20>bergeben, das nur \lstinline|cat datei.txt | kommando| Daten an ein Programm <20>bergeben, das nur
von der Standardeingabe lesen kann (Filter). von der Standardeingabe lesen kann (Filter).
GNU-\texttt{cat}\marginpar{GNU!} verf<72>gt <20>ber eine Reihe von Parametern, um die \begin{dinglist}{43}
Ausgabe zu formatieren, so k<>nnen mit \texttt{-n} bzw. \texttt{-b} die Zeilen \item GNU-\texttt{cat} verf<EFBFBD>gt <20>ber eine Reihe von Parametern, um die Ausgabe
numeriert werden, oder mit \texttt{-s} mehrere Zeilen zu einer einzigen zu formatieren, so k<>nnen mit \texttt{-n} bzw. \texttt{-b} die Zeilen numeriert
zusammengefa<EFBFBD>t werden. werden, oder mit \texttt{-s} mehrere Zeilen zu einer einzigen zusammengefa<EFBFBD>t
werden.
\end{dinglist}
\index{cat=\texttt{cat}|)} \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. 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 Manuell <20>ndert man ein Pa<50>wort mit dem Kommando
\texttt{passwd}\index{passwd=\texttt{passwd}}, allerdings l<>scht (flusht) \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 Durch \texttt{-s} l<><6C>t sich die Ausgabe von Unterschieden unterdr<64>cken, der
Exit-Status gibt weiterhin das Ergebnis an. Exit-Status gibt weiterhin das Ergebnis an.
In der GNU-Version\marginpar{GNU!} gibt es auch Parameter, mit denen Bereiche \begin{dinglist}{43}
der Datei vom Vergleich ausgeschlossen werden k<>nnen (\texttt{-i}), oder mit \item In der GNU-Version gibt es auch Parameter, mit denen Bereiche der Datei
denen nur die ersten n Bytes der Dateien verglichen werden (\texttt{-n}). 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}|)} \index{cmp=\texttt{cmp}|)}
@ -873,8 +888,8 @@ Empf
Wenn der Proze<7A> sich weigert zu sterben, wartet \texttt{killall} ewig. 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 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 \ref{pkill}), allerdings hat \texttt{killall} den Vorteil da<64> es auf mehr
zur Verf<72>gung steht. Systemen zur Verf<72>gung steht.
\index{killall=\texttt{killall}|)} \index{killall=\texttt{killall}|)}
@ -888,9 +903,11 @@ informieren.
Der zu loggende Text wird einfach als Parameter <20>bergeben. Der zu loggende Text wird einfach als Parameter <20>bergeben.
Die GNU-Version\marginpar{GNU!} verf<72>gt <20>ber einige Parameter, unter anderem \begin{dinglist}{43}
kann die Nachricht mit \texttt{-s} parallel zum System-Log auch auf der \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. Standard-Fehlerausgabe ausgegeben werden.
\end{dinglist}
\index{logger=\texttt{logger}|)} \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 Erfahrung. Ein einfacher Aufruf listet lediglich die Dateinamen im aktuellen
oder angegebenen Verzeichnis auf, das Kommando hat aber auch sehr viele 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, 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 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 Eigent<EFBFBD>mer und die Berechtigungen der Dateien angezeigt werden. Die Ausgabe hat
die folgende Form: 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 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 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> \begin{dinglist}{43}
existiert oder nicht. Falls das Kommando \texttt{pgrep} zur Verf<72>gung steht, \item Dies ist kein Standard-Kommando, es steht nicht auf allen Systemen zur
kannn man auf das Konstrukt mit \texttt{ps} und \texttt{grep} verzichten. Der Verf<EFBFBD>gung.
folgende Aufruf liefert alle Proze<7A>-IDs, deren Name httpd enth<74>lt, inclusive \end{dinglist}
des vollen Kommandos:
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| \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 Dieses Kommando ist eng verwandt mit \texttt{pgrep} (Siehe Abschnitt
\ref{pgrep}), es versteht im Wesentlichen die gleichen Parameter. Allerdings \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 aktiv ist, ob also zum Beispiel ein bestimmter Serverdienst l<>uft. Dazu macht
man \texttt{ps} <20>ber Optionen gespr<70>chiger. man \texttt{ps} <20>ber Optionen gespr<70>chiger.
Das Kommando versteht in der GNU-Version\marginpar{GNU!} zwei unterschiedliche \begin{dinglist}{43}
Arten von Optionen. Den sogenannten Unix- bzw. Posix-Stil und den BSD-Stil. \item Das Kommando versteht in der GNU-Version zwei unterschiedliche Arten von
Zus<EFBFBD>tzlich gibt es noch ausf<73>hrliche Parameter, aber die sollen hier nicht Optionen. Den sogenannten Unix- bzw. Posix-Stil und den BSD-Stil. Zus<75>tzlich
beschrieben werden. Die jeweiligen Formen stehen nicht auf allen Systemen zur gibt es noch ausf<73>hrliche Parameter, aber die sollen hier nicht beschrieben
Verf<EFBFBD>gung, wenn ein Skript beispielsweise auch unter Solaris benutzt werden werden. Die jeweiligen Formen stehen nicht auf allen Systemen zur Verf<72>gung,
soll ist man gezwungen, die Unix-Parametrisierung zu benutzen. 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. 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 BSD-Pa\-ra\-me\-ter werden ohne Bindestrich angegeben, was neben den meisten
anderen Kommandos etwas ungewohnt aussieht. anderen Kommandos etwas ungewohnt aussieht.
\end{dinglist}
Es gibt sehr viele verschiedene Parameter, die beste Informationsquelle ist wie Es gibt sehr viele verschiedene Parameter, die beste Informationsquelle ist wie
immer die Man-Page bzw. ein entsprechendes Buch. Hier werden nur ein paar 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 bewirkt also eine mehrzeilige Eingabe. Dieses Verhalten kann mit dem Parameter
\texttt{-r} abgeschaltet werden. \texttt{-r} abgeschaltet werden.
Normalerweise wird eine Eingabezeile mit einem Newline abgeschlossen. Mit dem \begin{dinglist}{43}
Parameter \texttt{-d}\marginpar{GNU!} ist es m<>glich, ein anderes \item Normalerweise wird eine Eingabezeile mit einem Newline abgeschlossen. Mit
Zeilenendezeichen anzugeben. Beispielsweise liest dem Parameter \texttt{-d} ist es m<>glich, ein anderes Zeilenendezeichen
\lstinline|read -d " " var| alle Zeichen bis zum ersten Leerzeichen in die anzugeben. Beispielsweise liest \lstinline|read -d " " var| alle Zeichen bis
Variable \texttt{var} ein. zum ersten Leerzeichen in die Variable \texttt{var} ein.
Wenn nur eine bestimmte Zahl von Zeichen gelesen werden soll, kann diese durch 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 \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| \texttt{var} ein. Demzufolge kann ein Skript durch ein \lstinline|read -n 1|
dazu gebracht werden, auf einen einzelnen Tastendruck~--~nicht zwingend ein dazu gebracht werden, auf einen einzelnen Tastendruck~--~nicht zwingend ein
Return~--~zu warten. 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| Eingabeaufforderung ausgeben lassen. \lstinline|read -p "Gib was ein:" var|
schreibt also erst den Text \textit{Gib was ein:} auf das Terminal, bevor die 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 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 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 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 Mit \texttt{-t} kann ein Time-Out definiert werden, nach dessen Ablauf das
Ablauf das Kommando mit einem Fehler abbricht. Dieser Parameter ist nur bei Kommando mit einem Fehler abbricht. Dieser Parameter ist nur bei interaktiver
interaktiver Eingabe oder beim Lesen aus einer Pipe aktiv. 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 Der R<>ckgabewert des \texttt{read}-Kommandos ist 0, es sei denn es trat ein
Timeout oder ein EOF auf. Timeout oder ein EOF auf.
@ -1209,8 +1243,10 @@ Verzeichnisse k
Gegensatz zu \texttt{rmdir} werden dann auch s<>mtliche enthaltenen Dateien und Gegensatz zu \texttt{rmdir} werden dann auch s<>mtliche enthaltenen Dateien und
Unterverzeichnisse gel<65>scht. Unterverzeichnisse gel<65>scht.
Die GNU-Version\marginpar{GNU!} von \texttt{rm} unterst<73>tzt zus<75>tzlich den \begin{dinglist}{43}
Parameter \texttt{-v}, mit dem jeder L<>schvorgang ausgegeben wird. \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}|)} \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 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 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 Script schreibt alle Ein- und Ausgaben die an dem Terminal vorgenommen werden
in die angegebene Datei. So kann man auch interaktive Skripte relativ leicht in die angegebene Datei. So kann man auch interaktive Skripte relativ leicht
debuggen, da sowohl Ein- als auch Ausgaben in dem Logfile sichtbar sind. debuggen, da sowohl Ein- als auch Ausgaben in dem Logfile sichtbar sind.
\index{script=\texttt{script}|)} \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} 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 ruhig gestellt werden. Damit werden die Zeilen nur dann ausgegeben, wenn das
mittels `p' explizit gefordert wird. Die GNU-Version\marginpar{GNU!} stellt mittels `p' explizit gefordert wird.
noch ein paar Parameter zur Verf<72>gung, die Man-Page verr<72>t n<>heres.
\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} \subsubsection{Addressierung}
@ -1339,18 +1385,18 @@ Modifikator f
falls mehrere Fundstellen in einer Zeile vorkommen. Der Aufruf sieht wie folgt falls mehrere Fundstellen in einer Zeile vorkommen. Der Aufruf sieht wie folgt
aus: aus:
\texttt{s/Suchmuster/Ersatzmuster/g} \lstinline|s/Suchmuster/Ersatzmuster/g|
Im Ersatzmuster k<>nnen auch Teile der Fundstelle wieder vorkommen, wenn sie Im Ersatzmuster k<>nnen auch Teile der Fundstelle wieder vorkommen, wenn sie
durch Klammern in einen Puffer kopiert werden: 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 Mit \texttt{y} hingegen werden einzelne Buchstaben durch andere vertauscht. Das
folgende Kommando wandelt alle eingehenden Kleinbuchstaben in Gro<72>buchstaben folgende Kommando wandelt alle eingehenden Kleinbuchstaben in Gro<72>buchstaben
um\footnote{Umlaute und Sonderzeichen ausgeschlossen}: um\footnote{Umlaute und Sonderzeichen ausgeschlossen}:
\texttt{y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/} \lstinline|y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/|
Normalerweise werden alle Eingabezeilen nach der Bearbeitung wieder ausgegeben, 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 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 Oft wird eine auf- oder absteigende Sequenz aufeinanderfolgender Zahlen
ben<EFBFBD>tigt, beispielsweise um eine Schleife 100 mal zu durchlaufen. Es ist nicht 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 Das Kommando \texttt{sleep} veranla<6C>t die Shell, f<>r eine angegebene Zeit zu
warten. Die Zeit wird dabei in Sekunden angegeben. warten. Die Zeit wird dabei in Sekunden angegeben.
In der GNU-Variante\marginpar{GNU!} von \texttt{sleep} kann die Einheit der \begin{dinglist}{43}
angegebenen Zeitspanne durch Suffixe definiert werden: \lstinline|sleep 10s| \item In der GNU-Variante von \texttt{sleep} kann die Einheit der angegebenen
schl<EFBFBD>ft zehn Sekunden, \lstinline|sleep 10m| zehn Minuten. Genauso werden Zeitspanne durch Suffixe definiert werden: \lstinline|sleep 10s| schl<EFBFBD>ft zehn
Stunden (h) und Tage (d) definiert. 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: Au<EFBFBD>erdem kann die GNU-Variante auch mit nicht-Integer Zeiten arbeiten:
\lstinline|sleep 0.5| schl<68>ft eine halbe Sekunde. \lstinline|sleep 0.5| schl<68>ft eine halbe Sekunde.
\end{dinglist}
\index{sleep=\texttt{sleep}|)} \index{sleep=\texttt{sleep}|)}
@ -1536,8 +1589,10 @@ Parameter \texttt{-n} steuern.
Mit dem Parameter \texttt{-f} (follow) gibt \texttt{tail} neue Zeilen aus, Mit dem Parameter \texttt{-f} (follow) gibt \texttt{tail} neue Zeilen aus,
sobald sie an die Datei angeh<65>ngt werden. sobald sie an die Datei angeh<65>ngt werden.
Die GNU-Version\marginpar{GNU!} kann auch das Ende mehrere Dateien ausgeben \begin{dinglist}{43}
bzw. verfolgen, wenn mehrere Namen angegeben werden. \item Die GNU-Version kann auch das Ende mehrere Dateien ausgeben bzw.
verfolgen, wenn mehrere Namen angegeben werden.
\end{dinglist}
\index{tail=\texttt{tail}|)} \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 Mit dem Kommando \texttt{uniq} werden doppelt vorkommende Zeilen in einer
Eingabedatei oder der eingehenden Pipe (Standard-Eingabe) bearbeitet. Per Eingabedatei oder der eingehenden Pipe (Standard-Eingabe) bearbeitet. Per
default steht `bearbeitet' an dieser Stelle f<>r `gel<65>scht', aber durch 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} \LTXtable{\textwidth}{tab_kommandos_uniq_parameter.tex}
Achtung: \texttt{uniq} betrachtet beim Vergleich nur direkt aufeinander 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 Zeilen z<>hlen lassen. Weiterhin kann man Bytes (\texttt{-c}) oder Zeichen
(\texttt{-m}) z<>hlen lassen. (\texttt{-m}) z<>hlen lassen.
Der Parameter \texttt{-L} gibt in der GNU-Version \marginpar{GNU!} die L<>nge \begin{dinglist}{43}
der l<>ngsten enthaltenen Zeile aus. \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}|)} \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 Sucht im Pfad (vordefinierte Variable
\texttt{\$PATH}\index{\$PATH=\texttt{\$PATH}}, siehe Abschnitt \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 werden, wird \texttt{grep} mehrfach aufgerufen, allerdings im Gegensatz zum
obigen Beispiel nicht einmal pro Fundstelle. obigen Beispiel nicht einmal pro Fundstelle.
Neben einigen anderen Parametern informiert die Manpage der \begin{dinglist}{43}
GNU-Version\marginpar{GNU!} <20>ber die Option \texttt{-r}. Damit kann vermieden \item Neben einigen anderen Parametern informiert die Manpage der GNU-Version
werden, da<64> \texttt{xargs} das Kommando startet wenn keine Eingabe vorhanden <EFBFBD>ber die Option \texttt{-r}. Damit kann vermieden werden, da<64> \texttt{xargs}
ist. Bezogen auf das angegebene Beispiel w<>rde \texttt{grep} ohne Dateinamen das Kommando startet wenn keine Eingabe vorhanden ist. Bezogen auf das
gestartet, wenn \texttt{find} nichts findet. Es w<>rde auf Input von der angegebene Beispiel w<>rde \texttt{grep} ohne Dateinamen gestartet, wenn
Standardeingabe warten, der aber wahrscheinlich nicht kommt. Das Skript w<>rde \texttt{find} nichts findet. Es w<>rde auf Input von der Standardeingabe warten,
h<EFBFBD>ngen, wenn der Parameter \texttt{-r} nicht angewandt w<>rde. 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}|)} \index{xargs=\texttt{xargs}|)}

View File

@ -588,15 +588,16 @@ Ein Shell-Skript kann in keiner Weise Einflu
Wenn es aber doch gew<65>nscht wird, da<64> ein Skript die Umgebung des Benutzers Wenn es aber doch gew<65>nscht wird, da<64> ein Skript die Umgebung des Benutzers
<EFBFBD>ndern kann, dann mu<6D> es mit dem Source-Kommando aufgerufen werden. Das wird in <EFBFBD>ndern kann, dann mu<6D> es mit dem Source-Kommando aufgerufen werden. Das wird in
der Form \lstinline|source skriptname| bzw. \lstinline|. skriptname| angegeben. der Form \lstinline|source skriptname| bzw. \lstinline|. skriptname| angegeben.
Er bewirkt <20>hnliches wie ein \verb\#include\ in der Programmiersprache C. Er wirkt <20>hnlich wie ein \lstinline|#include| in der Programmiersprache C.
Die `gesourcte' Datei wird eingelesen und ausgef<65>hrt, als ob ihr Inhalt an der Die `gesourcte' Datei wird eingelesen und ausgef<65>hrt, als ob ihr Inhalt an der
Stelle des Befehls stehen w<>rde. Diese Methode wird zum Beispiel beim Login in Stelle des Befehls stehen w<>rde. Diese Methode wird zum Beispiel beim Login in
den Konfigurationsdateien des Benutzers (z. B. \verb\.profile\, \verb\.bashrc\) den Konfigurationsdateien des Benutzers (z. B. \lstinline|.profile|,
oder w<>hrend des Bootvorgangs in den Init-Skripten benutzt, um immer wieder \lstinline|.bashrc|) oder w<>hrend des Bootvorgangs in den Init-Skripten
ben<EFBFBD>tigte Funktionen (Starten eines Dienstes, Statusmeldungen auf dem benutzt, um immer wieder ben<EFBFBD>tigte Funktionen (Starten eines Dienstes,
Bildschirm etc.) in einer zentralen Datei pflegen zu k<>nnen (siehe Beispiel Statusmeldungen auf dem Bildschirm etc.) in einer zentralen Datei pflegen zu
unter~\ref{init-skript}). k<EFBFBD>nnen (siehe Beispiel unter~\ref{init-skript}).
\index{source=\texttt{source}|)} \index{source=\texttt{source}|)}