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örige Runlevel initialisiert wird. Dieses Skript dient dazu, den Apache HTTP-Server zu starten. Es wird während
des Bootvorgangs gestartet, wenn der dazugehörige Runlevel initialisiert wird.
Das Skript muß 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} übergeben wurden, wird eine entsprechende Meldung angezeigt. Das Skript muß 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} übergeben wurden, wird
eine entsprechende Meldung angezeigt.
Das Ergebnis der Ausfü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ü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ächst wird festgelegt, daß dieses Skript in der Bourne-Shell ausgeführt werden soll (\ref{auswahl_der_shell}). Zunächst wird festgelegt, daß dieses Skript in der Bourne-Shell ausgefü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äutern (\ref{kommentare}). Dann folgen Kommentare\index{Kommentar}, die den Sinn des Skriptes erlä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ß gesandt, das ihn diese Taste wird ein Signal an den entsprechenden Prozeß gesandt, das ihn
bittet sich zu beenden. Dieses Signal heißt SIGINT (für SIGnal INTerrupt) und bittet sich zu beenden. Dieses Signal heißt SIGINT (für SIGnal INTerrupt) und
trägt die Nummer 2. Das kann ein kleines Problem darstellen, wenn das Skript trä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ß an der wird entpackt und unter diesem gespeichert. In der `realen Welt' muß an der
@ -172,11 +174,11 @@ werden mu
Dabei gibt es zwei Methoden, die angehängte Datei wieder abzuschneiden. Die Dabei gibt es zwei Methoden, die angehä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ß das Skript selbst 227 Zeilen umfaßt. Die Dieses Beispiel geht davon aus, daß das Skript selbst 227 Zeilen umfaßt. Die
binäre Datei wurde mit einem Kommando wie \texttt{cat icon.png >> skript.sh} an binäre Datei wurde mit einem Kommando wie \lstinline|cat icon.png >> skript.sh|
das Skript angehängt. an das Skript angehängt.
Für die etwas kompliziertere Variante muß die Länge des eigentlichen Für die etwas kompliziertere Variante muß die Länge des eigentlichen
Skript-Teiles genau angepaßt werden. Wenn das Skript beispielsweise etwa 5,5kB Skript-Teiles genau angepaß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ängsel mit dem werden, damit sich eine Länge von 6kB ergibt. Dann kann das Anhä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öße (blocksize, bs) von 1024 Bytes festgelegt. einzelnen wird hier eine Blockgröße (blocksize, bs) von 1024 Bytes festgelegt.
@ -248,8 +250,10 @@ Bei einfachen Zahlenwerten k
Komplexere Informationen können in eine temporäre Datei geschrieben werden, die Komplexere Informationen können in eine temporäre Datei geschrieben werden, die
danach geparst werden müßte. Wenn die Informationen in Zeilen der Form danach geparst werden müß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 Überlegung kommen wir zu einem eleganten~--~wenn auch Und genau mit dieser Ü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ängt \tabularnewline\STRUT \texttt{-a} & Zeigt alle Dateien an, auch solche deren Name mit einem Punkt anfängt \tabularnewline\STRUT
\texttt{-A} & GNU-Erweiterung: Zeigt `fast alle' Dateien an, also auch alle deren Name mit einem Punkt anfä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ä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öß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öß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öße der Datei sortieren \tabularnewline\STRUT \texttt{-S} & \ding{43} Nach der Größe der Datei sortieren \tabularnewline\STRUT
\texttt{-t} & Nach der letzten Änderungszeit sortieren \tabularnewline\STRUT \texttt{-t} & Nach der letzten Ä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ß- / Kleinschreibung ignorieren \tabularnewline\STRUT \texttt{-i} & \ding{43} Groß- / 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ählung der kommenden Werkzeugen. Danach gibt es eine alphabetische Aufzählung der
wichtigsten Kommandos. wichtigsten Kommandos.
Das GNU-Projekt\marginpar{GNU!} hat vielen Kommandos nützliche Parameter \begin{dinglist}{43}
zugefügt, einige der hier beschriebenen Tools stehen ausschließlich auf \item Viele der hier vorgestellten Kommandos stehen in erweiterten Versionen
GNU-Systemen zur Verfügung. Da diese Optionen nicht auf allen Unix-Systemen zur zur Verfügung. Besonders auf GNU-Systemen~--~und somit auch auf Linux~--~gibt
Verfü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ß also das Systemen nur wünschen kann. Diese Vorteile sind allerdings mit Vorsicht zu
Zielsystem berücksichtigt werden, im Zweifelsfall sollten die Skripte genießen: Wenn sie zum Einsatz kommen sind die entstehenden Skripte nicht mehr
ausführlich getestet werden. 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} \section{Nä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 übergeben, das nur \lstinline|cat datei.txt | kommando| Daten an ein Programm übergeben, das nur
von der Standardeingabe lesen kann (Filter). von der Standardeingabe lesen kann (Filter).
GNU-\texttt{cat}\marginpar{GNU!} verfügt ü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ügt ü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ßt werden. werden, oder mit \texttt{-s} mehrere Zeilen zu einer einzigen zusammengefaß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ü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. Mög\-lich\-keit, scriptgesteuert die Paßwörter für neue Benutzer zu vergeben.
Manuell ändert man ein Paßwort mit dem Kommando Manuell ändert man ein Paß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äßt sich die Ausgabe von Unterschieden unterdrücken, der Durch \texttt{-s} läßt sich die Ausgabe von Unterschieden unterdrü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ß sich weigert zu sterben, wartet \texttt{killall} ewig. Wenn der Prozeß sich weigert zu sterben, wartet \texttt{killall} ewig.
Eine ähnliche Funktionalität bietet auch das Kommando \texttt{pkill} (Abschnitt Eine ähnliche Funktionalität bietet auch das Kommando \texttt{pkill} (Abschnitt
\ref{pkill}), \texttt{killall} hat aber den Vorteil daß es auf mehr Systemen \ref{pkill}), allerdings hat \texttt{killall} den Vorteil daß es auf mehr
zur Verfügung steht. Systemen zur Verfügung steht.
\index{killall=\texttt{killall}|)} \index{killall=\texttt{killall}|)}
@ -888,9 +903,11 @@ informieren.
Der zu loggende Text wird einfach als Parameter übergeben. Der zu loggende Text wird einfach als Parameter übergeben.
Die GNU-Version\marginpar{GNU!} verfügt ü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ügt ü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äßt. Hier sind die wichtigsten, 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 Besonders informativ gibt sich der Parameter \texttt{-l}, da damit auch die
Eigentümer und die Berechtigungen der Dateien angezeigt werden. Die Ausgabe hat Eigentü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ß \begin{dinglist}{43}
existiert oder nicht. Falls das Kommando \texttt{pgrep} zur Verfü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ügung.
folgende Aufruf liefert alle Prozeß-IDs, deren Name httpd enthält, inclusive \end{dinglist}
des vollen Kommandos:
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| \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 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} über Optionen gesprächiger. man \texttt{ps} über Optionen gesprä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ätzlich gibt es noch ausführliche Parameter, aber die sollen hier nicht Optionen. Den sogenannten Unix- bzw. Posix-Stil und den BSD-Stil. Zusätzlich
beschrieben werden. Die jeweiligen Formen stehen nicht auf allen Systemen zur gibt es noch ausführliche Parameter, aber die sollen hier nicht beschrieben
Verfügung, wenn ein Skript beispielsweise auch unter Solaris benutzt werden werden. Die jeweiligen Formen stehen nicht auf allen Systemen zur Verfü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 übliche Angabe mit Bindestrich aus. Unix-Parameter zeichnen sich durch die ü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} übernommen werden. Dieser Prompt wird nur 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 Wenn die Eingabe von einem Terminal kommt und nicht auf dem Bildschirm
erscheinen soll, zum Beispiel bei Paßwortabfragen, kann die Ausgabe mit dem 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 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öscht. Unterverzeichnisse gelöscht.
Die GNU-Version\marginpar{GNU!} von \texttt{rm} unterstützt zusätzlich den \begin{dinglist}{43}
Parameter \texttt{-v}, mit dem jeder Löschvorgang ausgegeben wird. \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}|)} \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 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 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ähnten Parametern kann \texttt{sed} auch mit \texttt{-n} 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 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ügung, die Man-Page verrät näheres.
\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} \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ßbuchstaben folgende Kommando wandelt alle eingehenden Kleinbuchstaben in Groß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ängig davon ob sie verändert wurden oder nicht. Das Verhalten kann über 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 Oft wird eine auf- oder absteigende Sequenz aufeinanderfolgender Zahlen
benötigt, beispielsweise um eine Schleife 100 mal zu durchlaufen. Es ist nicht 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 Das Kommando \texttt{sleep} veranlaß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äft zehn Sekunden, \lstinline|sleep 10m| zehn Minuten. Genauso werden Zeitspanne durch Suffixe definiert werden: \lstinline|sleep 10s| schläft zehn
Stunden (h) und Tage (d) definiert. 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: Außerdem kann die GNU-Variante auch mit nicht-Integer Zeiten arbeiten:
\lstinline|sleep 0.5| schläft eine halbe Sekunde. \lstinline|sleep 0.5| schlä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ängt werden. sobald sie an die Datei angehä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öscht', aber durch 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} \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ü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!} über die Option \texttt{-r}. Damit kann vermieden \item Neben einigen anderen Parametern informiert die Manpage der GNU-Version
werden, daß \texttt{xargs} das Kommando startet wenn keine Eingabe vorhanden über die Option \texttt{-r}. Damit kann vermieden werden, daß \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ä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ünscht wird, daß ein Skript die Umgebung des Benutzers Wenn es aber doch gewünscht wird, daß ein Skript die Umgebung des Benutzers
ändern kann, dann muß es mit dem Source-Kommando aufgerufen werden. Das wird in ändern kann, dann muß 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 ähnliches wie ein \verb\#include\ in der Programmiersprache C. Er wirkt ähnlich wie ein \lstinline|#include| in der Programmiersprache C.
Die `gesourcte' Datei wird eingelesen und ausgeführt, als ob ihr Inhalt an der Die `gesourcte' Datei wird eingelesen und ausgefü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ötigte Funktionen (Starten eines Dienstes, Statusmeldungen auf dem benutzt, um immer wieder benö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önnen (siehe Beispiel unter~\ref{init-skript}).
\index{source=\texttt{source}|)} \index{source=\texttt{source}|)}