aktuelle.kurse/m122/bash-kursunterlagen/bash7PruefVorber/Bash_PruefVorber.tex
Harald G. Mueller 5b3ada99be muh
2023-01-17 11:21:58 +01:00

265 lines
6.9 KiB
TeX

\documentclass[a4paper,11pt]{report}
%\usepackage{isolatin1}
%\usepackage{german}
\usepackage{float}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{lastpage}
\usepackage{fancyhdr}
\usepackage{soul}
\usepackage{lmodern} % Latin Modern
\usepackage[ngerman]{babel, translator}
\usepackage[utf8]{inputenc}
%\usepackage[ngerman]{babel, translator}
%\usepackage[utf8x]{inputenc}
\usepackage[left=2.5cm,top=2cm,right=2cm,bottom=4cm]{geometry}
%Code listings
\usepackage{listings}
\usepackage{etoolbox}
\patchcmd{\chapter}{\thispagestyle{plain}}{\thispagestyle{fancy}}{}{}
\usepackage[]{hyperref}
\hypersetup{
linkcolor=blue,
pagecolor= blue,
urlcolor= blue,
colorlinks=true,
pdfborder=0 0 0
}
\usepackage[
nonumberlist, %keine Seitenzahlen anzeigen
acronym, %ein Abk�rzungsverzeichnis erstellen
toc, %Eintr�ge im Inhaltsverzeichnis
section] %im Inhaltsverzeichnis auf section-Ebene erscheinen
{glossaries}
\usepackage{hyperref}
%Ein eigenes Symbolverzeichnis erstellen
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
%Den Punkt am Ende jeder Beschreibung deaktivieren
\renewcommand*{\glspostdescription}{}
%Glossar-Befehle anschalten
\makeglossaries
%Diese Befehle sortieren die Eintr�ge in den
%einzelnen Listen:
%makeindex -s datei.ist -t datei.alg -o datei.acr datei.acn
%makeindex -s datei.ist -t datei.glg -o datei.gls datei.glo
%makeindex -s datei.ist -t datei.slg -o datei.syi datei.syg
% define acronyms here
\newacronym{PDF}{PDF}{Portable Document Format}
\newacronym{APDU}{APDU}{Application Protocol Data Unit}
\newacronym{AGPL}{AGPL}{Affero General Public License}
\newacronym{GPL}{GPL}{General Public License}
\newacronym{LGPL}{LGPL}{Lesser General Public License}
\newacronym{DCT}{DCT}{Discrete Cosine Transform}
\newacronym{TTA}{TTA}{Trusted Timestamp Authority}
\newacronym{OCSP}{OCSP}{Online Certificate Status Protocol}
\newacronym{PKI}{PKI}{Public Key Infrastructure}
%\newacronym{BDD}{BDD}{Behaviour Driven Development\protect\glsadd{glos:BDD}}
\newglossaryentry{Application Protocol Data Unit}
{
name={Application Protocol Data Unit},
description={blablabla}
}
\newglossaryentry{Copyleft}
{
name={Copyleft},
description={The copyleft ist the obligation required by the GLP (or AGPL) license to offer the source code of a work (and every derivative of it) to the public (open source). Copy{\bf{left}} can also be considered as the opposite of copy{\bf{right}}. }
}
%Befehle f�r Glossar
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\renewcommand\contentsname{Inhaltsverzeichnis}
%Einstellungen f??r code listings
\lstset{inputencoding=utf8, language=Java,tabsize=2, basicstyle=\small,breaklines=true,showstringspaces=false}
\pagestyle{fancy}
\setlength{\headheight}{38pt}
\setlength{\headwidth}{470pt}
\renewcommand{\headrule}{\hskip -\leftskip{\bf \quad \quad}\vbox to 5pt{\hbox to 455pt{\hrulefill}}}
\renewcommand{\footrule}{\hskip-\leftskip{\bf \quad \quad}{\hbox to 450 pt{\hrulefill}\newline}}
\fancyhf{}
\fancyheadoffset[L]{1cm}
\fancyfootoffset[L]{1cm}
%Kopfzeile links bzw. innen
\fancyhead[L]{\includegraphics[height=0.6in]{img/bfsulogo.jpg}}
%Kopfzeile mittig
\fancyhead[C]{}
%Kopfzeile rechts bzw. au??????????�?en
\fancyhead[R]{\hspace{10pt} Modul 122\\Abläufe mit Skripts/Makros automatisieren\\ \rightmark }
\fancyheadoffset[L]{1cm}
\fancyfootoffset[L]{1cm}
%Linie oben
\renewcommand{\headrulewidth}{0.7pt}
%Fu??????????�?zeile mittig
\cfoot{\vspace*{6mm}page:\ \thepage\ of \pageref{LastPage}}
\fancyfoot[R]{}
% footnote in footer
\newcommand{\fancyfootnotetext}[2]{%
\fancypagestyle{dingens}{%
\fancyfoot[LO,RE]{\parbox{12cm}{\footnotemark[#1]\footnotesize #2}}%
}%
\thispagestyle{dingens}%
}
%Linie unten
\renewcommand{\footrulewidth}{0.5pt}
\vspace*{15mm}
\textwidth 450pt
\begin{document}
\setcounter{tocdepth}{5}
%\thispagestyle{empty}
\begin{center}
\vspace{48pt}
\vspace{15pt}
\begin{huge}
\end{huge}
\vspace{10pt}
\begin{center}
\begin{Large}
Linux Bash \\ \vspace{20pt}
Übung Prüfungsvorbereitung
\end{Large}
\end{center}
\vspace{10pt}
\end{center}
\begin{scriptsize}
\begin{center}
\noindent Mario Bischof
\end{center}
\end{scriptsize}
\newpage
{\bf{Aufgaben:}}
\begin{quote}
{\bf{a)}} - Was macht folgende Zeile?
\begin{verbatim}
ifconfig | grep "Ether" -c
\end{verbatim}
{\bf{b)}} - Was macht folgende Zeile?
\begin{verbatim}
tar -vczf backup.tar.gz /root/
\end{verbatim}
{\bf{c)}} - Füllen sie eine Datei \verb|namen.txt| mit folgendem Inhalt
\begin{verbatim}
Otto
Peter
Martin
Christian
Andrea
Otto
Martin
Peter
Bob
\end{verbatim}
Was macht folgender Befehl?
\begin{verbatim}
cat namen.txt | sort -u
\end{verbatim}
{\bf{d)}} - Formulieren sie einen Befehl, welcher aus der Datei \verb|/etc/passwd| alle Heimverzeichnisse ausschneidet und in einer Datei \verb|homes.txt| speichert\\\\
{\bf{e)}} - Formulieren sie eine for-schleife, welche durch die Zahlen 1 bis 10 läuft und das Produkt der Zahlen mit sich selbst ausgibt\\\\
{\bf{f)}} - Wie oft laufen folgende cronjobs?
\begin{verbatim}
*/10 * * * * <befehl>
5 8 * * 0 <befehl>
0 10 1 * * <befehl>
\end{verbatim}
{\bf{g)}} - Was macht folgendes Skript?
\begin{verbatim}
#!/bin/bash
for i in $( ifconfig | grep "inet Adr" | grep -v "127.0.0.1" |
cut -d ":" -f 2 | cut -d "." -f 1-3 ); do
for k in $(seq 1 255); do
fping -c 1 -t250 $i.$k 2>&1 | grep " 0% " | cut -d " " -f 1 >> ips.txt
done
done
\end{verbatim}
{\bf{h)}} - Was macht folgender Befehl?
\begin{verbatim}
fping -g -c 1 -t250 172.16.6.0/24 2>&1 | grep " 0% " | cut -d " " -f 1 > ips.txt
\end{verbatim}
{\bf{i)}} - Was macht folgender Befehl?
\begin{verbatim}
find / -user otto -iname "*bash*" -exec cp {} /data/otto/ \;
\end{verbatim}
{\bf{j)}} - Was machen folgende Befehle?
\begin{verbatim}
for ip in $(seq 200 254);do echo 192.168.13.$ip; done > ips.txt
for ip in $(cat ips.txt);do dig -x $ip | grep $ip >> dns.txt; done
\end{verbatim}
\end{quote}
\newpage
{\bf{Lösungen:}}
\begin{quote}
{\bf{a)}} - Zählt wie oft der Begriff \emph{ether} in der Ausgabe von grep vorkommt.\\\\
{\bf{b)}} - Komprimiert und archiviert den Inhalt des Ordners \verb|/root/| in der Datei \verb|backup.tar.gz|\\\\
{\bf{c)}} - Gibt die Begriffe in alphabetischer Reihenfolge ohne Duplikate aus\\\\
{\bf{d)}} -
\begin{verbatim}
cat /etc/passwd | cut -d ':' -f 6 > homes.txt
\end{verbatim}
{\bf{e)}} -
\begin{verbatim}
for z in {1..10};do echo $((z*z)); done
\end{verbatim}
{\bf{f)}}
\begin{verbatim}
- Alle 10 Minuten
- Sonntags um 8:05 Uhr
- An jedem 1.Tag im Monat um 10:00 Uhr
\end{verbatim}
{\bf{g)}} - Beispiellösung zur Ping-sweep Aufgabe\\\\
{\bf{h)}} - Vereinfachung des Ping-sweeps mit \verb|-g|\\\\
{\bf{i)}} - Findet alle Dateien von user \verb|otto| mit dem Begriff bash im Namen und kopiert diese nach \verb|/data/otto|.\\\\
{\bf{j)}} - 1. Zeile: generiert IPs (24er Netz 192.168.13.x) und speichert diese in \verb|ips.txt|, 2.Zeile macht einen reverse DNS-lookup zu jeder IP in \verb|ips.txt|
\end{quote}
\end{document}