%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper,headsepline,footsepline]{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
% Funktioniert nicht \usepackage[automark]{scrpage2}%
\usepackage[automark]{scrlayer-scrpage}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

% Single quotes
\usepackage{upquote,textcomp}

\usepackage{enumitem}

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

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

\pagestyle{scrheadings}

\begin{document}

% Single Quotes
\newcommand\upquote[1]{\textquotesingle#1\textquotesingle}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
Übung: I/O-Redirect
\end{center}

\begin{enumerate}[itemsep=0.75cm]
      \item Speichern Sie die Ausgabe des Befehls \texttt{ls} in der Datei \texttt{liste.txt}.
      \item Versuchen Sie, den Inhalt der nichtexistenten Datei \texttt{gibtsnicht.txt} mit \texttt{cat} anzuzeigen und speichern Sie die Fehlermeldung in der Datei \texttt{fehler.txt}.
      \item Führen Sie das Kommando \texttt{date} mehrmals aus und leiten Sie die Ausgabe so um, dass sie an eine Datei \texttt{time.log} angehängt wird, ohne die bestehende Datei zu überschreiben. Die Zeitstempel sollen auch die Nanaosekunden enthlten.
      \item Lassen Sie sich mit \texttt{cat} den Inhalt der Datei \texttt{/etc/passwd} anzeigen. Leiten Sie die Ausgabe an den Befehl \texttt{wc -l} um, um die Anzahl der Zeilen zu zählen.
      \item Leiten Sie die Ausgabe von \texttt{echo "Hello, World!"} ins Nichts (nach \texttt{/dev/null}) um, sodass keine Ausgabe erscheint.
      \item Versuchen Sie, nacheinander mehrere (existierende und nichtexistente) Dateien zu öffnen und hängen Sie jeweils die Fehlermeldung an \texttt{error.log} und die Standardausgabe an \texttt{output.log} an.
      \item Ändern Sie die Befehle so ab, dass sowohl die Standardausgabe, als auch die Fehlermeldungen in der Datei \texttt{gemeinsam.log} gespeichert werden. 
      \item Erstellen Sie eine Pipe-Kette, die den Inhalt der Datei \texttt{/etc/passwd} mit \texttt{cat} einliest, mit \texttt{grep} nach einem bestimmten Muster durchsucht und die Ergebnisse sowohl in die Datei \texttt{results.txt} schreibt, als auch gleichzeitig im Terminal ausgibt.
      \item Schreiben Sie die Ausgabe des Kommandos \texttt{ps aux} sowohl in eine Datei \texttt{processes.log} und geben Sie sie auch gleichzeitig auf dem Bildschirm aus.
      \item Geben Sie Ausgabe von \texttt{df -h} gleichzeitig auf dem Bildschirm aus und speichern Sie sie in einer Datei \texttt{disk\_usage.log}.
      \item Messen Sie den freien Speicherplatz (mittels \texttt{free -h}) und hängen Sie die Ausgabe mit einem Zeitstempel an die Datei \texttt{memory.log}.
      \item Kombinieren Sie die Inhalte von zwei Dateien \texttt{file1.txt} und \texttt{file2.txt}, indem Sie die Standardausgabe von beiden Dateien in einer Datei \texttt{combined.txt} speichern.
      \item Verwenden Sie die Datei \texttt{/etc/passwd} direkt als Eingabe für das Programm \texttt{sort}.
      \item Erzeugen Sie die gleiche Ausgabe, indem Sie die Datei \texttt{/etc/passwd} mit \texttt{cat} öffnen und an \texttt{sort} weiterleiten.
\end{enumerate}


\end{document}
