linux_ws2122/index.tex

447 lines
19 KiB
TeX

% Dokumentanklasse: a4paper, 14pt
% Beschreibung: Dokumentenformat
% Option: extraarticle - ?
\documentclass[12pt]{article}
% Packet: xcolor
% Beschreibung: Define own color schemas
% Option:
% Restriktion: Muss vor Paket hyperref geladen werden. Ansonsten werden die Farben der Links nicht genutzt.
\usepackage{xcolor}
% Definiere Farben
\definecolor{blue}{HTML}{5E7FB8}
\definecolor{brown}{HTML}{BA9D5E}
\definecolor{green}{HTML}{79B960}
\definecolor{grey}{HTML}{7C7C7C}
\definecolor{light-grey}{HTML}{D5D5D5}
\definecolor{orange}{HTML}{FF7F00}
\definecolor{red}{HTML}{B80A0A}
\definecolor{violet}{HTML}{B688CB}
\definecolor{white}{HTML}{FFFFFF}
\definecolor{yellow}{HTML}{E2E66C}
% Paket: setspace
% Beschreibung: Setz über die optionen den Zeilenabstand
% Optionen: Möglicher Zeilenabstand
% singlespacing = 1,0
% onehalfspacing = 1,5
% doublespacing = 2,0
% Restriktion: Muss vor Paket hyperref geladen werden. Ansonsten funktioniert das Paket nicht.
\usepackage[onehalfspacing]{setspace}
% ###########################################################################################################################
% Paket: appendix
% Beschreibung: Das Paket dient dazu, ausschließlich das Thema einer Überschrift in das Inhaltsverzeichnis zu überführen
% Option: appendix - Überführt die Überschriften des Anhangs richtig ins das Inhaltsverzeichnis
\usepackage[titletoc]{appendix}
% Paket: ansmath
% Beschreibung: Zum darstellen von mathematischen Formeln
\usepackage{amsmath}
% Paket: bebel
% Beschreibung: Stellt das Literatur-, Abbilungs-, Tabellenverzeichnis auf eine beliebige Sprache
% Option: ngerman
\usepackage[ngerman]{babel}
% Paket: biblatex
% Beschreibung: Ermöglicht es, ein Literaturverzeichnis zu führen
% Option:
\usepackage[
style=authoryear-icomp, % Zitierstil (https://de.overleaf.com/learn/latex/Biblatex_bibliography_styles)
isbn=false, % ISBN nicht anzeigen, gleiches geht mit nahezu allen anderen Feldern
pagetracker=true, % ebd. bei wiederholten Angaben (false=ausgeschaltet, page=Seite, spread=Doppelseite, true=automatisch)
maxbibnames=50, % maximale Namen, die im Literaturverzeichnis angezeigt werden
maxcitenames=3, % maximale Namen, die im Text angezeigt werden, ab 4 wird u.a. nach den ersten Autor angezeigt
autocite=inline, % regelt Aussehen für \autocite (inline=\parancite)
block=space, % kleiner horizontaler Platz zwischen den Feldern
backref=true, % Seiten anzeigen, auf denen die Referenz vorkommt
backend=biber,
backrefstyle=three+, % fasst Seiten zusammen, z.B. S. 2f, 6ff, 7-10
date=short, % Datumsformatbackend=biber
]{biblatex}
\setlength{\bibitemsep}{1em} % Abstand zwischen den Literaturangaben
\setlength{\bibhang}{2em} % Einzug nach jeweils erster Zeile
\addbibresource{referenzen//bibliothek.bib}
% Paket: caption
% Beschreibung: Bietet eine große Auswahl an Gestaltungsmöglichkeiten bezüglich der Beschriftung von Bildern und Tabellen.
\usepackage{caption}
% Paket: colortbl
% Beschreibung: Ermöglicht Tabellen, Spalten oder Zellen farbig zu gestalten.
% Befehle: \columncolor
% Dokumentation: http://texdoc.net/texmf-dist/doc/latex/colortbl/colortbl.pdf
\usepackage{colortbl}
% Paket: booktabs
% Beschreibung: Das Hauptaugenmerk von booktabs liegt dabei auf der Gestaltung der horizontalen Linien innerhalb einer Tabelle.
% Was unter anderem daran liegt, dass der Autor des Paketes Simon Fear mehrere Regeln bzw. Empfehlungen für die
% Erstellung/Gestaltung einer Tabelle gibt. Aufgrund der ersten zwei Regeln:
% 1) Verwende nie und nimmer vertikale Linien.
% 2) Verwende keine doppelten Linien.
% Dokumentation: https://www.namsu.de/Extra/pakete/Booktabs.html
\usepackage{booktabs}
% Paket: courier
% Beschreibung: Lädt das Paket courier für Schriftarten mit fester Breite.
% Befehle: \ttfamily Aktiviert Courier füt Tabellen bzw. generelle begin-Blöcke
\usepackage{courier}
% Packet: csquotes
% Beschreibung: Muss nach babel, polyglossia, biblatex und inputec geladen werden
% Options:
% autostyle=true - Diese Anweisung passt das Zitatdesign so an, dass es zur momentan im Dokument verwendeten Sprache passt
% autostyle=once - Ändert das Zitatdesign einmalig, sodass es zur Grundsprache des Dokumentes passt.
% autostyle=try - Verhalten sich, sollte multilinguale Unterstützung vorhanden sein, wie true und once, doch werden sie,
% für den Fall, dass dies nicht möglich wäre, keine Warnungen erzeugen. (D. h. falls weder babel noch
% polyglossia geladen wurden). Die Kurzformautostyleist äquivalent zu autostyle=true
% Dokumentation: http://mirrors.ibiblio.org/CTAN/info/translations/csquotes/de/csquotes-DE.pdf
\usepackage[autostyle=true]{csquotes}
% Paket: enumitem
% Beschreibung: Zeilenabstände bei Aufzählungen definieren
% Option:
\usepackage{enumitem}
% Paket: eurosym
% Beschreibung: Bildet das Euro-Zeichen in unterschiedlichen Varianten ab
% Option:
\usepackage{eurosym}
% Paket: fancyhdr
% Beschreibung: Ermöglich ein generelles Seitenlayout ein zu stellen mit Kopf und Fußzeile.
\usepackage{fancyhdr}
% Paket: float
% Beschreibung: Zum Ausrichten von Tabellen und Spalten bzw. deren Zentrierung
% Option:
% Restriktion: Muss von Paket hyperref geladen werden. Ansonsten funktioniert das Paket nicht.
\usepackage{float}
\usepackage{forest}
% Packet: framemethod
% Beschreibung:
% Option:
\usepackage[framemethod=tikz]{mdframed}
\mdtheorem[
linecolor=red,
frametitlefont=\sffamily\bfseries\color{white},
frametitlebackgroundcolor=red,
]{warn-popup}{Warnung}[subsection]
\mdtheorem[
linecolor=orange,
frametitlefont=\sffamily\bfseries\color{white},
frametitlebackgroundcolor=orange,
]{info-popup}{Information}[subsection]
\mdtheorem[
linecolor=green,
frametitlefont=\sffamily\bfseries\color{white},
frametitlebackgroundcolor=green,
]{example-popup}{Beispiel}
% Paket: footmisc
% Beschreibung: Das footmisc Paket liefert viele Möglichkeiten, wie Fußnoten in Dokumenten dargestellt werden können.
% Option:
% Dokumentation: http://mirror.utexas.edu/ctan/info/translations/footmisc/de/footmiscDE.pdf
\usepackage[bottom]{footmisc}
% Paket: geometry
% Beschreibung: A4 Seitenabstände
% Option:
\usepackage{geometry}
\geometry{
% a4paper, % Papierformat (wird auch über die Dokumentenklasse definiert)
top=2.5cm, % Abstand Kopfseite (Zwischen Kopfseite und Inhalt)
bottom=2cm, % Abstand Fußseite (Zwischen Fußseite und Inhalt)
left=2.5cm, % Abstand Linkeseite (Zwischen Linkerseite und Inhalt)
right=2.5cm, % Abstand Rechteseite (Zwischen Recherseite und Inhalt)
% width= % textwidth (+marginsep +marinparwidth)
% textwidth=15cm, % Textbreite
% marginparsep=1cm, % Randnotiztrennng
% marginparwidth=10cm,% Randnotizbreite
% height= % textheight (+headheight +headsep + footskip)
% textheight= % Texthöhe
headheight=1cm, % Kopfhöhe
headsep=0.5cm, % Kopftrennung (Größe zwischen Kopfzeile und Inhalt)
footskip=1cm, % Fußzeilenhöhe
}
% Paket: graphicx
% Beschreibung: Einbinden von Bildern
% Option:
\usepackage{graphicx}
% Packet: Hyperref
% Beschreibung: Importiert hyperref um Querverweise mittels \hyperref zu erzeugen.
% Dokumentation: https://www.namsu.de/Extra/pakete/Hyperref.html
\usepackage{hyperref}
\hypersetup{
colorlinks=false, % hyperlinks are coloured
citecolor=green, % color for cite links, only visible if colorlinks=true
linkcolor=red, % color for page links, only visible if colorlinks=true
urlcolor=orange, % color for url links, only visible if colorlinks=true
citebordercolor=green, % color for citeborder, only visible if colorlinks=true
urlbordercolor=orange, % color for url links, only visible if colorlinks=true
linkbordercolor=red, % color for page links, only visible if colorlinks=true
pdfborderstyle={/S/U/W 1}, % border style will be underline of width 1pt
pdftitle={PDF-Title},
pdfauthor={Markus Pesch},
pdfsubject={PDF-Subject},
pdfkeywords={},
pdfcreator={pdflatex},
pdfproducer={LaTeX with hyperref}
}
% Paket: glossaries
% Beschreibung: Das Paket glossaries muss nach dem Paket hyperref geladen werden
% Dokumentation: http://ftp.gwdg.de/pub/ctan/macros/latex/contrib/glossaries/glossaries-user.pdf
% Option/en:
% acronyms - This is equivalent to acronym=true and may be used in the document class option list.
% section - This is a key=value option. Its value should be the name of a sectional unit (e.g. chapter).
% This will make the glossaries appear in the named sectional unit, otherwise each glossary will
% appear in a chapter, if chapters exist, otherwise in a section. Unnumbered sectional units will
% be used by default.
% toc - Add the glossaries to the table of contents.
\usepackage[toc,acronyms]{glossaries}
\makeglossaries
\include{referenzen/glossar}
% Paket: utf8
% Beschreibung: Stellt Umlaute richtig dar
% Option: inputenc - Erlaubt die Darstellung der gleichen Zeichen (Character) wie sie in stdin überliefert werden
\usepackage[utf8]{inputenc}
% Paket: lipsum
% Beschreibung:
% Option:
\usepackage{lipsum}
% Paket: makeindex
% Beschreibung: Ermöglicht das Indexieren von Wörter und den Befehl \printindex um den Index auszugeben
\usepackage{makeidx}
\makeindex
% Packet: Minted
% Beschreibung: Dient zum highlining von Quellcode wie beispielsweise Java, Bash oder Python.
% Option/en:
% autogobble: Leerzeichen zwischen linken Rand und Sourcecode einrücken bzw. weg schneiden.
% breaklines: Automatische Zeilenumbrüche
% cache: de- oder aktiviert den cache um Sourcecode zwischen zu speichern und so das PDF schneller zu erzeugen
% cachedir: Definiert den Pfad zum cache, an dem minted seine Daten zwischen speichern kann
% fontfamily: Die Schriftart die benutzt werden soll. tt, courier und helvetica sind vordefiniert.
% fontsize: Die Schriftgröße die benutzt werden soll. Beispielsweise fontsize=\footnotesize
% linenos: Zeilennummern
% keywordcase: Änderung der Buchstaben. Takes lower, upper, or capitalize.
% showspaces: Blendet Leerzeichen ein
\usepackage[cache=true]{minted}
% usemintedstyle
% Gebe 'pygmentize -L styles' im Terminal ein um alle verfügbaren styles anzuzeigen.
\usemintedstyle{tango}
% newminted
% Definiere neue aliase um einmalig ein highlighting pro Sprache zu deklarieren
% \newminted{<makroname>}{optionen} ist verfügbar unter "\<makroname>{code}"
\newminted{awk}{autogobble=true, breaklines=true, linenos=true}
\newminted{bash}{autogobble=true, breaklines=true, linenos=true}
\newminted{json}{autogobble=true, breaklines=true, linenos=true}
\newminted{julia}{autogobble=true, breaklines=true, linenos=true}
\newminted{r}{autogobble=true, breaklines=true, linenos=true}
\newminted{sql}{autogobble=true, breaklines=true, linenos=true, keywordcase=upper}
\newminted{xml}{autogobble=true, breaklines=true, linenos=true}
% newmintedfile
% Definiere neue Makros um automatisch Sourcecode aus Dateien zu highlighten.
% \makroname{Dateipfad}
\newmintedfile[inputawk]{awk}{autogobble=true, breaklines=true, linenos=true}
\newmintedfile[inputbash]{bash}{autogobble=true, breaklines=true, linenos=true}
\newmintedfile[inputjson]{json}{autogobble=true, breaklines=true, linenos=true}
\newmintedfile[inputjulia]{julia}{autogobble=true, breaklines=true, linenos=true}
\newmintedfile[inputr]{r}{autogobble=true, breaklines=true, linenos=true}
\newmintedfile[inputsql]{sql}{autogobble=true, breaklines=true, linenos=true, keywordcase=upper}
\newmintedfile{inputxml}{autogobble=true, breaklines=true, linenos=true}
% newmintinline
% Definiere neues Makro um Sourcecoude einzeiler zu highlighten
% \begin{awkcode} \end{awkcode}
\newmintinline{awk}{autogobble=true, breaklines=true, linenos=true}
\newmintinline{bash}{autogobble=true, breaklines=true, linenos=true}
\newmintinline{json}{autogobble=true, breaklines=true, linenos=true}
\newmintinline{julia}{autogobble=true, breaklines=true, linenos=true}
\newmintinline{r}{autogobble=true, breaklines=true, linenos=true}
\newmintinline{sql}{autogobble=true, breaklines=true, linenos=true, keywordcase=upper}
\newmintinline{xml}{autogobble=true, breaklines=true, linenos=true}
% Paket: multirow
% Beschreibung: Zum kombinieren mehrerer Zellen einer Tabelle
% Option:
\usepackage{multirow}
% Paket: natbib
% Beschreibung: Für Zitate
% Option: round - ?
%\usepackage[round]{natbib}
% Paket: pdflscape
% Beschreibung: Ermöglicht Seiten horizontal darzustellen
% Option: \begin{landscape} \end{landscape}
\usepackage{pdflscape}
% Paket: showframe
% Beschreibung: Blendet alle Frames (Textkörper, Fußzeile Kopzeile, Seitenrand) ein
% Option:
% \usepackage{showframe}
% Paket: subcaption
% Beschreibung: Bietet eine große Auswahl an Gestaltungsmöglichkeiten bezüglich der Beschriftung von Bildern und Tabellen
% die neben oder unter untereinander dargestellt werden sollen.
\usepackage{subcaption}
% format=NAME - Einstellung des grundsätzlichen Formats von Gleitobjektbeschriftungen
% indention=EINZUG - Einstellung des Einzugs der Beschriftung ab der zweiten Zeile
% labelformat=NAME - Einstellung der Zusammensetzung des Bezeichners (z. B. Label und Nummer) der Beschriftung
% labelsep=NAME - Einstellung des Trenners nach dem Bezeichner
% justification=NAME - Einstellung er Ausrichtung des Textes Beschriftung
% singlelinecheck=BOOL - Sonderbehandlung für einzeilige Beschriftungen ein- oder ausschalten
% font=NAME - Einstellung der Schrift der gesamten Beschriftung
% labelfont=NAME - Einstellung der Schrift des Bezeichners
% textfont=NAME - Einstellung der Schrift des Textes der Beschriftung
% margin=BREITE - Einstellung der Breite des Randes der Beschriftung
% width=BREITE - Einstellung der Breite der Beschriftung
% parskip=ABSTAND - Einstellung des Absatzabstandes der Beschriftung
% hangindent=EINZUG - Einstellung des Einzugs abgesehen von ersten Absatzzeilen
% style=NAME - Auswahl einer vordefinierten Gesamteinstellung
% aboveskip=ABSTAND - Einstellung des Abstandes vor einer Beschriftung
% belowskip=ABSTAND - Einstellung des Abstandes nach einer Beschriftung
% position=WAHL - Einstellung ob die Beschriftung als Über- oder Unterschrift formatiert werden soll
% tableposition=WAHL - Einstellung ob nur bei Tabellen die Beschriftung als Über- oder Unterschrift formatiert werden soll
\captionsetup[figure]{position=bottom}
\captionsetup[table]{position=bottom}
% Packet: tabularx
% Beschreibung: Werden Tabellen mit diesem Paket erstellt, ist es möglich Zeilenumbrüche in einer Zelle zu erzeugen
\usepackage{tabularx}
% Paket: textpos
% Beschreibung: Zum erstellen von Textboxen
% \begin{textblock*}{\textwidth}(0cm,0.5cm)
\usepackage{textpos}
% Paket: tikz
% Beschreibung: TikZ and PGF are TeX packages for creating graphics programmatically.
% Dokumentation:
\usepackage{tikz}
\usetikzlibrary{intersections}
\usetikzlibrary{arrows.meta}
% Packet: varwidth
% Beschreibung: The package defines a varwidth environment (based on minipage) which is an analogue
% of minipage, but whose resulting width is the natural width of its contents.
% Dokumentation: http://ctan.math.washington.edu/tex-archive/macros/latex/contrib/varwidth/varwidth-doc.pdf
% https://www.namsu.de/Extra/befehle/Minipage.html
% Option:
\usepackage{varwidth}
% Paket: verbatim
% Beschreibung: Bildet einen Quelltext exakt ab.
% Options:
\usepackage{verbatim}
% Paket: warapfig
% Beschreibung: Ermöglich das floaten von Texten neben Bildern
% Options:
% \begin{wrapfigure}{R}{0.30\textwidth}
% \includegraphics[width=0.30\textwidth]{img/middleware.png}
% \caption{Middleware}
% \end{wrapfigure}
\usepackage{wrapfig}
% Start des Dokuments
\begin{document}
% Set Globally Table-Margin
\def\arraystretch{1.2}
% Fetch Commit ID and Date
\immediate\write18{./git-info.sh commit > git-id.tmp}
\immediate\write18{./git-info.sh date > git-date.tmp}
\immediate\write18{./git-info.sh url > git-url.tmp}
% Importiere weitere .tex Dokumente
\include{./titel/titel}
\pagebreak
% Pagestyle
% Setze das Seitenlayout auf fancyhdr um Fuß- und Kopfzeilen zu setzen
\pagestyle{fancy}
% Löscht alle Kopf- und Fußzeilen des pagestyles fancyhdr
\fancyhf{}
% Fuß- und Kopfzeile des Paketes fancyhdr
% [L] - Linkeseite [O] - Ungerade Seitenzahlen [LE,LO] - Linkeseite, Gerade- und Ungerade Seitenanzahlen
% [C] - Mitte [E] - Gerade Seitenanzahlen [CE] - Seitenmitte, nur gerade Seitenanzahlen
% [R] - Rechteseite [RO] - Rechteseite, nur ungerade Seitenanzahlen
% \fancyhead Kopfzeile
% \fancyfoot Fußzeile
\fancyhead[L]{\rightmark}
\fancyhead[R]{\includegraphics[width=4cm]{img/logo.png}}
\fancyfoot[L]{Betriebssysteme / Linux WS21/22 - Aufgabensammlung}
\fancyfoot[C]{}
% Pixelstärke der Kopf- und Fußzeilenlinie
\renewcommand{\headrulewidth}{1pt}
\renewcommand{\footrulewidth}{1pt}
% Agenda
\tableofcontents
\pagebreak
% Setze die Seitenbeginn zurück
\setcounter{page}{1}
\fancyfoot[R]{Seite \thepage}
% Importiere weitere .tex Dokumente
% \include{./examples/examples}
\include{./chapters/01-ssh}
\include{./chapters/02-file-permissions}
\include{./chapters/03-network}
\include{./chapters/04-dns}
% \include{./chapters/05-dhcp}
% \include{./chapters/01-network}
% \include{./chapters/02-dns}
% \include{./chapters/03-ssh}
% \include{./chapters/04-file-permissions}
% \include{./chapters/05-directory-structure}
% \include{./chapters/06-filesystems}
% \include{./chapters/07-backups}
% \include{./chapters/08-textprocessing}
% \include{./chapters/99-questions}
% \include{./chapters/99-awk}
% Aufzählung aller Bilder
% \listoffigures
% \newpage
% Aufzählung aller Tabellen
% \listoftables
% \newpage
% Glossary
\printglossaries
\newpage
% Literatur
\printbibliography[heading=bibintoc]
\end{document}