\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 * * * * 5 8 * * 0 0 10 1 * * \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}