%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Linux}
\chead{}
\ohead{http://kohnlehome.de/linux/bash.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
bash
\end{center}

\section{Variablen}
\subsection{Wert zuweisen}
\texttt{VARIABLE=WERT} (Text oder ganzzahlige Werte)

\subsection{Wert auslesen}
\texttt{\$VARIABLE} oder \texttt{\$\{VARIABLE\}}



\section{Quoting: Maskieren (unwirksam machen) von Sonderzeichen}
\subsection{Backslash \texttt{\textbackslash}}
maskiert genau ein darauffolgendes Zeichen
\subsection{Double Quotes (Anführungszeichen)  \texttt{"{} "{}}}
maskieren \textit{nicht} \texttt{\textbackslash} \$ \texttt{'}
\subsection{Single Quotes (Hochkomma) \texttt{' '}}
maskieren alles


\section{alias}
Tastatur-Shortcut, Beispiel: \texttt{alias ls='ls --color=auto'}

\section{Expansion (Substitution): Ersetzen von Sonderzeichen durch Text}
\subsection{geschweifte Klammern \texttt{\{ , \}}}
\paragraph{Beispiel 1}
\texttt{\{rot,gelb,blau\}.txt} $\Rightarrow$ \texttt{rot.txt gelb.txt blau.txt}

\paragraph{Beispiel 2 (kartesisches Produkt)}
\texttt{\{a,b,c\}\{1,2\}.txt} $\Rightarrow$ \texttt{a1.txt a2.txt b1.txt b2.txt c1.txt c2.txt}

\paragraph{Beispiel 3 (Verschachtelung)}
\texttt{\{a,b\{c,d\}\}}e.txt $\Rightarrow$ \texttt{ae.txt bce.txt bde.txt}

\paragraph{Beispiel 4}
\texttt{mkdir -p umsatz/200\{8,9\}/q\{1,2,3,4\}}

\subsection{Tilde \texttt{\textasciitilde}}
wird ersetzt durch den Pfad des Homeverzeichnisses des aktuellen Benutzers, z.B. \texttt{/home/normal}

\subsection{Variablen \texttt{\$VARIABLE} oder \texttt{\$\{VARIABLE\}}}
die geschweiften Klammern werden benötigt, wenn hinter dem Variablennamen kein Leerzeichen steht,\\z.B. \texttt{echo \$\{NAME\}s Katze ist doof}

\subsection{Kommandosubstitution \texttt{\$( )} oder \texttt{\`{} \`{}}}
\paragraph{Beispiele}
\texttt{verzeichnisliste=\$( ls / )} oder \texttt{verzeichnisliste=\`\ ls / \`}

\subsection{Arithmetische Terme \texttt{\$(( ))} und Rechenanweisungen \texttt{(( ))}}
\paragraph{Beispiele}
\texttt{echo \$(( (2+3)*4 ))} und \texttt{(( x += 4 ))}

\paragraph{Operatoren}
\texttt{+ - * / \% ** = += -= *= /= ++ --}
\subsection{Pathname Expansion (Globbing)}


\begin{tabular}[t]{c l}
\texttt{*} & beliebig viele beliebige Zeichen (außer /) \\

\texttt{?} & genau ein beliebiges Zeichen (außer /) \\

\texttt{[xyz]} & genau ein Zeichen \texttt{x} oder \texttt{y} oder \texttt{z} \\

\texttt{[k-p]} & genau ein Zeichen \texttt{k} oder \texttt{l} oder \texttt{m, ..., p} \bfseries{(nicht case-sensitive)} \\

\texttt{[!a]} & genau ein Zeichen, aber nicht \texttt{a} \\


\texttt{[!xyz]} & genau ein Zeichen, aber nicht \texttt{x} oder \texttt{y} oder \texttt{z} \\
\end{tabular}

\section{Listen}
\begin{tabular}[t]{l l}
\texttt{Kommando1 ; Kommando2 ; Kommando3} & (nacheinander)\\
\texttt{Kommando1 \&\& Kommando2 \&\& Kommando3} & (nur bei Erfolg (exit 0))\\
\texttt{Kommando1 || Kommando2 || Kommando3} & (nur bei Fehler)
\end{tabular}

\section{Beispiel mit Variablen- und Kommandosubstitution}
\renewcommand{\arraystretch}{2}
\begin{tabular}[t]{l|p{1.7cm}|p{1.7cm}|p{3.0cm}|p{2.6cm}|l}
 & Variablen-substitution & Kommando-substitution & Befehlszeile & ausgeführtes Kommando & Ausgabe\\ \hline\hline

  &  &  & \texttt{x=beispiel}  & & \\ \hline

Single Quotes & - & - & \texttt{echo 'touch \$x'} & & \texttt{touch \$x}\\ \hline

Double Quotes & ja & - & \texttt{echo "touch \$x"} & & \texttt{touch beispiel}\\ \hline

Backticks & ja & ja & \texttt{echo} \`{}\texttt{touch \$x}\`{} & \texttt{touch beispiel} & Zeilenumbruch\\ \hline

\texttt{\$( )} & ja & ja & \texttt{echo \$(touch \$x)}& \texttt{touch beispiel} & Zeilenumbruch\\ 

\end{tabular}


\end{document}
