diff --git a/shell.tex b/shell.tex index 1191428..6d73131 100644 --- a/shell.tex +++ b/shell.tex @@ -134,7 +134,7 @@ R \include{was_ist_die_shell} \include{wofuer_shell_programmierung} \include{wie_sieht_ein_shell_skript_aus} -\include{nuetzliche_shell-kommandos} +\include{werkzeugkasten} \include{wo_sind_unterschiede_zu_dos_batchdateien} \appendix \include{beispiele} diff --git a/tab_kommandos_awk_variablen.tex b/tab_kommandos_awk_variablen.tex new file mode 100644 index 0000000..6e9dd0d --- /dev/null +++ b/tab_kommandos_awk_variablen.tex @@ -0,0 +1,21 @@ +% $Id$ +\begin{longtable}{|l|X|} +% KILLED & LINE!!!! \kill + \hline + \endfirsthead + \endhead + \endfoot + \hline + \endlastfoot + +\texttt{FILENAME} & Der Name der aktuellen Eingabedatei, oder `-' wenn von der Standard-Eingabe gelesen wird\tabularnewline\STRUT +\texttt{FS} & Field Separator, das Trennzeichen nach dem die Felder unterteilt werden \tabularnewline\STRUT +\texttt{OFS} & Feldtrennzeichen für die Ausgabe \tabularnewline\STRUT +\texttt{RS} & Record Separator, das Trennzeichen nach dem Datensätze unterteilt werden \tabularnewline\STRUT +\texttt{ORS} & Datensatztrennzeichen für die Ausgabe \tabularnewline\STRUT +\texttt{NF} & Anzahl der Felder im aktuellen Datensatz \tabularnewline\STRUT +\texttt{NR} & Laufende Nummer des aktuellen Datensatzes \tabularnewline\STRUT +\texttt{OFMT} & Ausgabeformat für die Ausgabe von Zahlen und Strings, \tabularnewline\STRUT +\texttt{\$0} & Der komplette aktuelle Datensatz \tabularnewline\STRUT +\texttt{\$}\textsl{n} & Feld \textsl{n} des aktuellen Datensatzes +\end{longtable} diff --git a/tab_kommandos_find_parameter.tex b/tab_kommandos_find_parameter.tex new file mode 100644 index 0000000..823808a --- /dev/null +++ b/tab_kommandos_find_parameter.tex @@ -0,0 +1,31 @@ +% $Id$ +\begin{longtable}{|l|X|} +% KILLED & LINE!!!! \kill + \hline + \endfirsthead + \endhead + \endfoot + \hline + \endlastfoot + +Kriterien: & \tabularnewline\STRUT +\texttt{-name }\textsl{pattern} & Suchmuster für den Dateinamen, auch mit Meta-Zeichen (Abschnitt \ref{metazeichen}) \tabularnewline\STRUT +\texttt{-perm [-]}\textsl{mode} & Sucht nach Dateien, deren Berechtigungen dem angegebenen Modus entsprechen. Die Notation erfolgt dabei analog zu \texttt{chmod} (Abschnitt \ref{chmod}), wahlweise in der Buchstaben- oder in der Zahlenform \tabularnewline\STRUT +\texttt{-type }\textsl{c} & Sucht nach Dateien des angegebenen Typs. Dabei kann für \textsl{c} `b' (block device), `c' (character device), `d' (directory), `l' (symbolic link), `p' (pipe), `f' (regular file), oder `s' (socket) eingesetzt werden \tabularnewline\STRUT +\texttt{-user }\textsl{name} & Sucht nach Dateien, die dem angegebenen Benutzer gehören. Die Angabe kann als Name oder als UID erfolgen \tabularnewline\STRUT +\texttt{-group }\textsl{name} & Sucht nach Dateien, die der angegebenen Gruppe gehören. Die Angabe kann als Name oder als GID erfolgen \tabularnewline\STRUT +\texttt{-size }\textsl{n}\texttt{[c]} & Sucht nach Dateien, deren Größe \textsl{n} Blocks\footnote{Blocks geben die Dateigröße in Bytes dividiert durch 512 und aufgerundet auf den nächsten Integer an. Das hat historische Gründe.} oder bei nachgestelltem \texttt{c} \textsl{n} Bytes ist \tabularnewline\STRUT +\texttt{-atime }\textsl{n} & Sucht nach Dateien, deren letzter Zugriff (access time) \texttt{n}*24 Stunden zurück liegt \tabularnewline\STRUT +\texttt{-ctime }\textsl{n} & Sucht nach Dateien, deren letzte Statusänderung (change time) \texttt{n}*24 Stunden zurück liegt \tabularnewline\STRUT +\texttt{-mtime }\textsl{n} & Sucht nach Dateien, deren letzte Änderung (modification time) \texttt{n}*24 Stunden zurück liegt \tabularnewline\STRUT +\texttt{-newer }\textsl{file} & Sucht nach Dateien, die jünger sind als \textsl{file} \tabularnewline\STRUT +Optionen: & \tabularnewline\STRUT +\texttt{-xdev} & Nur auf einem Filesystem suchen \tabularnewline\STRUT +\texttt{-depth } & Normalerweise wird eine Breitensuche durchgeführt, dieser Parameter schaltet auf Tiefensuche um \tabularnewline\STRUT +Aktionen: & \tabularnewline\STRUT +\texttt{-print} & Dies ist default, die gefundenen Dateinamen werden ausgegeben \tabularnewline\STRUT +\texttt{-exec }\textsl{kommando}\texttt{ \{\};} & Führt das Kommando für jede +Fundstelle aus, an Stelle der geschweiften Klammern wird der gefundene +Dateiname eingesetzt. Das abschließende Semikolon muß wegen seiner +Sonderbedeutung in der Regel durch einen Backslash gequoted werden +\end{longtable} diff --git a/tab_kommandos_ls_parameter.tex b/tab_kommandos_ls_parameter.tex new file mode 100644 index 0000000..1cc38d5 --- /dev/null +++ b/tab_kommandos_ls_parameter.tex @@ -0,0 +1,23 @@ +% $Id$ +\begin{longtable}{|l|X|} +% KILLED & LINE!!!! \kill + \hline + \endfirsthead + \endhead + \endfoot + \hline + \endlastfoot + +\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} & 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{-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{-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{-r} & Sortierreihenfolge umkehren \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{-t} & Nach der letzten Änderungszeit sortieren \tabularnewline\STRUT +\texttt{-X} & GNU-Erweiterung: Nach der Extension (also dem Namensteil nach dem letzten Punkt) sortieren +\end{longtable} diff --git a/tab_kommandos_sed_adressen.tex b/tab_kommandos_sed_adressen.tex new file mode 100644 index 0000000..191e870 --- /dev/null +++ b/tab_kommandos_sed_adressen.tex @@ -0,0 +1,19 @@ +% $Id$ +\begin{longtable}{|l|X|} +% KILLED & LINE!!!! \kill + \hline + \endfirsthead + \endhead + \endfoot + \hline + \endlastfoot + +\texttt{d} & Keine Adresse angegeben, alle Zeilen werden gelöscht \tabularnewline\STRUT +\texttt{23d} & Zeile 23 wird gelöscht \tabularnewline\STRUT +\texttt{\$d} & Die letzte Eingabezeile wird gelöscht \tabularnewline\STRUT +\texttt{/}\textsl{pattern}\texttt{/d} & Jede Zeile, die den regulären Ausdruck \textsl{pattern} enthält wird gelöscht \tabularnewline\STRUT +\texttt{23,42d} & Die Zeilen 23 bis einschließlich 42 werden gelöscht \tabularnewline\STRUT +\texttt{23,\$d} & Von Zeile 23 bis zum Ende wird gelöscht \tabularnewline\STRUT +\texttt{1,/\^\$/d} & Von der ersten bis zur ersten Leerzeile wird gelöscht \tabularnewline\STRUT +\texttt{23,42!d} & Alles außer den Zeilen 23 bis 42 wird gelöscht +\end{longtable} diff --git a/tab_kommandos_sed_kommandos.tex b/tab_kommandos_sed_kommandos.tex new file mode 100644 index 0000000..10fb05c --- /dev/null +++ b/tab_kommandos_sed_kommandos.tex @@ -0,0 +1,17 @@ +% $Id$ +\begin{longtable}{|l|X|} +% KILLED & LINE!!!! \kill + \hline + \endfirsthead + \endhead + \endfoot + \hline + \endlastfoot + +Editieren: & \tabularnewline\STRUT +\texttt{/}\textsl{adresse}\texttt{/d} & Zeilen löschen \tabularnewline\STRUT +\texttt{s/}\textsl{regexp1}\texttt{/}\textsl{regexp2}\texttt{/} & Substitution: Suchen und ersetzen \tabularnewline\STRUT +\texttt{y/}\textsl{menge1}\texttt{/}\textsl{menge2}\texttt{/} & Zeichen ersetzen \tabularnewline\STRUT +Zeileninformation: & \tabularnewline\STRUT +\texttt{/}\textsl{adresse}\texttt{/p} & Zeilen ausgeben +\end{longtable} diff --git a/tab_vordefinierte_variablen.tex b/tab_vordefinierte_variablen.tex index cf0e5de..3ee273c 100644 --- a/tab_vordefinierte_variablen.tex +++ b/tab_vordefinierte_variablen.tex @@ -17,6 +17,7 @@ \texttt{\$!} & Prozeßnummer des letzten Hintergrundprozesses \tabularnewline\STRUT \texttt{\$ERRNO} & Fehlernummer des letzten fehlgeschlagenen Systemaufrufs \tabularnewline\STRUT \texttt{\$IFS} & Feldseparator, wird beispielsweise beim Lesen mittels \texttt{read} benutzt \tabularnewline\STRUT -\texttt{\$PWD} & Aktuelles Verzeichnis (wird durch \texttt{cd} gesetzt\footnote{Durch das Kommando \texttt{cd} wird das aktuelle Verzeichnis gewechselt.}) \tabularnewline\STRUT +\texttt{\$PATH} & Pfad, in dem nach ausführbaren Kommandos gesucht wird. Mehrere Einträge werden durch Doppelpunkte getrennt angegeben \tabularnewline\STRUT +\texttt{\$PWD} & Aktuelles Verzeichnis (wird durch \texttt{cd} gesetzt\footnote{Durch das Kommando \texttt{cd} wird das aktuelle Verzeichnis gewechselt, siehe Abschnitt \ref{cd}.}) \tabularnewline\STRUT \texttt{\$OLDPWD} & Vorheriges Verzeichnis (wird durch \texttt{cd} gesetzt) \end{longtable} diff --git a/wie_sieht_ein_shell_skript_aus.tex b/wie_sieht_ein_shell_skript_aus.tex index 4acd6e7..b5d3776 100644 --- a/wie_sieht_ein_shell_skript_aus.tex +++ b/wie_sieht_ein_shell_skript_aus.tex @@ -154,10 +154,12 @@ behandelt (expandiert). \index{\$!!=\texttt{\$!!}|(textbf} \index{\$ERRNO=\texttt{\$ERRNO}|(textbf} \index{\$IFS=\texttt{\$IFS}|(textbf} +\index{\$PATH=\texttt{\$PATH}|(textbf} \index{\$PWD=\texttt{\$PWD}|(textbf} \index{\$OLDPWD=\texttt{\$OLDPWD}|(textbf} \index{ERRNO=\texttt{ERRNO}|see{\$ERRNO}} \index{IFS=\texttt{IFS}|see{\$IFS}} +\index{PATH=\texttt{PATH}|see{\$PATH}} \index{PWD=\texttt{PWD}|see{\$PWD}} \index{OLDPWD=\texttt{OLDPWD}|see{\$OLDPWD}} @@ -186,6 +188,7 @@ Shell gesetzt. \index{\$!!=\texttt{\$!!}|)} \index{\$ERRNO=\texttt{\$ERRNO}|)} \index{\$IFS=\texttt{\$IFS}|)} +\index{\$PATH=\texttt{\$PATH}|)} \index{\$PWD=\texttt{\$PWD}|)} \index{\$OLDPWD=\texttt{\$OLDPWD}|)} @@ -238,7 +241,7 @@ Die folgenden Zeichen k \index{Quoting|)} -\section{Meta-Zeichen}\index{Meta-Zeichen|(textbf}\index{Wildcards|see{Metazeichen}}\index{Joker-Zeichen|see{Metazeichen}}\index{Platzhalter|see{Metazeichen}} +\section{Meta-Zeichen}\index{Meta-Zeichen|(textbf}\index{Wildcards|see{Metazeichen}}\index{Joker-Zeichen|see{Metazeichen}}\index{Platzhalter|see{Metazeichen}}\label{metazeichen} \index{*=\texttt{*}|(textbf}\index{?=\texttt{?}|(textbf}\index{[abc]=\texttt{[}\textsl{abc}\texttt{]}|(textbf}\index{[a-q]=\texttt{[}\textsl{a}\texttt{-}\textsl{q}\texttt{]}|(textbf}\index{[!!abc]=\texttt{[!!}\textsl{abc}\texttt{]}|(textbf}\index{Dateinamen|(textbf} \index{\~{}=\texttt{\~{}}|(textbf}\index{\~{}name=\texttt{\~{}}\textsl{name}|(textbf}\index{\~{}+=\texttt{\~{}+}|(textbf}\index{\~{}-=\texttt{\~{}-}|(textbf}