diff --git a/m122/Lektion10/.DS_Store b/m122/Lektion10/.DS_Store new file mode 100644 index 0000000..ff385d2 Binary files /dev/null and b/m122/Lektion10/.DS_Store differ diff --git a/m122/Lektion10/Praesentation/.DS_Store b/m122/Lektion10/Praesentation/.DS_Store new file mode 100644 index 0000000..4c7e19e Binary files /dev/null and b/m122/Lektion10/Praesentation/.DS_Store differ diff --git a/m122/Lektion10/Praesentation/Bash_L3.pdf b/m122/Lektion10/Praesentation/Bash_L3.pdf new file mode 100644 index 0000000..f785bd4 Binary files /dev/null and b/m122/Lektion10/Praesentation/Bash_L3.pdf differ diff --git a/m122/Lektion10/Praesentation/Bash_L3.tex b/m122/Lektion10/Praesentation/Bash_L3.tex new file mode 100644 index 0000000..f5edfb6 --- /dev/null +++ b/m122/Lektion10/Praesentation/Bash_L3.tex @@ -0,0 +1,204 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beamer Presentation +% LaTeX Template +% Version 1.0 (10/11/12) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND THEMES +%---------------------------------------------------------------------------------------- + +\documentclass{beamer} + +\usepackage{listings} +\usepackage{graphicx} +\usepackage{lastpage} +\usepackage{fancyhdr} +\usepackage{soul} + +\usepackage{lmodern} % Latin Modern + +\usepackage[utf8]{inputenc} + +\definecolor{beamer@zueriblue}{HTML}{009EE1} +\definecolor{beamer@lightblue}{HTML}{8BCCE8}\DeclareUnicodeCharacter{00A0}{ } + +\mode { + +% The Beamer class comes with a number of default slide themes +% which change the colors and layouts of slides. Below this is a list +% of all the themes, uncomment each in turn to see what they look like. + +%\usetheme{default} +%\usetheme{AnnArbor} +%\usetheme{Antibes} +%\usetheme{Bergen} +%\usetheme{Berkeley} +%\usetheme{Berlin} +%\usetheme{Boadilla} +%\usetheme{CambridgeUS} +%\usetheme{Copenhagen} +%\usetheme{Darmstadt} +%\usetheme{Dresden} +%\usetheme{Frankfurt} +%\usetheme{Goettingen} +%\usetheme{Hannover} +%\usetheme{Ilmenau} +%\usetheme{JuanLesPins} +%\usetheme{Luebeck} +%\usetheme{Madrid} +%\usetheme{Malmoe} +%\usetheme{Marburg} +%\usetheme{Montpellier} +%\usetheme{PaloAlto} +%\usetheme{Pittsburgh} +%\usetheme{Rochester} +%\usetheme{Singapore} +%\usetheme{Szeged} +%\usetheme{Warsaw} + +% As well as themes, the Beamer class has a number of color themes +% for any slide theme. Uncomment each of these in turn to see how it +% changes the colors of your current slide theme. + +%\usecolortheme{albatross} +%\usecolortheme{beaver} +%\usecolortheme{beetle} +%\usecolortheme{crane} +%\usecolortheme{dolphin} +%\usecolortheme{dove} +%\usecolortheme{fly} +%\usecolortheme{lily} +%\usecolortheme{orchid} +%\usecolortheme{rose} +%\usecolortheme{seagull} +%\usecolortheme{seahorse} +%\usecolortheme{whale} +%\usecolortheme{wolverine} + + \usetheme{Dresden} + \setbeamercolor*{palette primary}{use=dove,fg=blue,bg=beamer@lightblue} + + \setbeamercolor*{palette secondary}{use=dove,fg=blue,bg=beamer@lightblue} + \setbeamercolor*{palette tertiary}{use=dove,fg=white,bg=beamer@zueriblue} + + +%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line +%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line + +%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line +} + +\usepackage{graphicx} % Allows including images +\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\title[Bash - Lektion 3]{Linux Shell - Lektion 3} % The short title appears at the bottom of every slide, the full title is only on the title page + +\author{Mario Bischof} % Your name +\institute[BFSU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +{ +Berufsfachschule Uster \\ % Your institution for the title page +\medskip +\href{mailto:mario.bischof@bzu.ch}{mario.bischof@bzu.ch}% Your email address +} +\date{\today} % Date, can be changed to a custom date + +\begin{document} + +\begin{frame} +\includegraphics[height=0.4in]{img/bfsulogo.jpg} +\titlepage % Print the title page as the first slide + +\end{frame} + +\begin{frame} +\frametitle{Übersicht} % Table of contents slide, comment this block out to remove it +\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation +\end{frame} + +%---------------------------------------------------------------------------------------- +% PRESENTATION SLIDES +%---------------------------------------------------------------------------------------- + +%------------------------------------------------ + %------------------------------------------------ + +% A subsection can be created just before a set of slides with a common theme to further break down your presentation into chunks + +\section[vars]{Variablen} +\begin{frame}[fragile] + +\frametitle{Variablen} +\begin{itemize} +\item Variablen werden mit dem Zuweiseungsoperator \verb|=| gesetzt. +\item Auf den Inhalt von Variablen kann mit \verb|$| zugegriffen werden. +\item Der Inhalt einer Variable kann geändert werden +\end{itemize} + +\begin{verbatim} +[root@host /]# name="Hans" +[root@host /]# echo $name +Hans +[root@host /]# name="Muster" +[root@host /]# echo $name +Muster +\end{verbatim} +\end{frame} + +\begin{frame}[fragile] + +\frametitle{Variablen} +\begin{itemize} +\item Die Ausgabe eines Befehls kann einer Variable zugewiesen werden +\item Der Befehl muss in \verb|$( )| gesetzt werden +\item Der Inhalt von Variablen kann in anderen Befehlen weiterverwendet werden +\item Variablen können kopiert werden +\end{itemize} + +\begin{verbatim} +[root@host /]# datum=$(date +%Y_%m_%d) +[root@host /]# echo $datum +2015_10_06 +[root@host /]# touch file_$datum +[root@host /]# ls +file_2015_10_06 +[root@host /]# datum2=$datum; echo $datum2 +2015_10_06 +\end{verbatim} +\end{frame} + +\frametitle{Variablen} +\begin{itemize} +\item Die Ausgabe eines Befehls kann einer Variable zugewiesen werden +\item Der Befehl muss in \verb|$( )| gesetzt werden +\item Der Inhalt von Variablen kann in anderen Befehlen weiterverwendet werden +\item Variablen können kopiert werden +\end{itemize} + +\begin{verbatim} +[root@host /]# datum=$(date +%Y_%m_%d) +[root@host /]# echo $datum +2015_10_06 +[root@host /]# touch file_$datum +[root@host /]# ls +file_2015_10_06 +[root@host /]# datum2=$datum; echo $datum2 +2015_10_06 +\end{verbatim} + + + + + +\end{document} \ No newline at end of file diff --git a/m122/Lektion10/Praesentation/Lektion-Bash3.md b/m122/Lektion10/Praesentation/Lektion-Bash3.md new file mode 100644 index 0000000..ab9a6ef --- /dev/null +++ b/m122/Lektion10/Praesentation/Lektion-Bash3.md @@ -0,0 +1,77 @@ +::: frame +![image](img/bfsulogo.jpg){height="0.4in"} +::: + +::: frame +### Übersicht +::: + +# Variablen + +::: frame +### Variablen + +- Variablen werden mit dem Zuweiseungsoperator `=` gesetzt. + +- Auf den Inhalt von Variablen kann mit `$` zugegriffen werden. + +- Der Inhalt einer Variable kann geändert werden + +```{=html} + +``` + [root@host /]# name="Hans" + [root@host /]# echo $name + Hans + [root@host /]# name="Muster" + [root@host /]# echo $name + Muster +::: + +::: frame +### Variablen + +- Die Ausgabe eines Befehls kann einer Variable zugewiesen werden + +- Der Befehl muss in `$( )` gesetzt werden + +- Der Inhalt von Variablen kann in anderen Befehlen weiterverwendet + werden + +- Variablen können kopiert werden + +```{=html} + +``` + [root@host /]# datum=$(date +%Y_%m_%d) + [root@host /]# echo $datum + 2015_10_06 + [root@host /]# touch file_$datum + [root@host /]# ls + file_2015_10_06 + [root@host /]# datum2=$datum; echo $datum2 + 2015_10_06 +::: + +### Variablen + +- Die Ausgabe eines Befehls kann einer Variable zugewiesen werden + +- Der Befehl muss in `$( )` gesetzt werden + +- Der Inhalt von Variablen kann in anderen Befehlen weiterverwendet + werden + +- Variablen können kopiert werden + +```{=html} + +``` + [root@host /]# datum=$(date +%Y_%m_%d) + [root@host /]# echo $datum + 2015_10_06 + [root@host /]# touch file_$datum + [root@host /]# ls + file_2015_10_06 + [root@host /]# datum2=$datum; echo $datum2 + 2015_10_06 diff --git a/m122/Lektion10/Praesentation/img/.DS_Store b/m122/Lektion10/Praesentation/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/Lektion10/Praesentation/img/.DS_Store differ diff --git a/m122/Lektion10/Praesentation/img/bfsulogo.jpg b/m122/Lektion10/Praesentation/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion10/Praesentation/img/bfsulogo.jpg differ diff --git a/m122/Lektion10/Uebung/.DS_Store b/m122/Lektion10/Uebung/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/Lektion10/Uebung/.DS_Store differ diff --git a/m122/Lektion10/Uebung/Bash_Uebung1.pdf b/m122/Lektion10/Uebung/Bash_Uebung1.pdf new file mode 100644 index 0000000..872a973 Binary files /dev/null and b/m122/Lektion10/Uebung/Bash_Uebung1.pdf differ diff --git a/m122/Lektion10/Uebung/img/.DS_Store b/m122/Lektion10/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/Lektion10/Uebung/img/.DS_Store differ diff --git a/m122/Lektion10/Uebung/img/bfsulogo.jpg b/m122/Lektion10/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion10/Uebung/img/bfsulogo.jpg differ diff --git a/m122/Lektion10/Uebung/img/bzulogo.png b/m122/Lektion10/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/Lektion10/Uebung/img/bzulogo.png differ diff --git a/m122/Lektion10/Uebung/img/ps1.png b/m122/Lektion10/Uebung/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/Lektion10/Uebung/img/ps1.png differ diff --git a/m122/Lektion10/Uebung/img/ps2.png b/m122/Lektion10/Uebung/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/Lektion10/Uebung/img/ps2.png differ diff --git a/m122/Lektion10/Uebung/img/ps3.png b/m122/Lektion10/Uebung/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/Lektion10/Uebung/img/ps3.png differ diff --git a/m122/Lektion10/Uebung/img/ps4.png b/m122/Lektion10/Uebung/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/Lektion10/Uebung/img/ps4.png differ diff --git a/m122/Lektion10/Uebung/img/ps5.png b/m122/Lektion10/Uebung/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/Lektion10/Uebung/img/ps5.png differ diff --git a/m122/Lektion10/Uebung/img/ps6.png b/m122/Lektion10/Uebung/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/Lektion10/Uebung/img/ps6.png differ diff --git a/m122/Lektion10/Uebung/img/ps7.png b/m122/Lektion10/Uebung/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/Lektion10/Uebung/img/ps7.png differ diff --git a/m122/Lektion10/Uebung/img/ps8.png b/m122/Lektion10/Uebung/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/Lektion10/Uebung/img/ps8.png differ diff --git a/m122/Lektion10/Uebung/img/ps9.png b/m122/Lektion10/Uebung/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/Lektion10/Uebung/img/ps9.png differ diff --git a/m122/Lektion10/Uebung_Loes/.DS_Store b/m122/Lektion10/Uebung_Loes/.DS_Store new file mode 100644 index 0000000..168c12b Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/.DS_Store differ diff --git a/m122/Lektion10/Uebung_Loes/Bash_Uebung1Loes.pdf b/m122/Lektion10/Uebung_Loes/Bash_Uebung1Loes.pdf new file mode 100644 index 0000000..c8aa6c9 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/Bash_Uebung1Loes.pdf differ diff --git a/m122/Lektion10/Uebung_Loes/Bash_Uebung1Loes.tex b/m122/Lektion10/Uebung_Loes/Bash_Uebung1Loes.tex new file mode 100644 index 0000000..ea5dc65 --- /dev/null +++ b/m122/Lektion10/Uebung_Loes/Bash_Uebung1Loes.tex @@ -0,0 +1,299 @@ +\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} +Bash\\ \vspace{20pt} +Übung 1 - Beispiellösungen +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\noindent{\bf{Aufgabe 1 - Repetition: Navigieren in Verzeichnissen}} +\begin{quote} +\begin{enumerate} +\item \begin{verbatim} +[root@localhost: ] cd ~ +\end{verbatim} +\item \begin{verbatim} +[root@localhost: ~ ] cd /var/log +\end{verbatim} +\item \begin{verbatim} +[root@localhost: log ] cd /etc/udev +\end{verbatim} +\item \begin{verbatim} +[root@localhost: udev ] cd .. +\end{verbatim} +\item \begin{verbatim} +[root@localhost: udev ] cd network +\end{verbatim} +\item \begin{verbatim} +[root@localhost: network ] cd ../../dev +\end{verbatim} +\end{enumerate}\vspace{10pt} +\end{quote} +\noindent {\bf{Aufgabe 2 - stdout, stdin, stderr:}} +\begin{quote} +{\bf{a)}} \begin{verbatim} +ls -z 2> /root/errorsLs.log +\end{verbatim} +{\bf{b)}} \begin{verbatim} +echo "sdfonsdodsf" > datei.txt +cat datei.txt > datei2.txt +cat datei.txt > datei2.txt +cat datei2.txt +cat datei.txt >> datei2.txt +cat datei.txt >> datei2.txt +cat datei2.txt +# Unterschied, >> hängt Inhalt an, > überschreibt Inhalt +cat datei.txt >> datei.txt +# Erzeugt Fehler, Quell- ist Zieldatei +\end{verbatim} +{\bf{c)}} +\begin{verbatim} +whoami > info.txt +\end{verbatim} +{\bf{d)}} +\begin{verbatim} +id >> info.txt +\end{verbatim} +{\bf{e)}} +\begin{verbatim} +cat info-txt | wc -w +\end{verbatim} +\end{quote} +\noindent {\bf{Aufgabe 3 - grep, cut:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +cat file.txt | grep obelix +cat file.txt | grep 2 +cat file.txt | grep e +cat file.txt | grep -v gamma +cat file.txt | grep -E "1|2|3" +\end{verbatim} + +{\bf{b)}} +\begin{verbatim} +cat file.txt | cut -d ':' -f 1 +cat file.txt | cut -d ':' -f 2 +cat file.txt | cut -d ':' -f 3 +\end{verbatim} +\vspace{10pt} +\end{quote} + +{\bf{Aufgabe 4 - Wildcards:}} +\begin{quote} +\begin{enumerate} +\item \verb|mkdir ~/Docs| +\item \verb|touch ~/Docs/file{1..10}| +\item \verb|rm -f ~/Docs/file1*| +\item \verb|rm -f ~/Docs/file[247]| +\item \verb|rm -f ~/Docs/* oder rm -f ~/Docs/file*| +\end{enumerate} + +\begin{enumerate} +\item \verb|mkdir Files|, \verb|cd Files| +\item \verb|touch file{1..10}| (Erzeugt fileX von 1 bis 10) +\item \verb|cd ..| , \verb|cp -R Files Files2| +\item \verb|cp -R Files Files2/Files3| +\item \verb|mv Files Files1| +\item \verb|rm -f *| +\end{enumerate} +\end{quote} +\vspace{10pt} +{\bf{Aufgabe 5 - Tilde expansions:}} +\begin{quote} +\begin{itemize} +\item Siehe Präsentationsfolien +\end{itemize} +\end{quote} + +\vspace{10pt} +{\bf{Aufgabe 6 - Für Fortgeschrittene:}} +\begin{quote} +\begin{itemize} +\item +\begin{verbatim} +Findet alle Zeilen, welche eine PCI-Adresse beinhalten +\end{verbatim} +\item +\begin{verbatim} +Findet IP-Adressen +\end{verbatim} +\item +\begin{verbatim} +Findet alle Dateien, welche dem Benutzer root gehören ( -user root ), +im Dateinamen das Wort bash vorkommt ( -iname "*bash*", Gross- und +Kleinschreibung wird ignoriert) und kopiert diese nach +/root ( -exec cp {} /root/ ). +\end{verbatim} +\end{itemize} +\end{quote} +\end{document} + + diff --git a/m122/Lektion10/Uebung_Loes/Bash_Uebungsaufgaben-1_Loesungen.md b/m122/Lektion10/Uebung_Loes/Bash_Uebungsaufgaben-1_Loesungen.md new file mode 100644 index 0000000..68c70d8 --- /dev/null +++ b/m122/Lektion10/Uebung_Loes/Bash_Uebungsaufgaben-1_Loesungen.md @@ -0,0 +1,114 @@ +::: center +::: huge +::: + +::: center +::: Large +Bash\ +Übung 1 - Beispiellösungen +::: +::: +::: + +::: scriptsize +::: center +Mario Bischof +::: +::: + +> 1. [root@localhost: ] cd ~ +> +> 2. [root@localhost: ~ ] cd /var/log +> +> 3. [root@localhost: log ] cd /etc/udev +> +> 4. [root@localhost: udev ] cd .. +> +> 5. [root@localhost: udev ] cd network +> +> 6. [root@localhost: network ] cd ../../dev + +> **a)** +> +> ls -z 2> /root/errorsLs.log +> +> **b)** +> +> echo "sdfonsdodsf" > datei.txt +> cat datei.txt > datei2.txt +> cat datei.txt > datei2.txt +> cat datei2.txt +> cat datei.txt >> datei2.txt +> cat datei.txt >> datei2.txt +> cat datei2.txt +> # Unterschied, >> hängt Inhalt an, > überschreibt Inhalt +> cat datei.txt >> datei.txt +> # Erzeugt Fehler, Quell- ist Zieldatei +> +> **c)** +> +> whoami > info.txt +> +> **d)** +> +> id >> info.txt +> +> **e)** +> +> cat info-txt | wc -w + +> **a)** +> +> cat file.txt | grep obelix +> cat file.txt | grep 2 +> cat file.txt | grep e +> cat file.txt | grep -v gamma +> cat file.txt | grep -E "1|2|3" +> +> **b)** +> +> cat file.txt | cut -d ':' -f 1 +> cat file.txt | cut -d ':' -f 2 +> cat file.txt | cut -d ':' -f 3 + +**Aufgabe 4 - Wildcards:** + +> 1. `mkdir ~/Docs` +> +> 2. `touch ~/Docs/file{1..10}` +> +> 3. `rm -f ~/Docs/file1*` +> +> 4. `rm -f ~/Docs/file[247]` +> +> 5. `rm -f ~/Docs/* oder rm -f ~/Docs/file*` +> +> ```{=html} +> +> ``` +> 1. `mkdir Files`, `cd Files` +> +> 2. `touch file{1..10}` (Erzeugt fileX von 1 bis 10) +> +> 3. `cd ..` , `cp -R Files Files2` +> +> 4. `cp -R Files Files2/Files3` +> +> 5. `mv Files Files1` +> +> 6. `rm -f *` + +**Aufgabe 5 - Tilde expansions:** + +> - Siehe Präsentationsfolien + +**Aufgabe 6 - Für Fortgeschrittene:** + +> - Findet alle Zeilen, welche eine PCI-Adresse beinhalten +> +> - Findet IP-Adressen +> +> - Findet alle Dateien, welche dem Benutzer root gehören ( -user root ), +> im Dateinamen das Wort bash vorkommt ( -iname "*bash*", Gross- und +> Kleinschreibung wird ignoriert) und kopiert diese nach +> /root ( -exec cp {} /root/ ). diff --git a/m122/Lektion10/Uebung_Loes/img/.DS_Store b/m122/Lektion10/Uebung_Loes/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/.DS_Store differ diff --git a/m122/Lektion10/Uebung_Loes/img/bfsulogo.jpg b/m122/Lektion10/Uebung_Loes/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/bfsulogo.jpg differ diff --git a/m122/Lektion10/Uebung_Loes/img/bzulogo.png b/m122/Lektion10/Uebung_Loes/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/bzulogo.png differ diff --git a/m122/Lektion10/Uebung_Loes/img/ps1.png b/m122/Lektion10/Uebung_Loes/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/ps1.png differ diff --git a/m122/Lektion10/Uebung_Loes/img/ps2.png b/m122/Lektion10/Uebung_Loes/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/ps2.png differ diff --git a/m122/Lektion10/Uebung_Loes/img/ps3.png b/m122/Lektion10/Uebung_Loes/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/ps3.png differ diff --git a/m122/Lektion10/Uebung_Loes/img/ps4.png b/m122/Lektion10/Uebung_Loes/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/ps4.png differ diff --git a/m122/Lektion10/Uebung_Loes/img/ps5.png b/m122/Lektion10/Uebung_Loes/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/ps5.png differ diff --git a/m122/Lektion10/Uebung_Loes/img/ps6.png b/m122/Lektion10/Uebung_Loes/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/ps6.png differ diff --git a/m122/Lektion10/Uebung_Loes/img/ps7.png b/m122/Lektion10/Uebung_Loes/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/ps7.png differ diff --git a/m122/Lektion10/Uebung_Loes/img/ps8.png b/m122/Lektion10/Uebung_Loes/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/ps8.png differ diff --git a/m122/Lektion10/Uebung_Loes/img/ps9.png b/m122/Lektion10/Uebung_Loes/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/Lektion10/Uebung_Loes/img/ps9.png differ diff --git a/m122/Lektion11/.DS_Store b/m122/Lektion11/.DS_Store new file mode 100644 index 0000000..1e81da7 Binary files /dev/null and b/m122/Lektion11/.DS_Store differ diff --git a/m122/Lektion11/Uebung/.DS_Store b/m122/Lektion11/Uebung/.DS_Store new file mode 100644 index 0000000..b82d18f Binary files /dev/null and b/m122/Lektion11/Uebung/.DS_Store differ diff --git a/m122/Lektion11/Uebung/Bash_Uebungsaufgaben.md b/m122/Lektion11/Uebung/Bash_Uebungsaufgaben.md new file mode 100644 index 0000000..e396f93 --- /dev/null +++ b/m122/Lektion11/Uebung/Bash_Uebungsaufgaben.md @@ -0,0 +1,50 @@ +::: center +::: huge +::: + +::: center +::: Large +Bash\ +Übungsaufgaben Skripting +::: +::: +::: + +::: scriptsize +::: center +Mario Bischof +::: +::: + +> 1. Erzeugt Benutzer anhand einer Liste von Benutzernamen in einer +> Textdatei (via Parameter angegebenen).\ +> Hinweis: Benutzen sie `useradd` und `cat`. +> +> 2. Fügt einen Benutzer anhand einer Liste von Gruppen in einer +> Textdatei (via Parameter angegebenen) den jeweiligen Gruppen +> hinzu.\ +> Hinweis: Benutzen sie `groupadd` und `cat`. +> +> 3. Findet alle Dateien, welche einem (via Parameter angegebenen) +> Benutzer gehören und kopiert diese an den aktuellen Ort. Die +> kopierten Dateien werden zu einem `tar.gz` Archiv zusammengefasst +> und danach gelöscht. Die Archivdatei wird mit dem Benutzernamen +> und dem aktuellen Datum benannt.\ +> Hinweis: Benutzen sie `find`, `tar`, `rm` und `date`. +> +> 4. Ermittelt die eigene IP-Adresse und macht einen PING-Sweep für das +> Subnetz der eigenen IP. Gibt aus, welche Hosts up sind und +> speichert die IP-Adressen der Hosts in einer Textdatei.\ +> Hinweis: Benutzen sie `ping` (oder `fping`), `ifconfig` und +> `grep`. +> +> 5. Ermittelt die events der Stadt Zürich für das aktuellen Datum von +> usgang.ch. Erweitern sie das Skript danach auf beliebige Städte +> (unter usgang.ch gelistete) und die Angabe eines Datums (wenn kein +> Datum angegeben wird, wird das aktuelle angewendet).\ +> Hinweis: Benutzen sie `curl`, `grep` und `cut`. Der erste, der ein +> funktionierendes Skript für diese Aufgabe einsendet, gewinnt +> \"Gipfeli und Schoggistengeli\". + +Als Informationsquelle dient folgendes Onlinebuch: + diff --git a/m122/Lektion11/Uebung/Bash_Uebungsaufgaben.pdf b/m122/Lektion11/Uebung/Bash_Uebungsaufgaben.pdf new file mode 100644 index 0000000..93b1a88 Binary files /dev/null and b/m122/Lektion11/Uebung/Bash_Uebungsaufgaben.pdf differ diff --git a/m122/Lektion11/Uebung/Bash_Uebungsaufgaben.tex b/m122/Lektion11/Uebung/Bash_Uebungsaufgaben.tex new file mode 100644 index 0000000..ce281d0 --- /dev/null +++ b/m122/Lektion11/Uebung/Bash_Uebungsaufgaben.tex @@ -0,0 +1,191 @@ +\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} +Bash\\ \vspace{20pt} +Übungsaufgaben Skripting +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\noindent{\bf{Aufgaben}} +\begin{quote} +\begin{enumerate} +\item Erzeugt Benutzer anhand einer Liste von Benutzernamen in einer Textdatei (via Parameter angegebenen). \\ Hinweis: Benutzen sie \verb|useradd| und \verb|cat|. +\item Fügt einen Benutzer anhand einer Liste von Gruppen in einer Textdatei (via Parameter angegebenen) den jeweiligen Gruppen hinzu. \\ Hinweis: Benutzen sie \verb|groupadd| und \verb|cat|. + +\item Findet alle Dateien, welche einem (via Parameter angegebenen) Benutzer gehören und kopiert diese an den aktuellen Ort. Die kopierten Dateien werden zu einem \verb|tar.gz| Archiv zusammengefasst und danach gelöscht. Die Archivdatei wird mit dem Benutzernamen und dem aktuellen Datum benannt. \\ Hinweis: Benutzen sie \verb|find|, \verb|tar|, \verb|rm| und \verb|date|. +\item Ermittelt die eigene IP-Adresse und macht einen PING-Sweep für das Subnetz der eigenen IP. Gibt aus, welche Hosts up sind und speichert die IP-Adressen der Hosts in einer Textdatei. \\ Hinweis: Benutzen sie \verb|ping| (oder \verb|fping|), \verb|ifconfig| und \verb|grep|. +\item Ermittelt die events der Stadt Zürich für das aktuellen Datum von usgang.ch. Erweitern sie das Skript danach auf beliebige Städte (unter usgang.ch gelistete) und die Angabe eines Datums (wenn kein Datum angegeben wird, wird das aktuelle angewendet). \\ Hinweis: Benutzen sie \verb|curl|, \verb|grep| und \verb|cut|. Der erste, der ein funktionierendes Skript für diese Aufgabe einsendet, gewinnt "Gipfeli und Schoggistengeli". +\end{enumerate} +\end{quote} +Als Informationsquelle dient folgendes Onlinebuch: \url{http://openbook.rheinwerk-verlag.de/shell_programmierung/} + +\end{document} + + diff --git a/m122/Lektion11/Uebung/img/.DS_Store b/m122/Lektion11/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/Lektion11/Uebung/img/.DS_Store differ diff --git a/m122/Lektion11/Uebung/img/bfsulogo.jpg b/m122/Lektion11/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion11/Uebung/img/bfsulogo.jpg differ diff --git a/m122/Lektion11/Uebung/img/bzulogo.png b/m122/Lektion11/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/Lektion11/Uebung/img/bzulogo.png differ diff --git a/m122/Lektion12/.DS_Store b/m122/Lektion12/.DS_Store new file mode 100644 index 0000000..1e81da7 Binary files /dev/null and b/m122/Lektion12/.DS_Store differ diff --git a/m122/Lektion12/Uebung/.DS_Store b/m122/Lektion12/Uebung/.DS_Store new file mode 100644 index 0000000..b82d18f Binary files /dev/null and b/m122/Lektion12/Uebung/.DS_Store differ diff --git a/m122/Lektion12/Uebung/Bash_Uebungsaufgaben2.md b/m122/Lektion12/Uebung/Bash_Uebungsaufgaben2.md new file mode 100644 index 0000000..c457ec0 --- /dev/null +++ b/m122/Lektion12/Uebung/Bash_Uebungsaufgaben2.md @@ -0,0 +1,52 @@ +::: center +::: huge +::: + +::: center +::: Large +Bash\ +Übungsaufgaben 2 Skripting +::: +::: +::: + +::: scriptsize +::: center +Mario Bischof +::: +::: + +> 1. Erstellen sie einen Ordner `/root/trash` und erzeugen sie einige +> Dateien darin. Erstellen sie ein Skript, welches alle 5 Minuten +> die Dateien innerhalb von diesem Ordner löscht (für Infos siehe +> auch Link 3 im Anhang). Überprüfen sie, ob ihr Skript korrekt +> eingerichtet ist, indem sie nachsehe, ob die Files nach 5 Minuten +> gelöscht wurden. +> +> 2. Erstellen sie ein Skript, mit welchem eine IP-Adressrange *bannen* +> oder *unbannen* können. Es gibt unterschiedliche tools, womit sie +> diese Funktionalität umsetzen können. Verwenden sie das Internet +> zur Informationssuche. +> +> 3. Erstellen sie folgende Benutzer und Gruppen. Benutzen sie zur +> Automatisierung die Skripte aus Bash Uebungsaufgaben 1. Versuchen +> sie den Prozess der Erstellung möglichst stark zu automatisieren: +> +> ::: center +> ![image](img/u1.png){height="3.8in"} +> ::: +> +> 4. Erstellen sie folgende Ordnerstruktur und setzen sie die +> abgebildeten Berechtigungen (Auf den Berechtigungen ist auch das +> SGID-Bit (`s`) und sticky-Bit (`T`) abgebildet. Setzen sie auch +> dieses. Sie finden eine Erklärung und Anleitung im zweiten Link +> zuunterst in diesem Übungsblatt.) : +> +> ::: center +> ![image](img/u2.png){height="1.8in"} +> ::: + +\ +\ +\ + diff --git a/m122/Lektion12/Uebung/Bash_Uebungsaufgaben2.pdf b/m122/Lektion12/Uebung/Bash_Uebungsaufgaben2.pdf new file mode 100644 index 0000000..701cd53 Binary files /dev/null and b/m122/Lektion12/Uebung/Bash_Uebungsaufgaben2.pdf differ diff --git a/m122/Lektion12/Uebung/Bash_Uebungsaufgaben2.tex b/m122/Lektion12/Uebung/Bash_Uebungsaufgaben2.tex new file mode 100644 index 0000000..479a7ce --- /dev/null +++ b/m122/Lektion12/Uebung/Bash_Uebungsaufgaben2.tex @@ -0,0 +1,200 @@ +\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} +Bash\\ \vspace{20pt} +Übungsaufgaben 2 Skripting +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\noindent{\bf{Aufgaben}} +\begin{quote} +\begin{enumerate} +\item Erstellen sie einen Ordner \verb|/root/trash| und erzeugen sie einige Dateien darin. Erstellen sie ein Skript, welches alle 5 Minuten die Dateien innerhalb von diesem Ordner löscht (für Infos siehe auch Link 3 im Anhang). Überprüfen sie, ob ihr Skript korrekt eingerichtet ist, indem sie nachsehe, ob die Files nach 5 Minuten gelöscht wurden. +\item Erstellen sie ein Skript, mit welchem eine IP-Adressrange \emph{bannen} oder \emph{unbannen} können. Es gibt unterschiedliche tools, womit sie diese Funktionalität umsetzen können. Verwenden sie das Internet zur Informationssuche. +\item Erstellen sie folgende Benutzer und Gruppen. Benutzen sie zur Automatisierung die Skripte aus Bash Uebungsaufgaben 1. Versuchen sie den Prozess der Erstellung möglichst stark zu automatisieren: +\begin{center} +\includegraphics[height=3.8in]{img/u1.png} +\end{center} +\item Erstellen sie folgende Ordnerstruktur und setzen sie die abgebildeten Berechtigungen (Auf den Berechtigungen ist auch das SGID-Bit (\verb|s|) und sticky-Bit (\verb|T|) abgebildet. Setzen sie auch dieses. Sie finden eine Erklärung und Anleitung im zweiten Link zuunterst in diesem Übungsblatt.) : +\begin{center} +\includegraphics[height=1.8in]{img/u2.png} +\end{center} + +\end{enumerate} + +\end{quote} +\url{http://linux-infopage.de/show.php?page=berichte-berechtigungen}\\ +\url{http://www.zettel-it.de/docs/SUID-SGID-und-Sticky-Bit.pdf}\\ +\url{https://www.howtoforge.de/anleitung/eine-kurze-einfuhrung-in-cron-jobs/}\\ +\url{http://openbook.rheinwerk-verlag.de/shell_programmierung/} + +\end{document} + + diff --git a/m122/Lektion12/Uebung/img/.DS_Store b/m122/Lektion12/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/Lektion12/Uebung/img/.DS_Store differ diff --git a/m122/Lektion12/Uebung/img/bfsulogo.jpg b/m122/Lektion12/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion12/Uebung/img/bfsulogo.jpg differ diff --git a/m122/Lektion12/Uebung/img/bzulogo.png b/m122/Lektion12/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/Lektion12/Uebung/img/bzulogo.png differ diff --git a/m122/Lektion12/Uebung/img/u1.png b/m122/Lektion12/Uebung/img/u1.png new file mode 100644 index 0000000..2d6815a Binary files /dev/null and b/m122/Lektion12/Uebung/img/u1.png differ diff --git a/m122/Lektion12/Uebung/img/u2.png b/m122/Lektion12/Uebung/img/u2.png new file mode 100644 index 0000000..3d0c51c Binary files /dev/null and b/m122/Lektion12/Uebung/img/u2.png differ diff --git a/m122/Lektion13/.DS_Store b/m122/Lektion13/.DS_Store new file mode 100644 index 0000000..e6183b4 Binary files /dev/null and b/m122/Lektion13/.DS_Store differ diff --git a/m122/Lektion13/Uebung/.DS_Store b/m122/Lektion13/Uebung/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/Lektion13/Uebung/.DS_Store differ diff --git a/m122/Lektion13/Uebung/Bash_PruefVorber.md b/m122/Lektion13/Uebung/Bash_PruefVorber.md new file mode 100644 index 0000000..d8b99fa --- /dev/null +++ b/m122/Lektion13/Uebung/Bash_PruefVorber.md @@ -0,0 +1,115 @@ +::: center +::: huge +::: + +::: center +::: Large +Linux Bash\ +Übung Prüfungsvorbereitung +::: +::: +::: + +::: scriptsize +::: center +Mario Bischof +::: +::: + +**Aufgaben:** + +> **a)** - Was macht folgende Zeile? +> +> ifconfig | grep "Ether" -c +> +> **b)** - Was macht folgende Zeile? +> +> tar -vczf backup.tar.gz /root/ +> +> **c)** - Füllen sie eine Datei `namen.txt` mit folgendem Inhalt +> +> Otto +> Peter +> Martin +> Christian +> Andrea +> Otto +> Martin +> Peter +> Bob +> +> Was macht folgender Befehl? +> +> cat namen.txt | sort -u +> +> **d)** - Formulieren sie einen Befehl, welcher aus der Datei +> `/etc/passwd` alle Heimverzeichnisse ausschneidet und in einer Datei +> `homes.txt` speichert\ +> \ +> **e)** - Formulieren sie eine for-schleife, welche durch die Zahlen 1 +> bis 10 läuft und das Produkt der Zahlen mit sich selbst ausgibt\ +> \ +> **f)** - Wie oft laufen folgende cronjobs? +> +> */10 * * * * +> 5 8 * * 0 +> 0 10 1 * * +> +> **g)** - Was macht folgendes Skript? +> +> #!/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 +> +> **h)** - Was macht folgender Befehl? +> +> fping -g -c 1 -t250 172.16.6.0/24 2>&1 | grep " 0% " | cut -d " " -f 1 > ips.txt +> +> **i)** - Was macht folgender Befehl? +> +> find / -user otto -iname "*bash*" -exec cp {} /data/otto/ \; +> +> **j)** - Was machen folgende Befehle? +> +> 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 + +**Lösungen:** + +> **a)** - Zählt wie oft der Begriff *ether* in der Ausgabe von grep +> vorkommt.\ +> \ +> **b)** - Komprimiert und archiviert den Inhalt des Ordners `/root/` in +> der Datei `backup.tar.gz`\ +> \ +> **c)** - Gibt die Begriffe in alphabetischer Reihenfolge ohne +> Duplikate aus\ +> \ +> **d)** - +> +> cat /etc/passwd | cut -d ':' -f 6 > homes.txt +> +> **e)** - +> +> for z in {1..10};do echo $((z*z)); done +> +> **f)** +> +> - Alle 10 Minuten +> - Sonntags um 8:05 Uhr +> - An jedem 1.Tag im Monat um 10:00 Uhr +> +> **g)** - Beispiellösung zur Ping-sweep Aufgabe\ +> \ +> **h)** - Vereinfachung des Ping-sweeps mit `-g`\ +> \ +> **i)** - Findet alle Dateien von user `otto` mit dem Begriff bash im +> Namen und kopiert diese nach `/data/otto`.\ +> \ +> **j)** - 1. Zeile: generiert IPs (24er Netz 192.168.13.x) und +> speichert diese in `ips.txt`, 2.Zeile macht einen reverse DNS-lookup +> zu jeder IP in `ips.txt` diff --git a/m122/Lektion13/Uebung/Bash_PruefVorber.pdf b/m122/Lektion13/Uebung/Bash_PruefVorber.pdf new file mode 100644 index 0000000..6f34516 Binary files /dev/null and b/m122/Lektion13/Uebung/Bash_PruefVorber.pdf differ diff --git a/m122/Lektion13/Uebung/Bash_PruefVorber.tex b/m122/Lektion13/Uebung/Bash_PruefVorber.tex new file mode 100644 index 0000000..e33ccdd --- /dev/null +++ b/m122/Lektion13/Uebung/Bash_PruefVorber.tex @@ -0,0 +1,264 @@ +\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} + + diff --git a/m122/Lektion13/Uebung/img/.DS_Store b/m122/Lektion13/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/Lektion13/Uebung/img/.DS_Store differ diff --git a/m122/Lektion13/Uebung/img/bfsulogo.jpg b/m122/Lektion13/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion13/Uebung/img/bfsulogo.jpg differ diff --git a/m122/Lektion13/Uebung/img/bzulogo.png b/m122/Lektion13/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/Lektion13/Uebung/img/bzulogo.png differ diff --git a/m122/Lektion13/Uebung_Loes/.DS_Store b/m122/Lektion13/Uebung_Loes/.DS_Store new file mode 100644 index 0000000..168c12b Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/.DS_Store differ diff --git a/m122/Lektion13/Uebung_Loes/BashUebungsaugaben1und2_Loes.pdf b/m122/Lektion13/Uebung_Loes/BashUebungsaugaben1und2_Loes.pdf new file mode 100644 index 0000000..dd68b75 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/BashUebungsaugaben1und2_Loes.pdf differ diff --git a/m122/Lektion13/Uebung_Loes/BashUebungsaugaben1und2_Loes.tex b/m122/Lektion13/Uebung_Loes/BashUebungsaugaben1und2_Loes.tex new file mode 100644 index 0000000..f91645e --- /dev/null +++ b/m122/Lektion13/Uebung_Loes/BashUebungsaugaben1und2_Loes.tex @@ -0,0 +1,271 @@ +\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} +Beispiellösungen Übungsaufgaben 1 \& 2 +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\begin{quote} +{\bf{Aufgabe 1.1:}}\\\\ +Der Dateiname, welcher die Benutzernamen beinhaltet, wird mit \verb|$1| übergeben. +\begin{verbatim} +#!/bin/bash +for user in $(cat $1); do useradd $user; done +\end{verbatim} + + +{\bf{Aufgabe 1.2:}}\\\\ +Der Dateiname, welcher die Gruppen beinhaltet, wird it \verb|$1| übergeben, der Benutzernamen mit \verb|$2|. +\begin{verbatim} +#!/bin/bash +for group in $(cat $1); do groupadd $group $2; done +\end{verbatim} + +{\bf{Aufgabe 1.3:}}\\\\ +Der Benutzername wird mit \verb|$1| übergeben +\begin{verbatim} +#!/bin/bash +name=$1_$(date '+%y-%m-%d').tar.gz; +find / -user $1 -exec cp {} /root/found/ \; +tar -zcvf "/root/found/$name" /root/found/; +find /root/found/ -type f ! -name "$name" -delete; +\end{verbatim} + +{\bf{Aufgabe 1.4:}}\\\\ +Das tool \verb|fping| muss installiert sein (\verb|apt-get install fping|). +\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 + +# alternative Lösung: +fping -g -c 1 -t250 172.16.6.0/24 2>&1 | grep " 0% " | cut -d " " -f 1 > ips.txt +\end{verbatim} + +{\bf{Aufgabe 1.5:}}\\\\ +Bonusfrage +\newpage +{\bf{Aufgabe 2.1:}} +\begin{verbatim} +[root@host: ] mkdir /root/trash +[root@host: ] touch /root/trash/file{1..10} +[root@host: ] nano /root/trash.sh +#!/bin/bash +rm /root/trash/* +[root@host: ] chmod +x trash.sh +[root@host: ] crontab -e +*/5 * * * * /root/trash.sh +[root@host: ] watch ls /root/trash +(Warten bis files verschwinden --> erfolgreiche Ausführung) +\end{verbatim} +{\bf{Aufgabe 2.2:}}\\\\ +IP wird als \verb|$1| übergeben, \emph{ban} oder \emph{unban} als \verb|$2|. +\begin{verbatim} +#!/bin/bash +if [ $2 = "ban" ] + then + echo "banning " $1 + iptables -A INPUT -s $1 -j DROP +elif [ $2 = "unban" ] + then + echo "unbanning " $1 + iptables -D INPUT -s $1 DROP +else + echo "Verwendung:" + echo "1.Arg: IP-Adresse" + echo "2.Arg.: ban oder unban" + echo "Beispiel: ./ban.sh 192.168.13.3 ban" +fi +\end{verbatim} + +{\bf{Aufgabe 2.4:}}\\\\ +Setzen des SGID Bits (3 verschiedene Varianten): +\begin{verbatim} +[root@host: ] chmod g+s /data/myFile +[root@host: ] chmod +s /data/myFile +[root@host: ] chmod 2755 /data/myFile +\end{verbatim} +Setzen des Sticky Bits (3 verschiedene Varianten): +\begin{verbatim} +[root@host: ] chmod o+t /data +[root@host: ] chmod +t /data +[root@host: ] chmod 1755 /data +\end{verbatim} +\end{quote} + + +\end{document} + + diff --git a/m122/Lektion13/Uebung_Loes/Bash_Uebungsaufgaben-1und2_Loesungen.md b/m122/Lektion13/Uebung_Loes/Bash_Uebungsaufgaben-1und2_Loesungen.md new file mode 100644 index 0000000..7b7a5b1 --- /dev/null +++ b/m122/Lektion13/Uebung_Loes/Bash_Uebungsaufgaben-1und2_Loesungen.md @@ -0,0 +1,107 @@ +::: center +::: huge +::: + +::: center +::: Large +Linux Bash\ +Beispiellösungen Übungsaufgaben 1 & 2 +::: +::: +::: + +::: scriptsize +::: center +Mario Bischof +::: +::: + +> **Aufgabe 1.1:**\ +> \ +> Der Dateiname, welcher die Benutzernamen beinhaltet, wird mit `$1` +> übergeben. +> +> #!/bin/bash +> for user in $(cat $1); do useradd $user; done +> +> **Aufgabe 1.2:**\ +> \ +> Der Dateiname, welcher die Gruppen beinhaltet, wird it `$1` übergeben, +> der Benutzernamen mit `$2`. +> +> #!/bin/bash +> for group in $(cat $1); do groupadd $group $2; done +> +> **Aufgabe 1.3:**\ +> \ +> Der Benutzername wird mit `$1` übergeben +> +> #!/bin/bash +> name=$1_$(date '+%y-%m-%d').tar.gz; +> find / -user $1 -exec cp {} /root/found/ \; +> tar -zcvf "/root/found/$name" /root/found/; +> find /root/found/ -type f ! -name "$name" -delete; +> +> **Aufgabe 1.4:**\ +> \ +> Das tool `fping` muss installiert sein (`apt-get install fping`). +> +> #!/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 +> +> # alternative Lösung: +> fping -g -c 1 -t250 172.16.6.0/24 2>&1 | grep " 0% " | cut -d " " -f 1 > ips.txt +> +> **Aufgabe 1.5:**\ +> \ +> Bonusfrage **Aufgabe 2.1:** +> +> [root@host: ] mkdir /root/trash +> [root@host: ] touch /root/trash/file{1..10} +> [root@host: ] nano /root/trash.sh +> #!/bin/bash +> rm /root/trash/* +> [root@host: ] chmod +x trash.sh +> [root@host: ] crontab -e +> */5 * * * * /root/trash.sh +> [root@host: ] watch ls /root/trash +> (Warten bis files verschwinden --> erfolgreiche Ausführung) +> +> **Aufgabe 2.2:**\ +> \ +> IP wird als `$1` übergeben, *ban* oder *unban* als `$2`. +> +> #!/bin/bash +> if [ $2 = "ban" ] +> then +> echo "banning " $1 +> iptables -A INPUT -s $1 -j DROP +> elif [ $2 = "unban" ] +> then +> echo "unbanning " $1 +> iptables -D INPUT -s $1 DROP +> else +> echo "Verwendung:" +> echo "1.Arg: IP-Adresse" +> echo "2.Arg.: ban oder unban" +> echo "Beispiel: ./ban.sh 192.168.13.3 ban" +> fi +> +> **Aufgabe 2.4:**\ +> \ +> Setzen des SGID Bits (3 verschiedene Varianten): +> +> [root@host: ] chmod g+s /data/myFile +> [root@host: ] chmod +s /data/myFile +> [root@host: ] chmod 2755 /data/myFile +> +> Setzen des Sticky Bits (3 verschiedene Varianten): +> +> [root@host: ] chmod o+t /data +> [root@host: ] chmod +t /data +> [root@host: ] chmod 1755 /data diff --git a/m122/Lektion13/Uebung_Loes/img/.DS_Store b/m122/Lektion13/Uebung_Loes/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/.DS_Store differ diff --git a/m122/Lektion13/Uebung_Loes/img/bfsulogo.jpg b/m122/Lektion13/Uebung_Loes/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/bfsulogo.jpg differ diff --git a/m122/Lektion13/Uebung_Loes/img/bzulogo.png b/m122/Lektion13/Uebung_Loes/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/bzulogo.png differ diff --git a/m122/Lektion13/Uebung_Loes/img/ps1.png b/m122/Lektion13/Uebung_Loes/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/ps1.png differ diff --git a/m122/Lektion13/Uebung_Loes/img/ps2.png b/m122/Lektion13/Uebung_Loes/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/ps2.png differ diff --git a/m122/Lektion13/Uebung_Loes/img/ps3.png b/m122/Lektion13/Uebung_Loes/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/ps3.png differ diff --git a/m122/Lektion13/Uebung_Loes/img/ps4.png b/m122/Lektion13/Uebung_Loes/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/ps4.png differ diff --git a/m122/Lektion13/Uebung_Loes/img/ps5.png b/m122/Lektion13/Uebung_Loes/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/ps5.png differ diff --git a/m122/Lektion13/Uebung_Loes/img/ps6.png b/m122/Lektion13/Uebung_Loes/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/ps6.png differ diff --git a/m122/Lektion13/Uebung_Loes/img/ps7.png b/m122/Lektion13/Uebung_Loes/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/ps7.png differ diff --git a/m122/Lektion13/Uebung_Loes/img/ps8.png b/m122/Lektion13/Uebung_Loes/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/ps8.png differ diff --git a/m122/Lektion13/Uebung_Loes/img/ps9.png b/m122/Lektion13/Uebung_Loes/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/Lektion13/Uebung_Loes/img/ps9.png differ diff --git a/m122/Lektion7/Praesentation/Bash_L1.pdf b/m122/Lektion7/Praesentation/Bash_L1.pdf new file mode 100644 index 0000000..8076c1d Binary files /dev/null and b/m122/Lektion7/Praesentation/Bash_L1.pdf differ diff --git a/m122/Lektion7/Praesentation/Bash_L1.tex b/m122/Lektion7/Praesentation/Bash_L1.tex new file mode 100644 index 0000000..6e509f0 --- /dev/null +++ b/m122/Lektion7/Praesentation/Bash_L1.tex @@ -0,0 +1,303 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beamer Presentation +% LaTeX Template +% Version 1.0 (10/11/12) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND THEMES +%---------------------------------------------------------------------------------------- + +\documentclass{beamer} + +\usepackage{listings} +\usepackage{graphicx} +\usepackage{lastpage} +\usepackage{fancyhdr} +\usepackage{soul} + +\usepackage{lmodern} % Latin Modern + +\usepackage[utf8]{inputenc} + +\definecolor{beamer@zueriblue}{HTML}{009EE1} +\definecolor{beamer@lightblue}{HTML}{8BCCE8}\DeclareUnicodeCharacter{00A0}{ } + +\mode { + +% The Beamer class comes with a number of default slide themes +% which change the colors and layouts of slides. Below this is a list +% of all the themes, uncomment each in turn to see what they look like. + +%\usetheme{default} +%\usetheme{AnnArbor} +%\usetheme{Antibes} +%\usetheme{Bergen} +%\usetheme{Berkeley} +%\usetheme{Berlin} +%\usetheme{Boadilla} +%\usetheme{CambridgeUS} +%\usetheme{Copenhagen} +%\usetheme{Darmstadt} +%\usetheme{Dresden} +%\usetheme{Frankfurt} +%\usetheme{Goettingen} +%\usetheme{Hannover} +%\usetheme{Ilmenau} +%\usetheme{JuanLesPins} +%\usetheme{Luebeck} +%\usetheme{Madrid} +%\usetheme{Malmoe} +%\usetheme{Marburg} +%\usetheme{Montpellier} +%\usetheme{PaloAlto} +%\usetheme{Pittsburgh} +%\usetheme{Rochester} +%\usetheme{Singapore} +%\usetheme{Szeged} +%\usetheme{Warsaw} + +% As well as themes, the Beamer class has a number of color themes +% for any slide theme. Uncomment each of these in turn to see how it +% changes the colors of your current slide theme. + +%\usecolortheme{albatross} +%\usecolortheme{beaver} +%\usecolortheme{beetle} +%\usecolortheme{crane} +%\usecolortheme{dolphin} +%\usecolortheme{dove} +%\usecolortheme{fly} +%\usecolortheme{lily} +%\usecolortheme{orchid} +%\usecolortheme{rose} +%\usecolortheme{seagull} +%\usecolortheme{seahorse} +%\usecolortheme{whale} +%\usecolortheme{wolverine} + + \usetheme{Dresden} + \setbeamercolor*{palette primary}{use=dove,fg=blue,bg=beamer@lightblue} + + \setbeamercolor*{palette secondary}{use=dove,fg=blue,bg=beamer@lightblue} + \setbeamercolor*{palette tertiary}{use=dove,fg=white,bg=beamer@zueriblue} + + +%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line +%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line + +%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line +} + +\usepackage{graphicx} % Allows including images +\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\title[Bash - Lektion 1]{Linux Shell - Lektion 1} % The short title appears at the bottom of every slide, the full title is only on the title page + +\author{Mario Bischof} % Your name +\institute[BFSU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +{ +Berufsfachschule Uster \\ % Your institution for the title page +\medskip +\href{mailto:mario.bischof@bzu.ch}{mario.bischof@bzu.ch}% Your email address +} +\date{\today} % Date, can be changed to a custom date + +\begin{document} + +\begin{frame} +\includegraphics[height=0.4in]{img/bfsulogo.jpg} +\titlepage % Print the title page as the first slide + +\end{frame} + +\begin{frame} +\frametitle{Übersicht} % Table of contents slide, comment this block out to remove it +\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation +\end{frame} + +%---------------------------------------------------------------------------------------- +% PRESENTATION SLIDES +%---------------------------------------------------------------------------------------- + +%------------------------------------------------ + %------------------------------------------------ + +% A subsection can be created just before a set of slides with a common theme to further break down your presentation into chunks + +\section[shell]{Shellprogrammierung} +\begin{frame}[fragile] +\frametitle{Shellprogrammierung} + + +\begin{itemize} +\item Linux bietet etliche Befehle, welche in der Shell direkt oder in einem Skript gebraucht werden können wie zB. \verb|cp|, \verb|alias|, \verb|cat|, \verb|rm| +\item Daneben bietet die Shell Programmierstrukturen wie zB. Schleifen, Verzweigungen, Variablen, usw. +\item Beide Elemente können in einem Skript verwendet werden, um Aufgaben auf dem System zu automatisieren +\end{itemize} +\end{frame} + + +\section[hierarchie]{Linux Verzeichnishierarchie} +\begin{frame}[fragile] +\frametitle{Linux Verzeichnishierarchie} + +\begin{itemize} +\item Der Verzeichnisbaum beginnt bei Linux beim Verzeichnis \verb|/| (Vergleichbar mit \verb|C:\| unter Windows) +\item Das Verzeichnis \verb|/|wird auch Wurzel- oder Rootverzeichnis genannt +\item Verzeichnisse eine oder mehrere Hierarchiestufen weiter unten werden durch \verb|/|-Zeichen getrennt +\item Beispiele: +\begin{verbatim} +/etc/ +/usr/local/nginx +/usr/bin/ +/home/user1 +\end{verbatim} + +\end{itemize} +\end{frame} + +\section[prompt]{Linuxprompt} +\begin{frame}[fragile] +\frametitle{Linuxprompt} + +\begin{itemize} +\item Die Eingabeaufforderung unter Linux (auch prompt genannt) sieht zB. wiefolgt aus: +\begin{verbatim} +user@host:/# +\end{verbatim} +\item Der prompt bildet sich nach dem Schema: \verb|@:#| +\item Das Tildezeichen \verb|~| ist ein Kürzel für das Heimatverzeichnis des aktuellen Benutzers +\item Die Heimatverzeichnisse befinden sich i.d.R. unter \verb|/home/| +\item Einzige Ausnahme: Das Heimatverzeichnis des Administratorusers (\verb|root|) befindet sich unter \verb|/root/| + +\end{itemize} +\end{frame} + +\section[system]{Systemspezifische Befehle} +\begin{frame}[fragile] +\frametitle{Systemspezifische Befehle} +\begin{itemize} +\item Der Befehl \verb|reboot| (oder \verb|shutdown -r| oder \verb|init 6|) startet das System neu +\item Der Befehl \verb|halt| (\verb|shutdown -h|, \verb|init 0| oder \verb|poweroff|) schaltet das System ab +\end{itemize} + +\end{frame} + + + + +\section[hilfe]{Hilfe holen} +\begin{frame}[fragile] +\frametitle{Hilfe holen} + +\begin{itemize} +\item Der Befehl \verb|man| öffnet sie Hilfeseiten (manual) eines Befehls +\\Syntax: \verb|man | +\item Der Befehl \verb|apropos| durchsucht alle Hilfeseiten nach einem Stichwort +\\Syntax: \verb|apropos | +\item Der Befehl \verb|which| findet den Ort eines installierten Programmes +\\Syntax: \verb|which | +\end{itemize} + +\end{frame} + +\section[user]{Userspezifische Befehle} +\begin{frame}[fragile] +\frametitle{Userspezifische Befehle} + +\begin{itemize} +\item Der Befehl \verb|whoami| zeigt den aktuellen Benutzernamen an +\item Der Befehl \verb|who| zeigt alle am System angemeldeten Benutzer an +\item Der Befehl \verb|groups| zeigt die Gruppen des aktuellen Benutzernamen an +\item Der Befehl \verb|id| zeigt die Nutzerid und Gruppen des aktuellen Benutzers an +\item Der Befehl \verb|su| wechselt den aktuellen Benutzer +\\Syntax: \verb|su - | (- sogt dafür, dass ins Heimverzeichnis der neuen Users gewechselt wird) + +\end{itemize} +\end{frame} + +\section[user]{Userspezifische Befehle} +\begin{frame}[fragile] +\frametitle{Userspezifische Befehle} + +\begin{itemize} +\item Der Befehl \verb|useradd| fügt einen neuen Benutzer hinzu +\\Syntax: \verb|useradd | +\item Der Befehl \verb|userdel| löscht einen bestehenden Benutzer +\\Syntax: \verb|userdel | +\item Der Befehl \verb|passwd| kann (unter anderem) das Passwort wechseln +\\Syntax: \verb|passwd | +\item Der Befehl \verb|logout| loggt den aktuellen Benutzer vom System aus (ebenso \verb|exit|) + +\end{itemize} + +\end{frame} + +\section[aliase]{Aliase} +\begin{frame}[fragile] +\frametitle{Aliase} + +\begin{itemize} +\item Aliase dienen als Nutzerspezifisches Kürzel für einen Befehl / Befehlskombination +\item Ein alias wird wiefolgt gesetzt: \verb|alias =""| +\item Beispiel: +\begin{verbatim} +user@host:/etc# alias gohome="cd ~" +user@host:/etc# pwd +/etc +user@host:/etc# gohome +user@host:~# pwd +/home/user +\end{verbatim} +\end{itemize} +\end{frame} + +\section[cd]{Verzeichnisrelevante Befehle} +\begin{frame}[fragile] +\frametitle{Verzeichnisrelevante Befehle} +\begin{itemize} +\item Der Befehl \verb|pwd| (\emph{present work directory}) zeigt das aktuelle Verzeichnis an +\item Der Befehl \verb|cd| ändert das aktuelle Verzeichnis. \\Syntax: \verb|cd | +\item Der Befehl \verb|mkdir| erstellt ein neues Verzeichnis. \\Syntax: \verb|mkdir | +\item Der Befehl \verb|rmdir| lsöcht ein bestehendes Verzeichnis. \\Syntax: \verb|rmdir | (Verzeichnis muss leer sein!) +\item Der Befehl \verb|ls| listet den Verzeichnisinhalt auf \\Syntax: \verb|ls | + +\end{itemize} +\end{frame} + + +\section[cd]{Dateirelevante Befehle} +\begin{frame}[fragile] +\frametitle{Dateirelevante Befehle} +\begin{itemize} +\item Der Befehl \verb|cp| kopiert Dateien/Verzeichnisse \\Syntax: \verb|cp | \\Syntax Verzeichnisse: \verb|cp -R | +\item Der Befehl \verb|rm| löscht Dateien/Verzeichnisse \\Syntax: \verb|rm | \\Syntax Verzeichnisse: \verb|rm -r | +\item Der Befehl \verb|mv| verschiebt (= umbenennen) Dateien/Verzeichnisse \\Syntax: \verb|mv | +\item Der Befehl \verb|touch| erstellt eine neue leere Datei \\Syntax: \verb|touch | +\end{itemize} +\end{frame} + +\section[cd]{Weitere häufig gebrauchte Befehle} +\begin{frame}[fragile] +\frametitle{Dateirelevante Befehle} +\begin{itemize} +\item Der Befehl \verb|cat| gibt Dateinhalt aus\\Syntax: \verb|cat | +\item Der Befehl \verb|wc| zählt Wörter oder Linien eines Dateiinhaltes\\Syntax (linien): \verb|wc -l | (-w zählt \# Wörter) +\item Der Befehl \verb|echo| gibt eine Zeichenkette aus\\Syntax: \verb|echo ""| +\end{itemize} +\end{frame} + + +\end{document} \ No newline at end of file diff --git a/m122/Lektion7/Praesentation/Lektion-Bash1.md b/m122/Lektion7/Praesentation/Lektion-Bash1.md new file mode 100644 index 0000000..00c0ade --- /dev/null +++ b/m122/Lektion7/Praesentation/Lektion-Bash1.md @@ -0,0 +1,209 @@ +::: frame +![image](img/bfsulogo.jpg){height="0.4in"} +::: + +::: frame +### Übersicht +::: + +# Shellprogrammierung + +::: frame +### Shellprogrammierung + +- Linux bietet etliche Befehle, welche in der Shell direkt oder in + einem Skript gebraucht werden können wie zB. `cp`, `alias`, `cat`, + `rm` + +- Daneben bietet die Shell Programmierstrukturen wie zB. Schleifen, + Verzweigungen, Variablen, usw. + +- Beide Elemente können in einem Skript verwendet werden, um Aufgaben + auf dem System zu automatisieren +::: + +# Linux Verzeichnishierarchie + +::: frame +### Linux Verzeichnishierarchie + +- Der Verzeichnisbaum beginnt bei Linux beim Verzeichnis `/` + (Vergleichbar mit `C:\` unter Windows) + +- Das Verzeichnis `/`wird auch Wurzel- oder Rootverzeichnis genannt + +- Verzeichnisse eine oder mehrere Hierarchiestufen weiter unten werden + durch `/`-Zeichen getrennt + +- Beispiele: + + /etc/ + /usr/local/nginx + /usr/bin/ + /home/user1 +::: + +# Linuxprompt + +::: frame +### Linuxprompt + +- Die Eingabeaufforderung unter Linux (auch prompt genannt) sieht zB. + wiefolgt aus: + + user@host:/# + +- Der prompt bildet sich nach dem Schema: + `@:#` + +- Das Tildezeichen `~` ist ein Kürzel für das Heimatverzeichnis des + aktuellen Benutzers + +- Die Heimatverzeichnisse befinden sich i.d.R. unter + `/home/` + +- Einzige Ausnahme: Das Heimatverzeichnis des Administratorusers + (`root`) befindet sich unter `/root/` +::: + +# Systemspezifische Befehle + +::: frame +### Systemspezifische Befehle + +- Der Befehl `reboot` (oder `shutdown -r` oder `init 6`) startet das + System neu + +- Der Befehl `halt` (`shutdown -h`, `init 0` oder `poweroff`) schaltet + das System ab +::: + +# Hilfe holen + +::: frame +### Hilfe holen + +- Der Befehl `man` öffnet sie Hilfeseiten (manual) eines Befehls\ + Syntax: `man ` + +- Der Befehl `apropos` durchsucht alle Hilfeseiten nach einem + Stichwort\ + Syntax: `apropos ` + +- Der Befehl `which` findet den Ort eines installierten Programmes\ + Syntax: `which ` +::: + +# Userspezifische Befehle + +::: frame +### Userspezifische Befehle + +- Der Befehl `whoami` zeigt den aktuellen Benutzernamen an + +- Der Befehl `who` zeigt alle am System angemeldeten Benutzer an + +- Der Befehl `groups` zeigt die Gruppen des aktuellen Benutzernamen an + +- Der Befehl `id` zeigt die Nutzerid und Gruppen des aktuellen + Benutzers an + +- Der Befehl `su` wechselt den aktuellen Benutzer\ + Syntax: `su - ` (- sogt dafür, dass ins Heimverzeichnis der + neuen Users gewechselt wird) +::: + +# Userspezifische Befehle + +::: frame +### Userspezifische Befehle + +- Der Befehl `useradd` fügt einen neuen Benutzer hinzu\ + Syntax: `useradd ` + +- Der Befehl `userdel` löscht einen bestehenden Benutzer\ + Syntax: `userdel ` + +- Der Befehl `passwd` kann (unter anderem) das Passwort wechseln\ + Syntax: `passwd ` + +- Der Befehl `logout` loggt den aktuellen Benutzer vom System aus + (ebenso `exit`) +::: + +# Aliase + +::: frame +### Aliase + +- Aliase dienen als Nutzerspezifisches Kürzel für einen Befehl / + Befehlskombination + +- Ein alias wird wiefolgt gesetzt: + `alias =""` + +- Beispiel: + + user@host:/etc# alias gohome="cd ~" + user@host:/etc# pwd + /etc + user@host:/etc# gohome + user@host:~# pwd + /home/user +::: + +# Verzeichnisrelevante Befehle + +::: frame +### Verzeichnisrelevante Befehle + +- Der Befehl `pwd` (*present work directory*) zeigt das aktuelle + Verzeichnis an + +- Der Befehl `cd` ändert das aktuelle Verzeichnis.\ + Syntax: `cd ` + +- Der Befehl `mkdir` erstellt ein neues Verzeichnis.\ + Syntax: `mkdir ` + +- Der Befehl `rmdir` lsöcht ein bestehendes Verzeichnis.\ + Syntax: `rmdir ` (Verzeichnis muss leer sein!) + +- Der Befehl `ls` listet den Verzeichnisinhalt auf\ + Syntax: `ls ` +::: + +# Dateirelevante Befehle + +::: frame +### Dateirelevante Befehle + +- Der Befehl `cp` kopiert Dateien/Verzeichnisse\ + Syntax: `cp `\ + Syntax Verzeichnisse: `cp -R ` + +- Der Befehl `rm` löscht Dateien/Verzeichnisse\ + Syntax: `rm `\ + Syntax Verzeichnisse: `rm -r ` + +- Der Befehl `mv` verschiebt (= umbenennen) Dateien/Verzeichnisse\ + Syntax: `mv ` + +- Der Befehl `touch` erstellt eine neue leere Datei\ + Syntax: `touch ` +::: + +# Weitere häufig gebrauchte Befehle + +::: frame +### Dateirelevante Befehle + +- Der Befehl `cat` gibt Dateinhalt aus\ + Syntax: `cat ` + +- Der Befehl `wc` zählt Wörter oder Linien eines Dateiinhaltes\ + Syntax (linien): `wc -l ` (-w zählt \# Wörter) + +- Der Befehl `echo` gibt eine Zeichenkette aus\ + Syntax: `echo ""` +::: diff --git a/m122/Lektion7/Praesentation/img/bfsulogo.jpg b/m122/Lektion7/Praesentation/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/bfsulogo.jpg differ diff --git a/m122/Lektion7/Praesentation/img/java-program-execution2.png b/m122/Lektion7/Praesentation/img/java-program-execution2.png new file mode 100644 index 0000000..d351d80 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/java-program-execution2.png differ diff --git a/m122/Lektion7/Praesentation/img/klasse_objekt.gif b/m122/Lektion7/Praesentation/img/klasse_objekt.gif new file mode 100644 index 0000000..3036f21 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/klasse_objekt.gif differ diff --git a/m122/Lektion7/Praesentation/img/klasse_objekt.png b/m122/Lektion7/Praesentation/img/klasse_objekt.png new file mode 100644 index 0000000..8ceb02c Binary files /dev/null and b/m122/Lektion7/Praesentation/img/klasse_objekt.png differ diff --git a/m122/Lektion7/Praesentation/img/objekt.png b/m122/Lektion7/Praesentation/img/objekt.png new file mode 100644 index 0000000..7b54056 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/objekt.png differ diff --git a/m122/Lektion7/Praesentation/img/powershell-logo.png b/m122/Lektion7/Praesentation/img/powershell-logo.png new file mode 100644 index 0000000..7023936 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/powershell-logo.png differ diff --git a/m122/Lektion7/Praesentation/img/ps1.png b/m122/Lektion7/Praesentation/img/ps1.png new file mode 100644 index 0000000..594510c Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps1.png differ diff --git a/m122/Lektion7/Praesentation/img/ps10.png b/m122/Lektion7/Praesentation/img/ps10.png new file mode 100644 index 0000000..953e10a Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps10.png differ diff --git a/m122/Lektion7/Praesentation/img/ps11.png b/m122/Lektion7/Praesentation/img/ps11.png new file mode 100644 index 0000000..153eb08 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps11.png differ diff --git a/m122/Lektion7/Praesentation/img/ps12.png b/m122/Lektion7/Praesentation/img/ps12.png new file mode 100644 index 0000000..bb6e0fd Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps12.png differ diff --git a/m122/Lektion7/Praesentation/img/ps13.png b/m122/Lektion7/Praesentation/img/ps13.png new file mode 100644 index 0000000..0f3eabb Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps13.png differ diff --git a/m122/Lektion7/Praesentation/img/ps2.png b/m122/Lektion7/Praesentation/img/ps2.png new file mode 100644 index 0000000..0be4d37 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps2.png differ diff --git a/m122/Lektion7/Praesentation/img/ps3.png b/m122/Lektion7/Praesentation/img/ps3.png new file mode 100644 index 0000000..f3852f5 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps3.png differ diff --git a/m122/Lektion7/Praesentation/img/ps4.png b/m122/Lektion7/Praesentation/img/ps4.png new file mode 100644 index 0000000..c5c8ac9 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps4.png differ diff --git a/m122/Lektion7/Praesentation/img/ps5.png b/m122/Lektion7/Praesentation/img/ps5.png new file mode 100644 index 0000000..cbb8c8e Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps5.png differ diff --git a/m122/Lektion7/Praesentation/img/ps6.png b/m122/Lektion7/Praesentation/img/ps6.png new file mode 100644 index 0000000..b256ca0 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps6.png differ diff --git a/m122/Lektion7/Praesentation/img/ps7.png b/m122/Lektion7/Praesentation/img/ps7.png new file mode 100644 index 0000000..340d376 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps7.png differ diff --git a/m122/Lektion7/Praesentation/img/ps8.png b/m122/Lektion7/Praesentation/img/ps8.png new file mode 100644 index 0000000..37534b3 Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps8.png differ diff --git a/m122/Lektion7/Praesentation/img/ps9.png b/m122/Lektion7/Praesentation/img/ps9.png new file mode 100644 index 0000000..c2bf31c Binary files /dev/null and b/m122/Lektion7/Praesentation/img/ps9.png differ diff --git a/m122/Lektion8/.DS_Store b/m122/Lektion8/.DS_Store new file mode 100644 index 0000000..f1190be Binary files /dev/null and b/m122/Lektion8/.DS_Store differ diff --git a/m122/Lektion8/Praesentation/.DS_Store b/m122/Lektion8/Praesentation/.DS_Store new file mode 100644 index 0000000..4c7e19e Binary files /dev/null and b/m122/Lektion8/Praesentation/.DS_Store differ diff --git a/m122/Lektion8/Praesentation/Bash_L2.pdf b/m122/Lektion8/Praesentation/Bash_L2.pdf new file mode 100644 index 0000000..0e6042f Binary files /dev/null and b/m122/Lektion8/Praesentation/Bash_L2.pdf differ diff --git a/m122/Lektion8/Praesentation/Bash_L2.tex b/m122/Lektion8/Praesentation/Bash_L2.tex new file mode 100644 index 0000000..6e509f0 --- /dev/null +++ b/m122/Lektion8/Praesentation/Bash_L2.tex @@ -0,0 +1,303 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beamer Presentation +% LaTeX Template +% Version 1.0 (10/11/12) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND THEMES +%---------------------------------------------------------------------------------------- + +\documentclass{beamer} + +\usepackage{listings} +\usepackage{graphicx} +\usepackage{lastpage} +\usepackage{fancyhdr} +\usepackage{soul} + +\usepackage{lmodern} % Latin Modern + +\usepackage[utf8]{inputenc} + +\definecolor{beamer@zueriblue}{HTML}{009EE1} +\definecolor{beamer@lightblue}{HTML}{8BCCE8}\DeclareUnicodeCharacter{00A0}{ } + +\mode { + +% The Beamer class comes with a number of default slide themes +% which change the colors and layouts of slides. Below this is a list +% of all the themes, uncomment each in turn to see what they look like. + +%\usetheme{default} +%\usetheme{AnnArbor} +%\usetheme{Antibes} +%\usetheme{Bergen} +%\usetheme{Berkeley} +%\usetheme{Berlin} +%\usetheme{Boadilla} +%\usetheme{CambridgeUS} +%\usetheme{Copenhagen} +%\usetheme{Darmstadt} +%\usetheme{Dresden} +%\usetheme{Frankfurt} +%\usetheme{Goettingen} +%\usetheme{Hannover} +%\usetheme{Ilmenau} +%\usetheme{JuanLesPins} +%\usetheme{Luebeck} +%\usetheme{Madrid} +%\usetheme{Malmoe} +%\usetheme{Marburg} +%\usetheme{Montpellier} +%\usetheme{PaloAlto} +%\usetheme{Pittsburgh} +%\usetheme{Rochester} +%\usetheme{Singapore} +%\usetheme{Szeged} +%\usetheme{Warsaw} + +% As well as themes, the Beamer class has a number of color themes +% for any slide theme. Uncomment each of these in turn to see how it +% changes the colors of your current slide theme. + +%\usecolortheme{albatross} +%\usecolortheme{beaver} +%\usecolortheme{beetle} +%\usecolortheme{crane} +%\usecolortheme{dolphin} +%\usecolortheme{dove} +%\usecolortheme{fly} +%\usecolortheme{lily} +%\usecolortheme{orchid} +%\usecolortheme{rose} +%\usecolortheme{seagull} +%\usecolortheme{seahorse} +%\usecolortheme{whale} +%\usecolortheme{wolverine} + + \usetheme{Dresden} + \setbeamercolor*{palette primary}{use=dove,fg=blue,bg=beamer@lightblue} + + \setbeamercolor*{palette secondary}{use=dove,fg=blue,bg=beamer@lightblue} + \setbeamercolor*{palette tertiary}{use=dove,fg=white,bg=beamer@zueriblue} + + +%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line +%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line + +%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line +} + +\usepackage{graphicx} % Allows including images +\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\title[Bash - Lektion 1]{Linux Shell - Lektion 1} % The short title appears at the bottom of every slide, the full title is only on the title page + +\author{Mario Bischof} % Your name +\institute[BFSU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +{ +Berufsfachschule Uster \\ % Your institution for the title page +\medskip +\href{mailto:mario.bischof@bzu.ch}{mario.bischof@bzu.ch}% Your email address +} +\date{\today} % Date, can be changed to a custom date + +\begin{document} + +\begin{frame} +\includegraphics[height=0.4in]{img/bfsulogo.jpg} +\titlepage % Print the title page as the first slide + +\end{frame} + +\begin{frame} +\frametitle{Übersicht} % Table of contents slide, comment this block out to remove it +\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation +\end{frame} + +%---------------------------------------------------------------------------------------- +% PRESENTATION SLIDES +%---------------------------------------------------------------------------------------- + +%------------------------------------------------ + %------------------------------------------------ + +% A subsection can be created just before a set of slides with a common theme to further break down your presentation into chunks + +\section[shell]{Shellprogrammierung} +\begin{frame}[fragile] +\frametitle{Shellprogrammierung} + + +\begin{itemize} +\item Linux bietet etliche Befehle, welche in der Shell direkt oder in einem Skript gebraucht werden können wie zB. \verb|cp|, \verb|alias|, \verb|cat|, \verb|rm| +\item Daneben bietet die Shell Programmierstrukturen wie zB. Schleifen, Verzweigungen, Variablen, usw. +\item Beide Elemente können in einem Skript verwendet werden, um Aufgaben auf dem System zu automatisieren +\end{itemize} +\end{frame} + + +\section[hierarchie]{Linux Verzeichnishierarchie} +\begin{frame}[fragile] +\frametitle{Linux Verzeichnishierarchie} + +\begin{itemize} +\item Der Verzeichnisbaum beginnt bei Linux beim Verzeichnis \verb|/| (Vergleichbar mit \verb|C:\| unter Windows) +\item Das Verzeichnis \verb|/|wird auch Wurzel- oder Rootverzeichnis genannt +\item Verzeichnisse eine oder mehrere Hierarchiestufen weiter unten werden durch \verb|/|-Zeichen getrennt +\item Beispiele: +\begin{verbatim} +/etc/ +/usr/local/nginx +/usr/bin/ +/home/user1 +\end{verbatim} + +\end{itemize} +\end{frame} + +\section[prompt]{Linuxprompt} +\begin{frame}[fragile] +\frametitle{Linuxprompt} + +\begin{itemize} +\item Die Eingabeaufforderung unter Linux (auch prompt genannt) sieht zB. wiefolgt aus: +\begin{verbatim} +user@host:/# +\end{verbatim} +\item Der prompt bildet sich nach dem Schema: \verb|@:#| +\item Das Tildezeichen \verb|~| ist ein Kürzel für das Heimatverzeichnis des aktuellen Benutzers +\item Die Heimatverzeichnisse befinden sich i.d.R. unter \verb|/home/| +\item Einzige Ausnahme: Das Heimatverzeichnis des Administratorusers (\verb|root|) befindet sich unter \verb|/root/| + +\end{itemize} +\end{frame} + +\section[system]{Systemspezifische Befehle} +\begin{frame}[fragile] +\frametitle{Systemspezifische Befehle} +\begin{itemize} +\item Der Befehl \verb|reboot| (oder \verb|shutdown -r| oder \verb|init 6|) startet das System neu +\item Der Befehl \verb|halt| (\verb|shutdown -h|, \verb|init 0| oder \verb|poweroff|) schaltet das System ab +\end{itemize} + +\end{frame} + + + + +\section[hilfe]{Hilfe holen} +\begin{frame}[fragile] +\frametitle{Hilfe holen} + +\begin{itemize} +\item Der Befehl \verb|man| öffnet sie Hilfeseiten (manual) eines Befehls +\\Syntax: \verb|man | +\item Der Befehl \verb|apropos| durchsucht alle Hilfeseiten nach einem Stichwort +\\Syntax: \verb|apropos | +\item Der Befehl \verb|which| findet den Ort eines installierten Programmes +\\Syntax: \verb|which | +\end{itemize} + +\end{frame} + +\section[user]{Userspezifische Befehle} +\begin{frame}[fragile] +\frametitle{Userspezifische Befehle} + +\begin{itemize} +\item Der Befehl \verb|whoami| zeigt den aktuellen Benutzernamen an +\item Der Befehl \verb|who| zeigt alle am System angemeldeten Benutzer an +\item Der Befehl \verb|groups| zeigt die Gruppen des aktuellen Benutzernamen an +\item Der Befehl \verb|id| zeigt die Nutzerid und Gruppen des aktuellen Benutzers an +\item Der Befehl \verb|su| wechselt den aktuellen Benutzer +\\Syntax: \verb|su - | (- sogt dafür, dass ins Heimverzeichnis der neuen Users gewechselt wird) + +\end{itemize} +\end{frame} + +\section[user]{Userspezifische Befehle} +\begin{frame}[fragile] +\frametitle{Userspezifische Befehle} + +\begin{itemize} +\item Der Befehl \verb|useradd| fügt einen neuen Benutzer hinzu +\\Syntax: \verb|useradd | +\item Der Befehl \verb|userdel| löscht einen bestehenden Benutzer +\\Syntax: \verb|userdel | +\item Der Befehl \verb|passwd| kann (unter anderem) das Passwort wechseln +\\Syntax: \verb|passwd | +\item Der Befehl \verb|logout| loggt den aktuellen Benutzer vom System aus (ebenso \verb|exit|) + +\end{itemize} + +\end{frame} + +\section[aliase]{Aliase} +\begin{frame}[fragile] +\frametitle{Aliase} + +\begin{itemize} +\item Aliase dienen als Nutzerspezifisches Kürzel für einen Befehl / Befehlskombination +\item Ein alias wird wiefolgt gesetzt: \verb|alias =""| +\item Beispiel: +\begin{verbatim} +user@host:/etc# alias gohome="cd ~" +user@host:/etc# pwd +/etc +user@host:/etc# gohome +user@host:~# pwd +/home/user +\end{verbatim} +\end{itemize} +\end{frame} + +\section[cd]{Verzeichnisrelevante Befehle} +\begin{frame}[fragile] +\frametitle{Verzeichnisrelevante Befehle} +\begin{itemize} +\item Der Befehl \verb|pwd| (\emph{present work directory}) zeigt das aktuelle Verzeichnis an +\item Der Befehl \verb|cd| ändert das aktuelle Verzeichnis. \\Syntax: \verb|cd | +\item Der Befehl \verb|mkdir| erstellt ein neues Verzeichnis. \\Syntax: \verb|mkdir | +\item Der Befehl \verb|rmdir| lsöcht ein bestehendes Verzeichnis. \\Syntax: \verb|rmdir | (Verzeichnis muss leer sein!) +\item Der Befehl \verb|ls| listet den Verzeichnisinhalt auf \\Syntax: \verb|ls | + +\end{itemize} +\end{frame} + + +\section[cd]{Dateirelevante Befehle} +\begin{frame}[fragile] +\frametitle{Dateirelevante Befehle} +\begin{itemize} +\item Der Befehl \verb|cp| kopiert Dateien/Verzeichnisse \\Syntax: \verb|cp | \\Syntax Verzeichnisse: \verb|cp -R | +\item Der Befehl \verb|rm| löscht Dateien/Verzeichnisse \\Syntax: \verb|rm | \\Syntax Verzeichnisse: \verb|rm -r | +\item Der Befehl \verb|mv| verschiebt (= umbenennen) Dateien/Verzeichnisse \\Syntax: \verb|mv | +\item Der Befehl \verb|touch| erstellt eine neue leere Datei \\Syntax: \verb|touch | +\end{itemize} +\end{frame} + +\section[cd]{Weitere häufig gebrauchte Befehle} +\begin{frame}[fragile] +\frametitle{Dateirelevante Befehle} +\begin{itemize} +\item Der Befehl \verb|cat| gibt Dateinhalt aus\\Syntax: \verb|cat | +\item Der Befehl \verb|wc| zählt Wörter oder Linien eines Dateiinhaltes\\Syntax (linien): \verb|wc -l | (-w zählt \# Wörter) +\item Der Befehl \verb|echo| gibt eine Zeichenkette aus\\Syntax: \verb|echo ""| +\end{itemize} +\end{frame} + + +\end{document} \ No newline at end of file diff --git a/m122/Lektion8/Praesentation/Lektion-Bash2.md b/m122/Lektion8/Praesentation/Lektion-Bash2.md new file mode 100644 index 0000000..00c0ade --- /dev/null +++ b/m122/Lektion8/Praesentation/Lektion-Bash2.md @@ -0,0 +1,209 @@ +::: frame +![image](img/bfsulogo.jpg){height="0.4in"} +::: + +::: frame +### Übersicht +::: + +# Shellprogrammierung + +::: frame +### Shellprogrammierung + +- Linux bietet etliche Befehle, welche in der Shell direkt oder in + einem Skript gebraucht werden können wie zB. `cp`, `alias`, `cat`, + `rm` + +- Daneben bietet die Shell Programmierstrukturen wie zB. Schleifen, + Verzweigungen, Variablen, usw. + +- Beide Elemente können in einem Skript verwendet werden, um Aufgaben + auf dem System zu automatisieren +::: + +# Linux Verzeichnishierarchie + +::: frame +### Linux Verzeichnishierarchie + +- Der Verzeichnisbaum beginnt bei Linux beim Verzeichnis `/` + (Vergleichbar mit `C:\` unter Windows) + +- Das Verzeichnis `/`wird auch Wurzel- oder Rootverzeichnis genannt + +- Verzeichnisse eine oder mehrere Hierarchiestufen weiter unten werden + durch `/`-Zeichen getrennt + +- Beispiele: + + /etc/ + /usr/local/nginx + /usr/bin/ + /home/user1 +::: + +# Linuxprompt + +::: frame +### Linuxprompt + +- Die Eingabeaufforderung unter Linux (auch prompt genannt) sieht zB. + wiefolgt aus: + + user@host:/# + +- Der prompt bildet sich nach dem Schema: + `@:#` + +- Das Tildezeichen `~` ist ein Kürzel für das Heimatverzeichnis des + aktuellen Benutzers + +- Die Heimatverzeichnisse befinden sich i.d.R. unter + `/home/` + +- Einzige Ausnahme: Das Heimatverzeichnis des Administratorusers + (`root`) befindet sich unter `/root/` +::: + +# Systemspezifische Befehle + +::: frame +### Systemspezifische Befehle + +- Der Befehl `reboot` (oder `shutdown -r` oder `init 6`) startet das + System neu + +- Der Befehl `halt` (`shutdown -h`, `init 0` oder `poweroff`) schaltet + das System ab +::: + +# Hilfe holen + +::: frame +### Hilfe holen + +- Der Befehl `man` öffnet sie Hilfeseiten (manual) eines Befehls\ + Syntax: `man ` + +- Der Befehl `apropos` durchsucht alle Hilfeseiten nach einem + Stichwort\ + Syntax: `apropos ` + +- Der Befehl `which` findet den Ort eines installierten Programmes\ + Syntax: `which ` +::: + +# Userspezifische Befehle + +::: frame +### Userspezifische Befehle + +- Der Befehl `whoami` zeigt den aktuellen Benutzernamen an + +- Der Befehl `who` zeigt alle am System angemeldeten Benutzer an + +- Der Befehl `groups` zeigt die Gruppen des aktuellen Benutzernamen an + +- Der Befehl `id` zeigt die Nutzerid und Gruppen des aktuellen + Benutzers an + +- Der Befehl `su` wechselt den aktuellen Benutzer\ + Syntax: `su - ` (- sogt dafür, dass ins Heimverzeichnis der + neuen Users gewechselt wird) +::: + +# Userspezifische Befehle + +::: frame +### Userspezifische Befehle + +- Der Befehl `useradd` fügt einen neuen Benutzer hinzu\ + Syntax: `useradd ` + +- Der Befehl `userdel` löscht einen bestehenden Benutzer\ + Syntax: `userdel ` + +- Der Befehl `passwd` kann (unter anderem) das Passwort wechseln\ + Syntax: `passwd ` + +- Der Befehl `logout` loggt den aktuellen Benutzer vom System aus + (ebenso `exit`) +::: + +# Aliase + +::: frame +### Aliase + +- Aliase dienen als Nutzerspezifisches Kürzel für einen Befehl / + Befehlskombination + +- Ein alias wird wiefolgt gesetzt: + `alias =""` + +- Beispiel: + + user@host:/etc# alias gohome="cd ~" + user@host:/etc# pwd + /etc + user@host:/etc# gohome + user@host:~# pwd + /home/user +::: + +# Verzeichnisrelevante Befehle + +::: frame +### Verzeichnisrelevante Befehle + +- Der Befehl `pwd` (*present work directory*) zeigt das aktuelle + Verzeichnis an + +- Der Befehl `cd` ändert das aktuelle Verzeichnis.\ + Syntax: `cd ` + +- Der Befehl `mkdir` erstellt ein neues Verzeichnis.\ + Syntax: `mkdir ` + +- Der Befehl `rmdir` lsöcht ein bestehendes Verzeichnis.\ + Syntax: `rmdir ` (Verzeichnis muss leer sein!) + +- Der Befehl `ls` listet den Verzeichnisinhalt auf\ + Syntax: `ls ` +::: + +# Dateirelevante Befehle + +::: frame +### Dateirelevante Befehle + +- Der Befehl `cp` kopiert Dateien/Verzeichnisse\ + Syntax: `cp `\ + Syntax Verzeichnisse: `cp -R ` + +- Der Befehl `rm` löscht Dateien/Verzeichnisse\ + Syntax: `rm `\ + Syntax Verzeichnisse: `rm -r ` + +- Der Befehl `mv` verschiebt (= umbenennen) Dateien/Verzeichnisse\ + Syntax: `mv ` + +- Der Befehl `touch` erstellt eine neue leere Datei\ + Syntax: `touch ` +::: + +# Weitere häufig gebrauchte Befehle + +::: frame +### Dateirelevante Befehle + +- Der Befehl `cat` gibt Dateinhalt aus\ + Syntax: `cat ` + +- Der Befehl `wc` zählt Wörter oder Linien eines Dateiinhaltes\ + Syntax (linien): `wc -l ` (-w zählt \# Wörter) + +- Der Befehl `echo` gibt eine Zeichenkette aus\ + Syntax: `echo ""` +::: diff --git a/m122/Lektion8/Praesentation/img/bfsulogo.jpg b/m122/Lektion8/Praesentation/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/bfsulogo.jpg differ diff --git a/m122/Lektion8/Praesentation/img/java-program-execution2.png b/m122/Lektion8/Praesentation/img/java-program-execution2.png new file mode 100644 index 0000000..d351d80 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/java-program-execution2.png differ diff --git a/m122/Lektion8/Praesentation/img/klasse_objekt.gif b/m122/Lektion8/Praesentation/img/klasse_objekt.gif new file mode 100644 index 0000000..3036f21 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/klasse_objekt.gif differ diff --git a/m122/Lektion8/Praesentation/img/klasse_objekt.png b/m122/Lektion8/Praesentation/img/klasse_objekt.png new file mode 100644 index 0000000..8ceb02c Binary files /dev/null and b/m122/Lektion8/Praesentation/img/klasse_objekt.png differ diff --git a/m122/Lektion8/Praesentation/img/objekt.png b/m122/Lektion8/Praesentation/img/objekt.png new file mode 100644 index 0000000..7b54056 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/objekt.png differ diff --git a/m122/Lektion8/Praesentation/img/powershell-logo.png b/m122/Lektion8/Praesentation/img/powershell-logo.png new file mode 100644 index 0000000..7023936 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/powershell-logo.png differ diff --git a/m122/Lektion8/Praesentation/img/ps1.png b/m122/Lektion8/Praesentation/img/ps1.png new file mode 100644 index 0000000..594510c Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps1.png differ diff --git a/m122/Lektion8/Praesentation/img/ps10.png b/m122/Lektion8/Praesentation/img/ps10.png new file mode 100644 index 0000000..953e10a Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps10.png differ diff --git a/m122/Lektion8/Praesentation/img/ps11.png b/m122/Lektion8/Praesentation/img/ps11.png new file mode 100644 index 0000000..153eb08 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps11.png differ diff --git a/m122/Lektion8/Praesentation/img/ps12.png b/m122/Lektion8/Praesentation/img/ps12.png new file mode 100644 index 0000000..bb6e0fd Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps12.png differ diff --git a/m122/Lektion8/Praesentation/img/ps13.png b/m122/Lektion8/Praesentation/img/ps13.png new file mode 100644 index 0000000..0f3eabb Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps13.png differ diff --git a/m122/Lektion8/Praesentation/img/ps2.png b/m122/Lektion8/Praesentation/img/ps2.png new file mode 100644 index 0000000..0be4d37 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps2.png differ diff --git a/m122/Lektion8/Praesentation/img/ps3.png b/m122/Lektion8/Praesentation/img/ps3.png new file mode 100644 index 0000000..f3852f5 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps3.png differ diff --git a/m122/Lektion8/Praesentation/img/ps4.png b/m122/Lektion8/Praesentation/img/ps4.png new file mode 100644 index 0000000..c5c8ac9 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps4.png differ diff --git a/m122/Lektion8/Praesentation/img/ps5.png b/m122/Lektion8/Praesentation/img/ps5.png new file mode 100644 index 0000000..cbb8c8e Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps5.png differ diff --git a/m122/Lektion8/Praesentation/img/ps6.png b/m122/Lektion8/Praesentation/img/ps6.png new file mode 100644 index 0000000..b256ca0 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps6.png differ diff --git a/m122/Lektion8/Praesentation/img/ps7.png b/m122/Lektion8/Praesentation/img/ps7.png new file mode 100644 index 0000000..340d376 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps7.png differ diff --git a/m122/Lektion8/Praesentation/img/ps8.png b/m122/Lektion8/Praesentation/img/ps8.png new file mode 100644 index 0000000..37534b3 Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps8.png differ diff --git a/m122/Lektion8/Praesentation/img/ps9.png b/m122/Lektion8/Praesentation/img/ps9.png new file mode 100644 index 0000000..c2bf31c Binary files /dev/null and b/m122/Lektion8/Praesentation/img/ps9.png differ diff --git a/m122/Lektion9/.DS_Store b/m122/Lektion9/.DS_Store new file mode 100644 index 0000000..0ddd9fa Binary files /dev/null and b/m122/Lektion9/.DS_Store differ diff --git a/m122/Lektion9/Praesentation/.DS_Store b/m122/Lektion9/Praesentation/.DS_Store new file mode 100644 index 0000000..4c7e19e Binary files /dev/null and b/m122/Lektion9/Praesentation/.DS_Store differ diff --git a/m122/Lektion9/Praesentation/Bash_L2.pdf b/m122/Lektion9/Praesentation/Bash_L2.pdf new file mode 100644 index 0000000..f1b525d Binary files /dev/null and b/m122/Lektion9/Praesentation/Bash_L2.pdf differ diff --git a/m122/Lektion9/Praesentation/Bash_L2.tex b/m122/Lektion9/Praesentation/Bash_L2.tex new file mode 100644 index 0000000..27fccc8 --- /dev/null +++ b/m122/Lektion9/Praesentation/Bash_L2.tex @@ -0,0 +1,311 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beamer Presentation +% LaTeX Template +% Version 1.0 (10/11/12) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND THEMES +%---------------------------------------------------------------------------------------- + +\documentclass{beamer} + +\usepackage{listings} +\usepackage{graphicx} +\usepackage{lastpage} +\usepackage{fancyhdr} +\usepackage{soul} + +\usepackage{lmodern} % Latin Modern + +\usepackage[utf8]{inputenc} + +\definecolor{beamer@zueriblue}{HTML}{009EE1} +\definecolor{beamer@lightblue}{HTML}{8BCCE8}\DeclareUnicodeCharacter{00A0}{ } + +\mode { + +% The Beamer class comes with a number of default slide themes +% which change the colors and layouts of slides. Below this is a list +% of all the themes, uncomment each in turn to see what they look like. + +%\usetheme{default} +%\usetheme{AnnArbor} +%\usetheme{Antibes} +%\usetheme{Bergen} +%\usetheme{Berkeley} +%\usetheme{Berlin} +%\usetheme{Boadilla} +%\usetheme{CambridgeUS} +%\usetheme{Copenhagen} +%\usetheme{Darmstadt} +%\usetheme{Dresden} +%\usetheme{Frankfurt} +%\usetheme{Goettingen} +%\usetheme{Hannover} +%\usetheme{Ilmenau} +%\usetheme{JuanLesPins} +%\usetheme{Luebeck} +%\usetheme{Madrid} +%\usetheme{Malmoe} +%\usetheme{Marburg} +%\usetheme{Montpellier} +%\usetheme{PaloAlto} +%\usetheme{Pittsburgh} +%\usetheme{Rochester} +%\usetheme{Singapore} +%\usetheme{Szeged} +%\usetheme{Warsaw} + +% As well as themes, the Beamer class has a number of color themes +% for any slide theme. Uncomment each of these in turn to see how it +% changes the colors of your current slide theme. + +%\usecolortheme{albatross} +%\usecolortheme{beaver} +%\usecolortheme{beetle} +%\usecolortheme{crane} +%\usecolortheme{dolphin} +%\usecolortheme{dove} +%\usecolortheme{fly} +%\usecolortheme{lily} +%\usecolortheme{orchid} +%\usecolortheme{rose} +%\usecolortheme{seagull} +%\usecolortheme{seahorse} +%\usecolortheme{whale} +%\usecolortheme{wolverine} + + \usetheme{Dresden} + \setbeamercolor*{palette primary}{use=dove,fg=blue,bg=beamer@lightblue} + + \setbeamercolor*{palette secondary}{use=dove,fg=blue,bg=beamer@lightblue} + \setbeamercolor*{palette tertiary}{use=dove,fg=white,bg=beamer@zueriblue} + + +%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line +%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line + +%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line +} + +\usepackage{graphicx} % Allows including images +\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\title[Bash - Lektion 2]{Linux Shell - Lektion 2} % The short title appears at the bottom of every slide, the full title is only on the title page + +\author{Mario Bischof} % Your name +\institute[BFSU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +{ +Berufsfachschule Uster \\ % Your institution for the title page +\medskip +\href{mailto:mario.bischof@bzu.ch}{mario.bischof@bzu.ch}% Your email address +} +\date{\today} % Date, can be changed to a custom date + +\begin{document} + +\begin{frame} +\includegraphics[height=0.4in]{img/bfsulogo.jpg} +\titlepage % Print the title page as the first slide + +\end{frame} + +\begin{frame} +\frametitle{Übersicht} % Table of contents slide, comment this block out to remove it +\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation +\end{frame} + +%---------------------------------------------------------------------------------------- +% PRESENTATION SLIDES +%---------------------------------------------------------------------------------------- + +%------------------------------------------------ + %------------------------------------------------ + +% A subsection can be created just before a set of slides with a common theme to further break down your presentation into chunks + +\section[kanaele]{Informationskanäle} +\begin{frame}[fragile] + +\frametitle{Informationskanäle} +Wenn sie mit der Shell arbeiten, gibt es unterschiedliche Informationskanäle, welche sie verwenden können. + +\begin{itemize} +\item \verb|stdin| - Standardeingabekanal (0)\\ +{\small{(zB. sie geben Zeichen über die Tastatur ein)}} +\item \verb|stdout| - Standardausgabekanal (1)\\ +{\small{(zB. ein Programm zeigt den Inhalt eines Verzeichnisses am Bildschirm an)}} +\item \verb|sterr| - Standardfehlerausgabekanal (2)\\ +{\small{(zB. ein Programm erzeugt einen Fehler und zeigt diesen am Bildschirm an)}} +\end{itemize} +Jeder der Kanäle kann über die jeweilige Nummer angesprochen werden (0,1,2) +\end{frame} + +\section[uml]{Umleiten} + +\begin{frame}[fragile] +\frametitle{Ausgabe umleiten} +Die Ausgabe eines Befehls kann umgeleitet werden mit \verb|>| oder \verb|>>|\\ +Beispiele: +\begin{itemize} +\item \verb|ls -la > liste.txt| +\item \verb|./meinskript > outputofscript.txt| +\item \verb|cat outputofscript.txt >> list.txt| +\end{itemize} +\verb|>>| hängt Inhalt an bestehende Datei an, \verb|>| überschreibt den Inhalt komplett mit Neuem +\end{frame} + +\begin{frame}[fragile] +\frametitle{Ausgabe umleiten} +Die unterschiedlichen Kanäle können mit der Nummer spezifiziert werden: +\begin{itemize} +\item \verb|./meinskript 2> errorsofscript.txt| \\ +{\small{(Leitet nur Fehlermeldungen in die Datei \verb|errorsofscript.txt|)}} +\item \verb|./meinskript 1> outputofscript.txt| \\ +{\small{(Leitet den üblichen Output in die Datei \verb|outputofscript.txt|)}} +\item \verb|./meinzweitesskript 2>> errorsofscript.txt| \\ +{\small{(Dasselbe geht auch im Anhängemodus)}} +\item \verb|./skript 1> output.txt 2> error.txt| \\ +{\small{(Unterschiedliche Umleitungen der Kanäle in einem Befehl)}} +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Ausgabekanäle zusammenlegen / Ausgaben unterdrücken} +Will man Standardausgabe und Standardfehlerausgabe über denselben Kanal ausgeben, kann man diese mit \verb|2>&1| (Leitet \verb|stderr| in \verb|stdout|) koppeln:\vspace{10pt}\\ +\verb|./skript > output.txt 2>&1| +\vspace{10pt}\\ +Will man einen Ausgabekanal \emph{ausschalten}, kann dieser nach \verb|/dev/null| (der Linux-Datenschredder) umgeleitet werden:\vspace{10pt}\\ +\verb|./skript > output.txt 2>/dev/null|\\ +(Unterdrückt die Ausgabe von Fehlern) +\end{frame} + +\begin{frame}[fragile] +\frametitle{Eingabe umleiten} +Gleichwohl kann die Standardeingabe (oder Ein- und Ausgabe gleichzeitig) umgeleitet werden +\begin{itemize} +\item \verb|cat < meinFile.txt| +\item \verb|cat < meinFile.txt > meinKopiertesFile.txt| +\item +\begin{verbatim} +sort < Z +> B +> A +> fertig +A +B +Z +\end{verbatim} +\end{itemize} +\verb|<<| fängt eine interaktive Eingabe ab, bis ein Schlüsselwort zur Terminierung eingegeben wird (zB. \verb|fertig|). + +\end{frame} + +\section[pipe]{Pipeline} + +\begin{frame}[fragile] +\frametitle{Pipeline} +Im Gegensatz zu Powershell ist die Pipeline in der Linuxshell nicht Objektorientiert. Es wird lediglich die Ausgabe des vorhergehenden Befehls als textueller Output an den nächsten weitergereicht +\begin{itemize} +\item Filtert alle Zeilen mit dem Begriff \verb|hallo| aus der Datei \verb|meinFile.txt|: +\begin{verbatim} +cat meinFile.txt | grep hallo +\end{verbatim} +\item Filtert und sortiert alle Zeilen mit dem Begriff \verb|hallo| aus der Datei \verb|meinFile.txt| (ohne Duplikate): +\begin{verbatim} +cat meinFile.txt | grep hallo | uniq | sort +\end{verbatim} +\item liefert eine Liste aller Benutzernamen (Alles vor dem ersten Doppelpunkt in jeder Zeile in \verb|/etc/passwd|), ausser dem Benutzer ntp. +\begin{verbatim} +cat /etc/passwd | grep -v ntp | cut -d ’:’ -f 1 +\end{verbatim} +\end{itemize} + +\end{frame} + + +\section[wcards]{Wildcards} + +\begin{frame}[fragile] +\frametitle{Wildcards} + +\begin{itemize} +\item * steht für beliebig viele Zeichen +\begin{verbatim} +ls *.txt +\end{verbatim} +\item ? steht für ein beliebiges Zeichen +\begin{verbatim} +ls file?.txt +\end{verbatim} +\item \verb|[ ]| erzeugt eine Auswahl +\begin{verbatim} +ls file[123].txt +\end{verbatim} +\item \verb|[ - ]| erzeugt einen Bereich +\begin{verbatim} +ls file[1-9].txt +\end{verbatim} +\item \verb|!| negiert einen Ausdruck +\begin{verbatim} +ls file[!3].txt +\end{verbatim} +\end{itemize} +\end{frame} + +\section[brace]{Brace extension} + +\begin{frame}[fragile] +\frametitle{Brace extension} +Mit den geschweiften Klammern können Alternativausdrücke formuliert werden: +\begin{itemize} +\item erzeugt \verb|File1.txt|, \verb|File2.txt| und \verb|File3.txt|: +\begin{verbatim} +touch File{1,2,3}.txt +\end{verbatim} +\item Auch Verschachtelungen sind möglich: +\begin{verbatim} +touch file{orginal{.bak,.txt},kopie{.bak,.txt}} +\end{verbatim} +erzeugt \verb|fileoriginal.txt|, \verb|fileoriginal.bak|, \verb|filekopie.txt| und \verb|filekopie.bak| +\end{itemize} +\end{frame} + +\section[texp]{Tilde expansion} + +\begin{frame}[fragile] +\frametitle{Tilde expansion} +Einige nützliche Erweiterungen der Tilde: +\begin{verbatim} +Heimverzeichnis des akt. Benutzers: ~ + +Heimverzeichnis Benutzer: ~BENUTZERNAME + +zuvor besuchtes Verzeichnis: ~- + +akt. Arbeitsverzeichnis (pwd) : ~+ +\end{verbatim} + + +\end{frame} + + + + + + + +\end{document} \ No newline at end of file diff --git a/m122/Lektion9/Praesentation/Lektion-Bash2.md b/m122/Lektion9/Praesentation/Lektion-Bash2.md new file mode 100644 index 0000000..8ad81b1 --- /dev/null +++ b/m122/Lektion9/Praesentation/Lektion-Bash2.md @@ -0,0 +1,190 @@ +::: frame +![image](img/bfsulogo.jpg){height="0.4in"} +::: + +::: frame +### Übersicht +::: + +# Informationskanäle + +::: frame +### Informationskanäle + +Wenn sie mit der Shell arbeiten, gibt es unterschiedliche +Informationskanäle, welche sie verwenden können. + +- `stdin` - Standardeingabekanal (0)\ + (zB. sie geben Zeichen über die Tastatur ein) + +- `stdout` - Standardausgabekanal (1)\ + (zB. ein Programm zeigt den Inhalt eines Verzeichnisses am + Bildschirm an) + +- `sterr` - Standardfehlerausgabekanal (2)\ + (zB. ein Programm erzeugt einen Fehler und zeigt diesen am + Bildschirm an) + +Jeder der Kanäle kann über die jeweilige Nummer angesprochen werden +(0,1,2) +::: + +# Umleiten + +::: frame +### Ausgabe umleiten + +Die Ausgabe eines Befehls kann umgeleitet werden mit `>` oder `>>`\ +Beispiele: + +- `ls -la > liste.txt` + +- `./meinskript > outputofscript.txt` + +- `cat outputofscript.txt >> list.txt` + +`>>` hängt Inhalt an bestehende Datei an, `>` überschreibt den Inhalt +komplett mit Neuem +::: + +::: frame +### Ausgabe umleiten + +Die unterschiedlichen Kanäle können mit der Nummer spezifiziert werden: + +- `./meinskript 2> errorsofscript.txt`\ + (Leitet nur Fehlermeldungen in die Datei `errorsofscript.txt`) + +- `./meinskript 1> outputofscript.txt`\ + (Leitet den üblichen Output in die Datei `outputofscript.txt`) + +- `./meinzweitesskript 2>> errorsofscript.txt`\ + (Dasselbe geht auch im Anhängemodus) + +- `./skript 1> output.txt 2> error.txt`\ + (Unterschiedliche Umleitungen der Kanäle in einem Befehl) +::: + +::: frame +### Ausgabekanäle zusammenlegen / Ausgaben unterdrücken + +Will man Standardausgabe und Standardfehlerausgabe über denselben Kanal +ausgeben, kann man diese mit `2>&1` (Leitet `stderr` in `stdout`) +koppeln:\ +`./skript > output.txt 2>&1`\ +Will man einen Ausgabekanal *ausschalten*, kann dieser nach `/dev/null` +(der Linux-Datenschredder) umgeleitet werden:\ +`./skript > output.txt 2>/dev/null`\ +(Unterdrückt die Ausgabe von Fehlern) +::: + +::: frame +### Eingabe umleiten + +Gleichwohl kann die Standardeingabe (oder Ein- und Ausgabe gleichzeitig) +umgeleitet werden + +- `cat < meinFile.txt` + +- `cat < meinFile.txt > meinKopiertesFile.txt` + +- sort < Z + > B + > A + > fertig + A + B + Z + +`<<` fängt eine interaktive Eingabe ab, bis ein Schlüsselwort zur +Terminierung eingegeben wird (zB. `fertig`). +::: + +# Pipeline + +::: frame +### Pipeline + +Im Gegensatz zu Powershell ist die Pipeline in der Linuxshell nicht +Objektorientiert. Es wird lediglich die Ausgabe des vorhergehenden +Befehls als textueller Output an den nächsten weitergereicht + +- Filtert alle Zeilen mit dem Begriff `hallo` aus der Datei + `meinFile.txt`: + + cat meinFile.txt | grep hallo + +- Filtert und sortiert alle Zeilen mit dem Begriff `hallo` aus der + Datei `meinFile.txt` (ohne Duplikate): + + cat meinFile.txt | grep hallo | uniq | sort + +- liefert eine Liste aller Benutzernamen (Alles vor dem ersten + Doppelpunkt in jeder Zeile in `/etc/passwd`), ausser dem Benutzer + ntp. + + cat /etc/passwd | grep -v ntp | cut -d ’:’ -f 1 +::: + +# Wildcards + +::: frame +### Wildcards + +- \* steht für beliebig viele Zeichen + + ls *.txt + +- ? steht für ein beliebiges Zeichen + + ls file?.txt + +- `[ ]` erzeugt eine Auswahl + + ls file[123].txt + +- `[ - ]` erzeugt einen Bereich + + ls file[1-9].txt + +- `!` negiert einen Ausdruck + + ls file[!3].txt +::: + +# Brace extension + +::: frame +### Brace extension + +Mit den geschweiften Klammern können Alternativausdrücke formuliert +werden: + +- erzeugt `File1.txt`, `File2.txt` und `File3.txt`: + + touch File{1,2,3}.txt + +- Auch Verschachtelungen sind möglich: + + touch file{orginal{.bak,.txt},kopie{.bak,.txt}} + + erzeugt `fileoriginal.txt`, `fileoriginal.bak`, `filekopie.txt` und + `filekopie.bak` +::: + +# Tilde expansion + +::: frame +### Tilde expansion + +Einige nützliche Erweiterungen der Tilde: + + Heimverzeichnis des akt. Benutzers: ~ + + Heimverzeichnis Benutzer: ~BENUTZERNAME + + zuvor besuchtes Verzeichnis: ~- + + akt. Arbeitsverzeichnis (pwd) : ~+ +::: diff --git a/m122/Lektion9/Praesentation/img/.DS_Store b/m122/Lektion9/Praesentation/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/Lektion9/Praesentation/img/.DS_Store differ diff --git a/m122/Lektion9/Praesentation/img/bfsulogo.jpg b/m122/Lektion9/Praesentation/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion9/Praesentation/img/bfsulogo.jpg differ diff --git a/m122/Lektion9/Uebung/.DS_Store b/m122/Lektion9/Uebung/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/Lektion9/Uebung/.DS_Store differ diff --git a/m122/Lektion9/Uebung/Bash_Uebung1.pdf b/m122/Lektion9/Uebung/Bash_Uebung1.pdf new file mode 100644 index 0000000..872a973 Binary files /dev/null and b/m122/Lektion9/Uebung/Bash_Uebung1.pdf differ diff --git a/m122/Lektion9/Uebung/Bash_Uebung1.tex b/m122/Lektion9/Uebung/Bash_Uebung1.tex new file mode 100644 index 0000000..90f986a --- /dev/null +++ b/m122/Lektion9/Uebung/Bash_Uebung1.tex @@ -0,0 +1,274 @@ +\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} +Bash\\ \vspace{20pt} +Übung 1 +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\noindent{\bf{Aufgabe 1 - Repetition: Navigieren in Verzeichnissen}} +\begin{quote} +\begin{enumerate} +\item Wechseln sie mit \verb|cd| in Ihr Heimverzeichnis +\item Wechseln sie ins Verzeichnis \verb|/var/log| mit einer absoluten Pfadangabe +\item Wechseln sie ins Verzeichnis \verb|/etc/udev| mit einer absoluten Pfadangabe +\item Wechseln sie ins Verzeichnis \verb|/etc/| mit einer relativen Pfadangabe +\item Wechseln sie ins Verzeichnis \verb|/etc/network/| mit einer relativen Pfadangabe +\item Wechseln sie ins Verzeichnis \verb|/dev/| mit einer relativen Pfadangabe +\end{enumerate}\vspace{10pt} +\end{quote} +\noindent {\bf{Aufgabe 2 - stdout, stdin, stderr:}} +\begin{quote} +{\bf{a)}} Die Ausführung von \verb|ls -z| erzeugt einen Fehler (da es die Option -z nicht gibt). Starten sie \verb|ls| mit \verb|-z| und leiten sie die Fehler in eine Datei \verb|/root/errorsLs.log|. \\\\ +{\bf{b)}} Erzeugen sie eine kl. Textdatei und füllen sie diese mit Inhalt. Geben sie die Textdatei mit \verb|cat| aus und leiten sie die Ausgabe wieder in eine neue Datei um. Benutzen sie einmal \verb|>| und einmal \verb|>>| (mehrmals hintereinander). Untersuchen sie die beiden Situationen, indem sie jedesmal den Inhalt der Datei wieder ausgeben. Was passiert wenn sie in dieselbe Datei umleiten wollen?\\\\ +{\bf{c)}} Leiten sie die Ausgabe von \verb|whoami| in die Datei \verb|info.txt| um\\\\ +{\bf{d)}} Hängen sie die Ausgabe von \verb|id| an die Datei \verb|info.txt| an\\\\ +{\bf{e)}} Leiten sie die Datei \verb|info.txt| als Eingabe an das Programm \verb|wc| um und zählen sie damit die Wörter (\verb|-w|)\\ +\end{quote} +\noindent {\bf{Aufgabe 3 - grep, cut:}} +\begin{quote} +{\bf{a)}} Erzeugen sie eine Textdatei mit folgendem Inhalt: +\begin{verbatim} +alpha1:1alpha1:alp1ha +beta2:2beta:be2ta +gamma3:3gamma:gam3ma +obelix:belixo:xobeli +asterix:sterixa:xasteri +idefix:defixi:ixidef +\end{verbatim} +Benutzen sie zur Erzeugung \verb|<<| indem sie Zeile für Zeile an \verb|cat| übergeben, die Ausgabe wird in eine Datei umgeleitet. Benutzen sie das Schlusswort \verb|END|.\\ +Durchsuchen sie die Datei mit \verb|grep| nach folgenden Mustern (benutzen sie die Option \verb|--color=auto|): +\begin{itemize} +\item Alle Zeilen, welche \verb|obelix| enhalten +\item Alle Zeilen, welche \verb|2| enhalten +\item Alle Zeilen, welche ein \verb|e| enhalten +\item Alle Zeilen, welche {\bf{nicht}} \verb|gamma| enthalten +\item Alle Zeilen, welche \verb|1|, \verb|2| oder \verb|3| enhalten (benutzen sie \verb|-E| und eine regex) +\end{itemize} + +{\bf{b)}} Gehen sie von derselben Datei aus wie in Aufgabe a). Benutzen sie \verb|cut| und formulieren sie damit einen Befehl um nur folgende Begriffe anzuzeigen: +\begin{itemize} +\item Alle Begriffe vor dem ersten \verb|:|-Zeichen +\item Alle Begriffe zwischen den beiden \verb|:|-Zeichen +\item Alle Begriffe rechts des letzten \verb|:|-Zeichen +\end{itemize}\vspace{10pt} +\end{quote} + +{\bf{Aufgabe 4 - Wildcards:}} +\begin{quote} +Lösen sie folgende Aufgaben der Reihe nach (Verwenden sie soviele Wildcards und/oder Braces wie nur irgendwie möglich! ): + +\begin{enumerate} +\item Erzeugen sie ein Verzeichnis \verb|Docs| in ihrem Heimverzeichnis +\item Erstellen sie die Dateien \verb|file1| bis \verb|file10| mit \verb|touch| im \verb|Docs| Verzeichnis +\item Löschen sie alle Dateien, welche einer 1 im Dateinamen haben +\item Löschen sie \verb|file2|, \verb|file4|, \verb|file7| mit einem Befehl +\item Löschen sie alle restlichen Dateien auf einmal +\end{enumerate} + +\begin{enumerate} +\item Erzeugen sie ein Verzeichnis \verb|Files| in ihrem Heimverzeichnis +\item Erstellen sie die Dateien \verb|file1| bis \verb|file10| mit \verb|touch| im \verb|Files| Verzeichnis +\item Kopieren sie das Verzeichnis \verb|Files| mitsamt Inhalt nach \verb|Files2| +\item Kopieren sie das Verzeichnis \verb|Files| mitsamt Inhalt nach \verb|Files2/Files3| +\item Benennen sie das Verzeichnis \verb|Files| in \verb|Files1| um +\item Löschen sie alle erstellten Verzeichnisse und Dateien wieder +\end{enumerate} +\end{quote} +\vspace{10pt} +{\bf{Aufgabe 5 - Tilde expansions:}} +\begin{quote} +\begin{itemize} +\item Führen sie jede der auf der letzten Seite in der Präsentation aufgeführte Erweiterungen der Tilde einmal an Ihrem System aus und stellen sie sicher, dass sie deren Funktionsweisen verstanden haben. +\end{itemize} +\end{quote} + +\vspace{10pt} +{\bf{Aufgabe 6 - Für Fortgeschrittene:}} +\begin{quote} +\begin{itemize} +\item Was macht folgender Ausdruck? +\begin{verbatim} +dmesg | egrep '[0-9]{4}:[0-9]{2}:[0-9a-f]{2}.[0-9]' +\end{verbatim} +\item Was macht folgender Ausdruck? +\begin{verbatim} +grep -oE \ +'((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])' +\end{verbatim} +\item Was macht folgender Bash-Befehl? +\begin{verbatim} +find / -user root -iname "*bash*" -exec cp {} /root/ \; +\end{verbatim} +\end{itemize} +\end{quote} +\end{document} + + diff --git a/m122/Lektion9/Uebung/img/.DS_Store b/m122/Lektion9/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/Lektion9/Uebung/img/.DS_Store differ diff --git a/m122/Lektion9/Uebung/img/bfsulogo.jpg b/m122/Lektion9/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/Lektion9/Uebung/img/bfsulogo.jpg differ diff --git a/m122/Lektion9/Uebung/img/bzulogo.png b/m122/Lektion9/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/Lektion9/Uebung/img/bzulogo.png differ diff --git a/m122/Lektion9/Uebung/img/ps1.png b/m122/Lektion9/Uebung/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/Lektion9/Uebung/img/ps1.png differ diff --git a/m122/Lektion9/Uebung/img/ps2.png b/m122/Lektion9/Uebung/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/Lektion9/Uebung/img/ps2.png differ diff --git a/m122/Lektion9/Uebung/img/ps3.png b/m122/Lektion9/Uebung/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/Lektion9/Uebung/img/ps3.png differ diff --git a/m122/Lektion9/Uebung/img/ps4.png b/m122/Lektion9/Uebung/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/Lektion9/Uebung/img/ps4.png differ diff --git a/m122/Lektion9/Uebung/img/ps5.png b/m122/Lektion9/Uebung/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/Lektion9/Uebung/img/ps5.png differ diff --git a/m122/Lektion9/Uebung/img/ps6.png b/m122/Lektion9/Uebung/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/Lektion9/Uebung/img/ps6.png differ diff --git a/m122/Lektion9/Uebung/img/ps7.png b/m122/Lektion9/Uebung/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/Lektion9/Uebung/img/ps7.png differ diff --git a/m122/Lektion9/Uebung/img/ps8.png b/m122/Lektion9/Uebung/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/Lektion9/Uebung/img/ps8.png differ diff --git a/m122/Lektion9/Uebung/img/ps9.png b/m122/Lektion9/Uebung/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/Lektion9/Uebung/img/ps9.png differ diff --git a/m122/M122/Lektionen/.DS_Store b/m122/M122/Lektionen/.DS_Store new file mode 100644 index 0000000..07e06da Binary files /dev/null and b/m122/M122/Lektionen/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion1/.DS_Store b/m122/M122/Lektionen/Lektion1/.DS_Store new file mode 100644 index 0000000..b2b8c04 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/.DS_Store b/m122/M122/Lektionen/Lektion1/Praesentation/.DS_Store new file mode 100644 index 0000000..4c7e19e Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/Powershell_L1.pdf b/m122/M122/Lektionen/Lektion1/Praesentation/Powershell_L1.pdf new file mode 100644 index 0000000..ec853d6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/Powershell_L1.pdf differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/Powershell_L1.tex b/m122/M122/Lektionen/Lektion1/Praesentation/Powershell_L1.tex new file mode 100644 index 0000000..e219a9d --- /dev/null +++ b/m122/M122/Lektionen/Lektion1/Praesentation/Powershell_L1.tex @@ -0,0 +1,424 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beamer Presentation +% LaTeX Template +% Version 1.0 (10/11/12) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND THEMES +%---------------------------------------------------------------------------------------- + +\documentclass{beamer} + +\usepackage{listings} +\usepackage{graphicx} +\usepackage{lastpage} +\usepackage{fancyhdr} +\usepackage{soul} + +\usepackage{lmodern} % Latin Modern + +\usepackage[utf8]{inputenc} + +\definecolor{beamer@zueriblue}{HTML}{009EE1} +\definecolor{beamer@lightblue}{HTML}{8BCCE8}\DeclareUnicodeCharacter{00A0}{ } + +\mode { + +% The Beamer class comes with a number of default slide themes +% which change the colors and layouts of slides. Below this is a list +% of all the themes, uncomment each in turn to see what they look like. + +%\usetheme{default} +%\usetheme{AnnArbor} +%\usetheme{Antibes} +%\usetheme{Bergen} +%\usetheme{Berkeley} +%\usetheme{Berlin} +%\usetheme{Boadilla} +%\usetheme{CambridgeUS} +%\usetheme{Copenhagen} +%\usetheme{Darmstadt} +%\usetheme{Dresden} +%\usetheme{Frankfurt} +%\usetheme{Goettingen} +%\usetheme{Hannover} +%\usetheme{Ilmenau} +%\usetheme{JuanLesPins} +%\usetheme{Luebeck} +%\usetheme{Madrid} +%\usetheme{Malmoe} +%\usetheme{Marburg} +%\usetheme{Montpellier} +%\usetheme{PaloAlto} +%\usetheme{Pittsburgh} +%\usetheme{Rochester} +%\usetheme{Singapore} +%\usetheme{Szeged} +%\usetheme{Warsaw} + +% As well as themes, the Beamer class has a number of color themes +% for any slide theme. Uncomment each of these in turn to see how it +% changes the colors of your current slide theme. + +%\usecolortheme{albatross} +%\usecolortheme{beaver} +%\usecolortheme{beetle} +%\usecolortheme{crane} +%\usecolortheme{dolphin} +%\usecolortheme{dove} +%\usecolortheme{fly} +%\usecolortheme{lily} +%\usecolortheme{orchid} +%\usecolortheme{rose} +%\usecolortheme{seagull} +%\usecolortheme{seahorse} +%\usecolortheme{whale} +%\usecolortheme{wolverine} + + \usetheme{Dresden} + \setbeamercolor*{palette primary}{use=dove,fg=blue,bg=beamer@lightblue} + + \setbeamercolor*{palette secondary}{use=dove,fg=blue,bg=beamer@lightblue} + \setbeamercolor*{palette tertiary}{use=dove,fg=white,bg=beamer@zueriblue} + + +%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line +%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line + +%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line +} + +\usepackage{graphicx} % Allows including images +\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\title[Powershell - Lektion 1]{Powershell - Lektion 1} % The short title appears at the bottom of every slide, the full title is only on the title page + +\author{Mario Bischof} % Your name +\institute[BFSU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +{ +Berufsfachschule Uster \\ % Your institution for the title page +\medskip +\href{mailto:mario.bischof@bzu.ch}{mario.bischof@bzu.ch} % Your email address +} +\date{\today} % Date, can be changed to a custom date + +\begin{document} + +\begin{frame} +\includegraphics[height=0.4in]{img/bfsulogo.jpg} +\titlepage % Print the title page as the first slide + +\end{frame} + +\begin{frame} +\frametitle{Übersicht} % Table of contents slide, comment this block out to remove it +\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation +\end{frame} + +%---------------------------------------------------------------------------------------- +% PRESENTATION SLIDES +%---------------------------------------------------------------------------------------- + +%------------------------------------------------ + %------------------------------------------------ + +\section[Begriff]{Was ist die Powershell?} % A subsection can be created just before a set of slides with a common theme to further break down your presentation into chunks + + +\begin{frame} +\frametitle{Was ist die Powershell?} +\begin{center} +\includegraphics[height=0.6in]{img/powershell-logo.png} +\end{center} +\begin{itemize} +\item Gegenstück zur Unix-Shell auf der Windows-Plattform +\item Eine mächtige Umgebung für Systemadministration und Scripting auf der Windows-Plattform +\item Viele bereits eingebaute Befehle, die \emph{Commandlets}, welche spezifische Betriebssystemtechnische Funktionen zur Verfügung stellen +\item Stellt Zugang zu Systembibliotheken (COM-Bibl., .NET Framework, WMI) bereit +\item Bietet eine einfache und mächtige Skriptsprache, um Betriebssystemaufgaben zu automatisieren +\end{itemize} +\end{frame} + + +\section[Geschichte]{Geschichte der Powershell} +\begin{frame} +\frametitle{Geschichte der Powershell} +\begin{itemize} +\item Erste Betaversion bereits im Oktober 2003 unter Codenamen \emph{Monad} vorgestellt +\item Zwischenstufen \emph{Microsoft Shell (MSH)} und \emph{Microsoft Command Shell} +\item Seit Mai 2006 als \emph{Windows PowerShell} bekannt +\item PowerShell 1.0 erschien am 6.11.2006 (Mit Windows Vista, musste aber nachinstalliert werden) +\item PowerShell 2.0 erschien am 22.7.2009 (Mit Win7 / WinServer 2008 R2) +\item PowerShell 3.0 erschien am 15.8.2012 (Mit Win 8 / WinServer 2012) +\item PowerShell 4.0 erschien am 9.9.2013 (Mit Win 8.1 / WinServer 2012 R2) +\item PowerShell 5.0 (Öffentliches Preview verfügbar) +\end{itemize} +\end{frame} + +\section[Verfügbarkeit]{Verfügbarkeit der Powershell} +\begin{frame}[fragile] +\frametitle{Verfügbarkeit der Powershell} +\begin{itemize} +\item Powershell 2.0 ist auf Windows 7 standardmässig verfügbar +\item Powershell 4.0 nachinstallierbar als Teil des Windows Management Framework 4.0 (WMF): \url{https://www.microsoft.com/en-us/download/details.aspx?id=40855} +\item das .NET-4.5 Framework muss vorhanden sein \url{https://www.microsoft.com/de-de/download/details.aspx?id=30653} (sonst schlägt die Installation von WMF fehl) +\item Powershell installiert sich im Verzeichnis: \verb|%systemroot%\system32\WindowsPowerShell\V1.0| (32-Bit Systeme) +\end{itemize} +\end{frame} + + +\section[Starten]{Powershell starten} + +\begin{frame}[fragile] +\frametitle{Powershell starten} +\begin{itemize} +\item Die Eingabe des Begriffs \emph{powershell} im Suchfeld zeigt mehrere Optionen unter Windows 7 +\item Die Powershell wird mit \emph{Windows PowerShell} gestartet + +\end{itemize} +\begin{center} +\includegraphics[height=2.0in]{img/ps1.png} +\end{center} +\end{frame} + +\section[Version]{Powershell Version} + +\begin{frame}[fragile] +\frametitle[Version]{Powershell Version} +\begin{itemize} +\item Mit \verb|Get-Host| kann die aktuelle Version der Powershell angezeigt werden +\item Win7 hat Defaultmässig Version 2.0 installiert, Version 4.0 kann nachinstalliert werden +\end{itemize} +\begin{center} +\includegraphics[height=1.5in]{img/ps2.png} +\end{center} +\end{frame} + +\section[Eventlog]{Powershell Eventlog} + +\begin{frame}[fragile] +\frametitle{Powershell Eventlog (Ereignisprotokoll)} +\begin{itemize} +\item Die Powershell führt ein eigenes Ereignisprotokoll (Logging der Powershell) +\end{itemize} +\begin{center} +\includegraphics[height=2.0in]{img/ps3.png} +\end{center} +\end{frame} + +\section[Modi]{Powershell Modi} + +\begin{frame}[fragile] +\frametitle{Powershell "Modi" - interaktiv} +\begin{itemize} +\item Powershell im interaktiven Modus benutzen (Befehle direkt eingeben) +\end{itemize} +\begin{center} +\includegraphics[height=1.5in]{img/ps4.png} +\end{center} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Powershell "Modi" - Skriptmodus} +\begin{itemize} +\item Powershell im Skriptmodus benutzen +\item Powershellprogramm wird in ein Skriptfile mit der Endung \emph{.ps1} geschrieben +\item Ausführung mit \verb|.\Filename.ps1| +\end{itemize} +\begin{center} +\includegraphics[height=1.0in]{img/ps5.png} +\end{center} +\end{frame} + + +\section[ISE]{Powershell Editor ISE} + +\begin{frame}[fragile] +\frametitle{PowerShell-Editor ISE} +\begin{itemize} +\item Mit \emph{Windows Powershell ISE} starten +\item Besitzt drei Hauptarbeitsflächen: +\begin{itemize} +\item Skripteditor um ein neues Skript zu erstellen (zuoberst) +\item Ausgabefläche für den Output des Skripts oder der interaktiven Befehlseingabe (in der Mitte) +\item Interaktives Eingabefeld (Im Prinizip einfach ein interaktiver Powershell-Zugang innerhalb ISE), wo Befehle direkt ausgetestet werden können +\end{itemize} +\end{itemize} + +\end{frame} + + +\begin{frame}[fragile] +\frametitle{PowerShell-Editor ISE} +\begin{center} +\includegraphics[height=2.2in]{img/ps6.png} +\end{center} +\end{frame} + +\begin{frame}[fragile] +\frametitle{PowerShell-Editor ISE - Debugger} +\begin{itemize} +\item Powershell ISE bietet einen einfachen Debugger +\item Rote Zeilen bedeuten, dass hier ein Breakpoint gesetzt ist +\item Gelbe Zeile bedeutet, dass diese Zeile als nächstes ausgeführt wird +\item Breakpoint setzen über Kontextmenu mit Rechtsklick +\item Debugger starten über Debug-Menupunkt oder mit F5 +\end{itemize} +\begin{center} +\includegraphics[height=2.0in]{img/ps7.png} +\end{center} +\end{frame} + + +\section[Cmdlets]{Commandlets} + +\begin{frame}[fragile] +\frametitle{Commandlets} +\begin{itemize} +\item Ist ein Powershellbefehl, der eine bestimmte Aufgabe erfüllt (zB. alle Prozesse auflisten) +\item Wird mit \verb|Verb-Substantiv [-Parameterliste]| ausgedrückt (zB. \emph{Get-Host}) +\item Auch keine Parameter möglich +\item Gross- und Kleinschreibung nicht relevant +\item Es gibt nur eine begrenzte Anzahl solcher \emph{Verben}, um die Befehlsstruktur einheitlich zu halten. Zu den häufigsten gehören \emph{Get} und \emph{Set}. +\item Parameterreihenfolge ist relevant, Inputwerte werden über Parameter eingegeben +\item Parameter ohne Werte werden \emph{Switches} genannt (um eine Option ein- oder auszuschalten) +\end{itemize} +\end{frame} + +\section{Aliase} + +\begin{frame}[fragile] +\frametitle{Aliase} +\begin{itemize} +\item Ein Alias ist eine alternative (verkürzte) Schreibweise für ein Commandlet +\item zB. steht das Alias \verb|cls| für das Commandlet \verb|Clear-Host| +\item die Einfabe von \verb|cls| führt zum selben Resulat wie \verb|Clear-Host| (löscht den Bildschirminhalt) +\item der Benutzer kann auch eigene Aliase definieren +\end{itemize} +\end{frame} + +\section[Exprs]{Ausdrücke} + +\begin{frame}[fragile] +\frametitle{Ausdrücke} +\begin{itemize} +\item Die Powershell kann direkt mathematische Ausdrücke interpretieren wie zB. \verb|(5+6)*100| +\item oder Zeichenketten \verb|"Hello "+ " " + "BFSU"| +\item dabei spricht man auch vom Expression-mode +\item im Gegensatz zum Command-mode, zB. : \verb|Write-Output ((5 + 6)*100)|, wenn ein Befehl involviert ist (Der Ausdruck kann sehr wohl als Parameter übergeben werden, muss aber mit runden Klammern angegeben werden, falls das Resultat \emph{vor} der Ausgabe berechnet werden soll) +\end{itemize} +\end{frame} + + +\begin{frame}[fragile] +\frametitle{Ausdrücke} +\begin{center} +\includegraphics[height=1.0in]{img/ps8.png} +\end{center} +\begin{itemize} +\item Ohne Klammer wird der Ausdruck von \emph{Write-Output} als normale Zeichenkette interpretiert, innerhalb von runden Klammern, wird der Ausdruck zuerst ausgewertet +\item \verb|echo 5+5| gibt \verb|5+5| Bildschirm aus, wohingegen \verb|echo (5+5)| 10 ausgibt. +\end{itemize} + +\end{frame} + +\begin{frame}[fragile] +\frametitle{Ausdrücke} +\begin{center} +\includegraphics[height=0.5in]{img/ps9.png} +\end{center} +\begin{itemize} +\item Mit dem \verb|$|-Zeichen kann ein Unterausdruck erzeugt werden, dadurch wird das Commandlet zuerst aufgerufen und das Resultat weiterverwendet +\end{itemize} + +\end{frame} + + +\section[Ext.Bef]{Externe Befehle} + +\begin{frame}[fragile] +\frametitle{Externe Befehle} +\begin{center} +\includegraphics[height=1.4in]{img/ps10.png} +\end{center} +\begin{itemize} +\item Alle Eingaben welche nicht mathematische Ausdrücke oder Commandlets sind, werden als externe Befehle interpretiert +\end{itemize} + +\end{frame} + +\begin{frame}[fragile] +\frametitle{Externe Befehle} +\begin{center} +\includegraphics[height=1.0in]{img/ps11.png} +\end{center} +\begin{itemize} +\item Externe Befehle mit einem Leerzeichen im Pfad, müssen in Anführungs- und Schlusszeichen gesetzt werden und mit einem Kaufmännischen Und (\&) voran aufgerufen werden +\end{itemize} + +\end{frame} + +\begin{frame}[fragile] +\frametitle{Externe Befehle} +\begin{center} +\includegraphics[height=1.0in]{img/ps13.png} +\end{center} +\begin{itemize} +\item Wird eine Datei direkt aufgerufen, öffnet sich automatisch das Programm, welches in der Registry als Programm zum Öffnen von Dateien mit dieser Dateiendung eingetragen ist +\end{itemize} + +\end{frame} + + +\section[listen]{Befehle auflisten} + +\begin{frame}[fragile] +\frametitle{Befehle auflisten} + +\begin{itemize} +\item \verb|Get-Command| listet alle verfügbaren Befehle auf +\item \verb|Get-Command Get-a*| listet alle verfügbaren Get-Befehle auf, welche mit dem Buchstaben a beginnen +\item \verb|Get-Command *-Host| listet alle Befhle auf, welche das Substantiv Host besitzen + +\end{itemize} + +\end{frame} + +\section[Hilfe]{Hilfe zu Befehlen abfragen} + +\begin{frame}[fragile] +\frametitle{Hilfe zu Befehlen abfragen} +\begin{center} +\includegraphics[height=1.5in]{img/ps12.png} +\end{center} +\begin{itemize} +\item \verb|Get-Help Befehlsname| listet einen kurzen Hilfetext zum Befehl auf +\item \verb|Get-Help Befehlsname -detailed| oder \verb|Get-Help Befehlsname -full| gibt einen ausführlicheren Hilfetext aus (full und detailed sind switches) +\end{itemize} +\end{frame} + + +\begin{frame}[fragile] +\frametitle{Hilfe zu Befehlen abfragen} + +\begin{itemize} +\item \verb|Show-Command Befehlsname| zeigt ein graphisches Fenster zum Befehl an (mit Parameterfeldern usw.). (Erst ab Powershell 3.0 verfügbar!) Der Button Copy kopiert den Befehl sowie im Fenster ausgefüllt in die Zwischenablage. +\item Mit \verb|Get-Help "Befehlsname" -ShowWindow| kann der Hilfetext in einem separaten Fenster geöffnet werden. (Erst ab Powershell 3.0 verfügbar!) +\item Online-Dokumentation der PowerShell 4.0: \url{http://technet.microsoft.com/en-us/library/bb978526.aspx} +\end{itemize} +\end{frame} + + +\end{document} \ No newline at end of file diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion1/Praesentation/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/java-program-execution2.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/java-program-execution2.png new file mode 100644 index 0000000..d351d80 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/java-program-execution2.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/powershell-logo.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/powershell-logo.png new file mode 100644 index 0000000..7023936 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/powershell-logo.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps1.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps1.png new file mode 100644 index 0000000..594510c Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps10.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps10.png new file mode 100644 index 0000000..953e10a Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps10.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps11.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps11.png new file mode 100644 index 0000000..153eb08 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps11.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps12.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps12.png new file mode 100644 index 0000000..bb6e0fd Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps12.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps13.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps13.png new file mode 100644 index 0000000..0f3eabb Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps13.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps2.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps2.png new file mode 100644 index 0000000..0be4d37 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps3.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps3.png new file mode 100644 index 0000000..f3852f5 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps4.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps4.png new file mode 100644 index 0000000..c5c8ac9 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps5.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps5.png new file mode 100644 index 0000000..cbb8c8e Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps6.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps6.png new file mode 100644 index 0000000..b256ca0 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps7.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps7.png new file mode 100644 index 0000000..340d376 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps8.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps8.png new file mode 100644 index 0000000..37534b3 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion1/Praesentation/img/ps9.png b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps9.png new file mode 100644 index 0000000..c2bf31c Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Praesentation/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/.DS_Store b/m122/M122/Lektionen/Lektion1/Uebung/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/Powershell_Uebung1.pdf b/m122/M122/Lektionen/Lektion1/Uebung/Powershell_Uebung1.pdf new file mode 100644 index 0000000..3fee820 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/Powershell_Uebung1.pdf differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/Powershell_Uebung1.tex b/m122/M122/Lektionen/Lektion1/Uebung/Powershell_Uebung1.tex new file mode 100644 index 0000000..01bde42 --- /dev/null +++ b/m122/M122/Lektionen/Lektion1/Uebung/Powershell_Uebung1.tex @@ -0,0 +1,280 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 1 +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\noindent {\bf{Hinweis: }} Sie arbeiten auf der Windows 7 VM, welches sie als Template auf Ihrem Schulrechner zur Verfügung haben. Sie sind selbst dafür verantwortlich, dass die Ihre VM auf einer Harddisk oder Ihrem persönlichen Laufwerk in Ihrem aktuellen Arbeitsstand gesichert wird und sie diese zum Unterricht dabei haben.\\\\ + +\begin{quote} +{\bf{Aufgabe 1 - Installation:}} \\\\ +{\bf{a)}} - Laden sie das .NET-Framwork 4.5 hier herunter: \url{https://www.microsoft.com/de-de/download/details.aspx?id=30653} und installieren sie dieses als erstes.\\\\ +{\bf{b)}} - Danach installieren sie PowerShell 4.0, indem sie das Windows Management Framework 4.0 installieren \url{https://www.microsoft.com/en-us/download/details.aspx?id=40855} (\verb|Windows6.1-KB2819745-x86-MultiPkg.msu| ist für Windows 7 32 bit, \verb|Windows6.1-KB2819745-x64-MultiPkg.msu| für 64 bit) \\\\ +{\bf{c)}} - Installieren sie zuletzt noch die PowerShell Community Extensions \url{http://pscx.codeplex.com/}. Sie erhalten damit eine Reihe weiterer Funktionalitäten für Ihre PowerShell (zB. \verb|Get-DhcpServer|, \verb|Get-DomainController|, \verb|Ping-Host|, usw). Überprüfen sie die Installation der pscx, indem sie \verb|Ping-Host 127.0.0.1| oder \verb|Get-DomainController| ausführen (zur Ausführung müssen sie zuerst Aufgabe 2 gelöst haben!). +\end{quote} + +\begin{quote} +{\bf{Aufgabe 2 - Installation überprüfen / Starten:}} \\\\ +{\bf{a)}} - Überprüfen sie, ob Ihre PowerShell korrekt installiert wurde, indem sie die PowerShell öffnen und mit \verb|Get-Host| die Version überprüfen.\\\\ +{\bf{b)}} - Erstellen sie mit dem Notepad eine neue PowerShell Skriptdatei und fügen sie den Inhalt wie im folgeden Screenshot abgebildet hinzu: +\begin{center} +\includegraphics[height=1.6in]{img/ps1.png} +\end{center} +Die Datei enthält zwei Zeilen Kommentare (Zeilen, welche mit \# beginnen) und drei Zeilen, welche einfach nur Text am Bildschirm ausgeben (\verb|Write-Host|). Speichern sie die Datei mit der Endung \verb|.ps1| ab!\\\\ +{\bf{c)}} - Navigieren sie in der PowerShell an den Ort, wo sie die Datei abgespeichert haben. Mit \verb|cd Zielordner| können sie den aktuellen Ordner wechseln. Versuchen sie das Skript mit \verb|.\Skriptname.ps1| auszuführen. Dies dürfte noch nicht funktionieren, da die Ausführung von Skripten standardmässig ausgeschaltet ist. Sie sollten eine Fehlermeldung ähnlich folgender antreffen: +\begin{center} +\includegraphics[height=1.6in]{img/ps2.png} +\end{center} +Damit sie dies ändern können, müssen sie \verb|Set-ExecutionPolicy RemoteSigned| in der PowerShell ausführen. {\bf{Achtung:}} Sie müssen dazu die PowerShell mit Administratorrechten ausgeführt haben! Falls sie also selber kein Administrator sind, öffnen sie die PowerShell mit Rechtsklick $\rightarrow$ Als Administrator ausführen (PowerShell 4.0 hat einen direkten Link im PowerShell Untermenü). +\begin{center} +\includegraphics[height=2.4in]{img/ps3.png} +\end{center} +Die gewünschte Änderung müssen sie noch mit \verb|Y| bestätigen. Nun sollten sie das Beispielskript problemlos ausführen können: +\begin{center} +\includegraphics[height=1.1in]{img/ps4.png} +\end{center} +\end{quote} +\noindent Ihre PowerShell ist nun Startbereit für die Arbeit mit Skripts. Wir wollen nun aber noch nicht mit dem Skripten beginnen und uns Zeit nehmen, die kennengelernten Konzepte \verb|Commandlets| usw. zu vertiefen. + +\begin{quote} +{\bf{Aufgabe 3 - Commandlets Einstieg:}} \\\\ +{\bf{a)}} - Geben sie \verb|Get-Process| in Ihre PowerShell ein. Was macht dieser Befehl?\\\\ +{\bf{b)}} - Lesen sie in der Hilfe mit \verb|Get-Help Get-Process| nach, was dieser Befehl macht. Wie sie vielleicht festgestellt haben, bedeutet die Einzahl \emph{Process} im Befehlsnamen nicht, dass nur ein Element zurückgegeben werden muss, es kann eine ganze Liste oder Tabelle von Elementen ausgegeben werden.\\\\ +{\bf{c)}} - Das Asterisk-Zeichen (*) steht für \emph{beliebige Zeichen}, d.h. mit \verb|Get-Process a*| werden alle Prozesse aufgelistet, welche mit einem a Buchstaben beginnen. Probieren sie es aus. Listen sie nun alle Prozesse auf, welche mit eine e Buchstaben enden. Listen sie danach auch noch alle Prozesse auf, welche mit einem s Buchstaben beginnen und mit einem t Buchstaben enden.\\\\ +{\bf{d)}} - Wiederholen sie die Übungen a) bis c), nun aber mit dem \verb|Get-Service| Befehl, mit dem Unterschied, dass die bei der letzten Aufgabe unter c) alle Services listen, welche mit t Beginnen und mit e enden.\\\\ +{\bf{e)}} - Geben sie \verb|Get-| ein und drücken sie mehrmals die Tab-Taste. Sie können sich so alle möglichen Befehle ergänzen lassen, welche mit \verb|Get-| beginnen.\\\\ + +{\bf{Aufgabe 4 - Commandlets:}} \\\\ +{\bf{a)}} - Geben sie in Ihr PowerShell Fenster \verb|Get-ChildItem| ein. Was zeigt Ihnen dieses Commandlet an?\\\\ +{\bf{b)}} - Die Werte, welche sie nach dem Commandletnamen mitgeben, nennt man auch Parameter. zB. können sie das obige Commandlet auch so: \\ \verb|Get-ChildItem "C:\Program Files"| ausführen. Sie übergeben dann den Wert \verb|"C:\Program Files"| als Parameter an das Commandlet. Dies listet ihnen alle Dateien innerhalb von \verb|"C:\Program Files"| auf. +\\\\ +{\bf{c)}} - Um nur gewisse Dateitypen anzuzeigen, können sie zB. \verb|Get-ChildItem C:\ *.bat| ausführen. Die Parameter sind in der richtigen Reihenfolge anzugeben, d.h. \\ \verb|Get-ChildItem *.bat C:\| würde nicht funktionieren. Rufen sie das Commandlet mit der falschen Parameterreihenfolge auf und interpretieren sie die Fehlermeldung.\\ +Sie können jedoch die Parameterreihenfolge ändern, indem sie diese wiefolgt explizit angeben: \verb|Get-ChildItem -Filter *.bat -Path C:\| \\ (Wenn sie mit \verb|Get-Help Get-ChildItem| die Hilfe aufrufen, können sie die Namen der Parameter unter dem Punkt \verb|SYNTAX| herausfinden). +\\\\ +{\bf{d)}} - Ein Switch ist ein Parameter, der keinen Wert entgegennimmt. \\ Mit \verb|Get-ChildItem C:\ *.doc -Recurse| können sie durch den Switch \verb|-Recurse| erzwingen, dass nicht nur unter dem Dateipfad \verb|C:\| nach doc-Dateien gesucht wird, sondern auch noch in allen Unterordnern, also im Prinzip auf dem ganzen System gesucht wird.\\\\ +{\bf{e)}} - Lassen sie sich alle Dateien aus dem Verzeichnis \verb|"C:\Program Files"| und aller Unterordner anzeigen. +\\\\ +{\bf{f)}} - Lassen sie sich alle Dateien aus dem Verzeichnis \verb|"C:\Program Files"| und aller Unterordner anzeigen, welche die Dateiendung \verb|.bmp| besitzen. \\\\ +{\bf{g)}} - Will man einen Switch explizit deaktivieren (weil er standardmässig immer aktiv ist), kann man dies mit \verb|$false| erreichen, also zB.:\\ +\verb|Get-ChildItem C:\ *.doc -Recurse:$false|\\\\ +{\bf{h)}} - Mit dem Fragezeichen lässt sich genau ein beliebiges Zeichen signalisieren. \verb|Get-Process d?m| sucht nach einem Prozess, der drei Zeichen hat, mit d beginnt und mit m endet. Die eckigen Klammern symbolisieren eine Auswahl \verb|Get-Process [dt]*| sucht alle Prozesse, die mit einem d oder einem t beginnen.\\\\ +Listen sie alle Prozesse auf, die mit einem d,t,s oder p beginnen.\\ +Listen sie alle Prozesse auf, die mit einem e,s oder l aufhören.\\ +Listen sie alle Prozesse auf, die aus genau 5 Buchstaben bestehen.\\\\ +{\bf{i)}} - Für die PowerShell gibt es noch die \emph{allgemeinen Parameter}, einige sollen hier aufgelistet werden (probieren sie mind. 2 davon aus):\\\\ +\verb|-Force| Erzwingt eine Aktion\\\\ +\verb|-Whatif| Zeigt nur an, was die Ausführung machen würde, führt diese aber nicht aus (Was wäre wenn...)\\\\ +\verb|-Confirm| Der Nutzer muss jede einzelne Teilaktion bestätigen \\\\ +\verb|-Verbose| Das Commandlet gibt eine detaillierte Bildschirmausgabe an\\\\ +\verb|-Debug| Das Commandlet gibt eine sehr detaillierte Bildschirmausgabe an\\\\ +Eine komplette Liste der allgemeinen Parameter (common parameters) finden sie hier: \url{https://technet.microsoft.com/en-us/library/dd901844%28v=vs.85%29.aspx} \\\\ + +{\bf{j)}} - Wenn sie an eine Befhelsausführung \verb|-ShowCommand| anhängen, wird Ihnen ein Fenster geöffnet, worin sie die Parameter über Eingabefelder einfügen können. Die mit *-Markierten Felder sind erforderlich. Sie können über dieses Fenster auch allgemeine Parameter wie \verb|Confirm| oÄ. setzen. Wenn sie \verb|Copy| drücken, wird der Commandlet Befehl mit allen Parameter, die sie gesetzt haben, in die Zischenablage kopiert, damit sie diesen ins Konsolenfenster einfügen können. Oder: sie klicken direkt auf \verb|Run| (vorausgesetzt, alle erforderlichen Felder sind ausgefüllt), dann wird der Befehl automatisch eingefügt. Falls sie Mühe haben, mit der Textorientierten Schreibweise der PowerShell, ist dies eine gute Einstiegshilfe für die Arbeit Commandlets und der Textorientierten Shell. +\begin{center} +\includegraphics[height=4.5in]{img/ps6.png} +\end{center} +{\bf{Aufgabe 5 - Aliase:}} \\\\ +{\bf{a)}} - Lassen sie sich mit \verb|Get-Alias| alle Aliase auflisten. Finden sie das Alias für \verb|Get-Alias| selbst. Führen sie \verb|Get-Alias| ein zweites mal aus, aber diesmal über das Alias.\\\\ +{\bf{b)}} - Mit: +\begin{verbatim} +Get-Alias | Where-Object { $_.definition -eq "Stop-Service" } +\end{verbatim} +können sie nach dem Alias filtern, welches \verb|Stop-Service| heisst. (Sie müssen diesen Befehl noch nicht verstehen, sie haben aber damit bereits ein erstes mal ein Pipelining ($|$-Zeichen) angewendet!) \\\\ +{\bf{c)}} - Schauen sie sich die Hilfe des Befehls \verb|Set-Alias| an. Erstellen sie ein Alias \verb|st| für das Programm \verb|SnippingTool.exe|. (Das erstelle Alias ist nur für die Dauer dieser PowerShell gültig. Schliessen sie nach erfolgreichem Test des neuen Aliases die PowerShell und öffnen sie eine neue und überprüfen sie, ob das Alias noch funktioniert)\\\\ +{\bf{Aufgabe 6 - Hilfe:}} \\\\ +{\bf{a)}} - Wie sie bereits wissen, können sie mit \verb|Get-Help Befehlsname| einen Hilfetext anzeigen lassen. Mit \verb|Get-Help Get-Process -parameter "*"| können sie sich die Hilfe zu den einzelnen Parametern anzeigen lassen.\\\\ +{\bf{b)}} - Mit \verb|Get-Help Befehlsname -ShowWindow| können sie sich die Hilfe in einem normalen Windowsfenster anzeigen lassen: +\begin{center} +\includegraphics[height=3.5in]{img/ps5.png} +\end{center} + + +{\bf{Aufgabe 7 - PowerShell ISE:}}\\\\ +{\bf{a)}} - Öffnen sie das PowerShell ISE und kopieren sie den Inhalt des Skripts aus Aufgabe 2 b) in das Skriptfenster der PowerShell ISE. Führen sie das Skript über das PowerShell ISE aus: +\begin{center} +\includegraphics[height=2.5in]{img/ps7.png} +\end{center} +{\bf{b)}} - Setzen sie nun einen breakpoint (F9) (Sie müssen das Skript zuerst abgespeichert haben, damit sie breakpoints setzen können!) und laufen sie Schrittweise (F10) durch ihr Programm durch: +\begin{center} +\includegraphics[height=3.0in]{img/ps8.png} +\end{center} + +{\bf{c)}} - Markieren sie eine einzige Zeile im Skript und führen sie diese mit F8 aus (sie können in ISE beliebigen Code markieren und nur den markierten Ausschnitt ausführen lassen): +\begin{center} +\includegraphics[height=3.0in]{img/ps9.png} +\end{center} +All die Aktionen aus den Aufgaben a), b) und c) lassen sich selbstverständlich auch über das Kontextmenü (Rechtsklick) oder über die Menüregister am oberen Fensterrand bewerkstelligen. +\end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/.DS_Store b/m122/M122/Lektionen/Lektion1/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion1/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/bzulogo.png b/m122/M122/Lektionen/Lektion1/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/ps1.png b/m122/M122/Lektionen/Lektion1/Uebung/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/ps2.png b/m122/M122/Lektionen/Lektion1/Uebung/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/ps3.png b/m122/M122/Lektionen/Lektion1/Uebung/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/ps4.png b/m122/M122/Lektionen/Lektion1/Uebung/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/ps5.png b/m122/M122/Lektionen/Lektion1/Uebung/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/ps6.png b/m122/M122/Lektionen/Lektion1/Uebung/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/ps7.png b/m122/M122/Lektionen/Lektion1/Uebung/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/ps8.png b/m122/M122/Lektionen/Lektion1/Uebung/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung/img/ps9.png b/m122/M122/Lektionen/Lektion1/Uebung/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/.DS_Store b/m122/M122/Lektionen/Lektion1/Uebung_Loes/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/Powershell_Uebung1_Loes.pdf b/m122/M122/Lektionen/Lektion1/Uebung_Loes/Powershell_Uebung1_Loes.pdf new file mode 100644 index 0000000..a4cd627 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/Powershell_Uebung1_Loes.pdf differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/Powershell_Uebung1_Loes.tex b/m122/M122/Lektionen/Lektion1/Uebung_Loes/Powershell_Uebung1_Loes.tex new file mode 100644 index 0000000..492a3fb --- /dev/null +++ b/m122/M122/Lektionen/Lektion1/Uebung_Loes/Powershell_Uebung1_Loes.tex @@ -0,0 +1,229 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 1 - Beispiellösungen +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\noindent {\bf{Hinweis: }} Für die meisten Aufgaben gibt es mehr als eine richtige Lösung. Falls Ihren Lösungen nicht gleich sind wie die hier Abgebildeten, muss dies nicht zwingend heissen, dass diese falsch sind.\\\\ + +\begin{quote} +{\bf{Aufgabe 1 - Installation:}} \\\\ +{\bf{a)}} - Vorinstalliert auf der VM.\\\\ +{\bf{b)}} - Vorinstalliert auf der VM.\\\\ +{\bf{c)}} - Vorinstalliert auf der VM. +\end{quote} + +\begin{quote} +{\bf{Aufgabe 2 - Installation überprüfen / Starten:}} \\\\ +{\bf{a)}} - \verb|Get-Host| $\rightarrow$ Version sollte 4.0 anzeigen.\\\\ +{\bf{b)}} - Wie in der Aufgabenstellung abgebildet.\\\\ +{\bf{c)}} - PowerShell als Administrator starten $\rightarrow$ \verb|Set-ExecutionPolicy RemoteSigned| $\rightarrow$ Mit Ja bestätigen +\end{quote} + +\begin{quote} +{\bf{Aufgabe 3 - Commandlets Einstieg:}} \\\\ +{\bf{a)}} - Listet alle aktuell laufenden Prozesse auf.\\\\ +{\bf{b)}} - \verb|Get-Help Get-Process|.\\\\ +{\bf{c)}} - \verb|Get-Process *e| , \verb|Get-Process s*t|\\\\ +{\bf{d)}} - \verb|Get-Service| , \verb|Get-Service *e| , \verb|Get-Service t*e|\\\\ +{\bf{e)}} - Geben sie \verb|Get-| ein und drücken sie mehrmals die Tab-Taste. Sie können sich so alle möglichen Befehle ergänzen lassen, welche mit \verb|Get-| beginnen.\\\\ + +{\bf{Aufgabe 4 - Commandlets:}} \\\\ +{\bf{a)}} - Der Inhalt des aktuellen Ordners.\\\\ +{\bf{b)}} - \verb|Get-ChildItem "C:\Program Files"| ausführen\\\\ +{\bf{c)}} - Ausprobieren wie beschrieben.\\\\ +{\bf{d)}} - Ausprobieren wie beschrieben.\\\\ +{\bf{e)}} - \verb|Get-ChildItem "C:\Program Files" - Recurse| +\\\\ +{\bf{f)}} - \verb|Get-ChildItem "C:\Program Files" *.bmp -Recurse|\\\\ +{\bf{g)}} - Ausprobieren wie beschrieben.\\\\ +{\bf{h)}} - \verb|Get-Process [dtsp]*|, \verb|Get-Process *[esl]|, \verb|Get-Process ?????|\\\\ +{\bf{i)}} - Ausprobieren wie beschrieben.\\\\ +{\bf{j)}} - Ausprobieren wie beschrieben.\\\\ +{\bf{Aufgabe 5 - Aliase:}} \\\\ +{\bf{a)}} - \verb|Get-Alias| , \verb|gal|\\\\ +{\bf{b)}} - Ausprobieren wie beschrieben.\\\\ +{\bf{c)}} - \verb|Set-Alias st SnippingTool.exe| , \verb|st| (SnippingTool sollte starten)\\\\ +{\bf{Aufgabe 6 - Hilfe:}} \\\\ +{\bf{a)}} - Ausprobieren wie beschrieben.\\\\ +{\bf{b)}} - Ausprobieren wie beschrieben.\\\\ + + +{\bf{Aufgabe 7 - PowerShell ISE:}}\\\\ +{\bf{a)}} - Ausprobieren wie beschrieben.\\\\ +{\bf{b)}} - Ausprobieren wie beschrieben.\\\\ +{\bf{c)}} - Ausprobieren wie beschrieben.\\\\ +\end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/.DS_Store b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/bzulogo.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps1.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps2.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps3.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps4.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps5.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps6.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps7.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps8.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps9.png b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion1/Uebung_Loes/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion2/.DS_Store b/m122/M122/Lektionen/Lektion2/.DS_Store new file mode 100644 index 0000000..b2b8c04 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/.DS_Store b/m122/M122/Lektionen/Lektion2/Praesentation/.DS_Store new file mode 100644 index 0000000..4c7e19e Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/Powershell_L2.pdf b/m122/M122/Lektionen/Lektion2/Praesentation/Powershell_L2.pdf new file mode 100644 index 0000000..1f2eec2 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/Powershell_L2.pdf differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/Powershell_L2.tex b/m122/M122/Lektionen/Lektion2/Praesentation/Powershell_L2.tex new file mode 100644 index 0000000..4c97824 --- /dev/null +++ b/m122/M122/Lektionen/Lektion2/Praesentation/Powershell_L2.tex @@ -0,0 +1,387 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beamer Presentation +% LaTeX Template +% Version 1.0 (10/11/12) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND THEMES +%---------------------------------------------------------------------------------------- + +\documentclass{beamer} + +\usepackage{listings} +\usepackage{graphicx} +\usepackage{lastpage} +\usepackage{fancyhdr} +\usepackage{soul} + +\usepackage{lmodern} % Latin Modern + +\usepackage[utf8]{inputenc} + +\definecolor{beamer@zueriblue}{HTML}{009EE1} +\definecolor{beamer@lightblue}{HTML}{8BCCE8}\DeclareUnicodeCharacter{00A0}{ } + +\mode { + +% The Beamer class comes with a number of default slide themes +% which change the colors and layouts of slides. Below this is a list +% of all the themes, uncomment each in turn to see what they look like. + +%\usetheme{default} +%\usetheme{AnnArbor} +%\usetheme{Antibes} +%\usetheme{Bergen} +%\usetheme{Berkeley} +%\usetheme{Berlin} +%\usetheme{Boadilla} +%\usetheme{CambridgeUS} +%\usetheme{Copenhagen} +%\usetheme{Darmstadt} +%\usetheme{Dresden} +%\usetheme{Frankfurt} +%\usetheme{Goettingen} +%\usetheme{Hannover} +%\usetheme{Ilmenau} +%\usetheme{JuanLesPins} +%\usetheme{Luebeck} +%\usetheme{Madrid} +%\usetheme{Malmoe} +%\usetheme{Marburg} +%\usetheme{Montpellier} +%\usetheme{PaloAlto} +%\usetheme{Pittsburgh} +%\usetheme{Rochester} +%\usetheme{Singapore} +%\usetheme{Szeged} +%\usetheme{Warsaw} + +% As well as themes, the Beamer class has a number of color themes +% for any slide theme. Uncomment each of these in turn to see how it +% changes the colors of your current slide theme. + +%\usecolortheme{albatross} +%\usecolortheme{beaver} +%\usecolortheme{beetle} +%\usecolortheme{crane} +%\usecolortheme{dolphin} +%\usecolortheme{dove} +%\usecolortheme{fly} +%\usecolortheme{lily} +%\usecolortheme{orchid} +%\usecolortheme{rose} +%\usecolortheme{seagull} +%\usecolortheme{seahorse} +%\usecolortheme{whale} +%\usecolortheme{wolverine} + + \usetheme{Dresden} + \setbeamercolor*{palette primary}{use=dove,fg=blue,bg=beamer@lightblue} + + \setbeamercolor*{palette secondary}{use=dove,fg=blue,bg=beamer@lightblue} + \setbeamercolor*{palette tertiary}{use=dove,fg=white,bg=beamer@zueriblue} + + +%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line +%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line + +%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line +} + +\usepackage{graphicx} % Allows including images +\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\title[Powershell - Lektion 2]{Powershell - Lektion 2} % The short title appears at the bottom of every slide, the full title is only on the title page + +\author{Mario Bischof} % Your name +\institute[BFSU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +{ +Berufsfachschule Uster \\ % Your institution for the title page +\medskip +\href{mailto:mario.bischof@bzu.ch}{mario.bischof@bzu.ch}% Your email address +} +\date{\today} % Date, can be changed to a custom date + +\begin{document} + +\begin{frame} +\includegraphics[height=0.4in]{img/bfsulogo.jpg} +\titlepage % Print the title page as the first slide + +\end{frame} + +\begin{frame} +\frametitle{Übersicht} % Table of contents slide, comment this block out to remove it +\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation +\end{frame} + +%---------------------------------------------------------------------------------------- +% PRESENTATION SLIDES +%---------------------------------------------------------------------------------------- + +%------------------------------------------------ + %------------------------------------------------ + +\section[CKOOP]{Crashkurs Objektorientierung} % A subsection can be created just before a set of slides with a common theme to further break down your presentation into chunks + + +\begin{frame} +\frametitle{Crashkurs Objektorientierung} + +\begin{itemize} +\item Grundverständnis von Objektorierung erforderlich für die Arbeit mit der PowerShell Pipeline +\item Die Resultate, welche von einem Commandlet zurückkommen, sind {\bf{immer Objekte}} +\end{itemize} +\end{frame} + +\section[Objekt]{Was ist ein Objekt?} +\begin{frame} +\frametitle{Was ist ein Objekt?} + +\begin{itemize} +\item Ein Objekt hat Eigenschaften wie zB. \emph{Name}, \emph{Alter}, \emph{Farbe}, \emph{Grösse}, etc. +\item Mit einem Objekt kann man Aktionen vollführen, zB. \emph{bewegen}, \emph{Farbe ändern}, \emph{Alter abfragen} +\item Ein Objekt kann eigene Signale aussenden wie zB. \emph{Blinklicht aussenden} +\end{itemize} +\end{frame} + +\section[Attr., ...]{Attribute, Methoden, Events} + +\begin{frame} +\frametitle{Attribute, Methoden, Events} + +\begin{itemize} +\item Eigenschaften eines Objekts werden {\bf{Attribute}} genannt +\item Aktionen, die ein Objekt ausführen kann, werden {\bf{Methoden}} genannt +\item Signale, welche ein Objekt aussenden kann, werden {\bf{Events}} genannt +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Attribute, Methoden, Events} + +\begin{itemize} +\item Ein Objekt kann beliebig viele Attribute (engl. auch properties genannt), Methoden und Events besitzen +\item Attribute sind Daten eines Objekts. Diese können gelesen oder geschrieben werden. +\item Methoden eines Objekts können aufgerufen werden und über Parameter können der Methode beim Aufruf Daten übergeben werden. +\item Ein Objekt kann selber Ereignisse auslösen. Durch ein Ereignis wir dafür vorgesehener Programmcode ausgeführt. Dieser Programmcode wird auch Ereignisbehandlungsroutine genannt. +\end{itemize} +\end{frame} + +\section[Bsp.Obj.]{Beispiel eines Objekts} + +\begin{frame}[fragile] +\frametitle{Beispiel eines Objekts} +\includegraphics[height=1.5in]{img/objekt.png}\\ +\begin{tiny} +Quelle Bilder: \url{http://openbook.rheinwerk-verlag.de/actionscript_einstieg/actionscript_einstieg_04_007.htm} +\end{tiny} +\begin{itemize} +\item Das Objekt \emph{Schumis F2006} hat die Attribute \verb|raeder| und \verb|sitze| +\item Das Objekt \emph{Schumis F2006} hat die Methoden \verb|fahren(km/h)| (mit dem Parameter \verb|km/h|) und \verb|bremsen()| +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Klasse} +\includegraphics[height=2.0in]{img/klasse_objekt.png}\\ +\begin{itemize} +\begin{scriptsize} +\item Der Bauplan eines Objektes wird {\bf{Klasse}} genannt. Sie definiert, was ein Auto ausmacht (Räder, Sitze, ...) +\item Ein Objekt ist {\bf{konkret}} (hat eine bestimmte Anzahl Räder, Sitze, etc.), die Klasse ist {\bf{allgemein}} (definiert nur, {\bf{dass}} ein Auto Räder, usw. haben muss) +\end{scriptsize} + +\end{itemize} +\end{frame} + +\section[Klasse]{Klasse} + +\begin{frame}[fragile] +\frametitle{Klasse} +\begin{itemize} +\begin{scriptsize} +\item Ein Objekt wird auch als {\bf{Instanzierung}} einer Klasse bezeichnet +\item Es können beliebig viele Objekte einer Klasse existieren +\item Jedes Objekt wird separat im Speicher angelegt (instanziert) +\item Wenn man im Bezug auf ein Objekt von der zugehörigen Klasse spricht, redet man auch vom {\bf{Typ}} eines Objektes. Das Objekt \emph{Schumis F2006} ist vom Typ {\bf{Auto}}. +\item Ein Objekt, kann auch wieder ein anderes Objekt beinhalten (zB. ein Objekt vom Typ Auto beinhaltet ein Objekt vom Typ Fahrer). Objekte können also {\bf{Beziehungen}} untereinander aufbauen. +\item Die Klasse kann bestimmen, ob Attribute, Methoden, etc. eines Objektes öffentlich zugänglich (public) oder nur innerhalb des Objektes (private) abrufbar sind. Diese Eigenschaft nennt man auch Kapselung. +\end{scriptsize} + +\end{itemize} +\end{frame} + + +\section[Pipeline]{Pipeline} +\begin{frame}[fragile] +\frametitle{Objektorientiertes Pipelining} +\begin{itemize} +\item Um die Ausgabe eines Commandlets an ein anderes weiterzugeben, verwendet man in der PowerShell die {\bf{Pipeline}} +\item Die Ausgabe wird {\bf{als Objekt}} weitergereicht +\item Um die Pipeline zu nutzen, verwendet man den Pipeline-Operator $|$ (ALT-GR + 7) +\item zB.: \verb|Get-Process| $|$ \verb|Format-List| (\verb|Get-Process| gibt alle Prozesse in Tabellenform aus. Die Tabelle wird an das Commandlet \verb|Format-List| \emph{weitergepiped}, welches die Ausgabe in eine Liste umwandelt) +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Objektorientiertes Pipelining - Zusammenhängen} +\begin{itemize} +\begin{scriptsize} + +\item Die Pipeline kann beliebig lange werden, zB.: +\begin{verbatim} +Get-ChildItem "C:\Program Files\" -r -filter *.jpg +| Where-Object { $_.Length -gt 30000 } +| Select-Object Name, Length +| Sort-Object Length +| Format-List +\end{verbatim} +\item Findet alle jpg-Dateien in \verb|C:\Program Files|, filtert die Ergebnismenge auf alle Objekte, bei welchen das Attribut Length grösser als 30000 ist, beschneidet die Objekte in der Resultatemenge auf die Attribute Name und Length, sortiert die Menge nach der Länge (aufsteigend) und stellt das ganze schlussendlich in einer Liste dar +\item Aufgrund der Übersichtlichkeit ist es aber nicht sehr sinnvoll, zu lange Befehlsschlangen zu erstellen +\item Eine lange Befehlsschlange kann problemlos in mehrere, einzelne Pipeline Konstrukte umgewandelt werden + +\end{scriptsize} + +\end{itemize} +\end{frame} + +\section[Where-Object]{Where-Object} + +\begin{frame}[fragile] +\frametitle{Objektorientiertes Pipelining - Where-Object} +\begin{itemize} +\begin{scriptsize} + +\item Die Ausgabedaten werden als Objekte in die Pipeline geschickt +\item Es kann auch auf die Attribute der Objekte zugegriffen werden (zB. name): +\begin{verbatim} +Get-Process | Where-Object {$_.name -eq "iexplore"} +| Format-Table ProcessName, WorkingSet64 +\end{verbatim} +Findet alle Prozesse, bei denen das Attribut \verb|name| dem Wert \verb|iexplore| entspricht (\verb|-eq| bedeutet \emph{equals} ), filtert die Ausgabe als Tabelle und zeigt nur die Attribute \verb|ProcessName| und \verb|WorkingSet64| an. +\item Das \verb|$_.| referenziert das aktuelle Pipeline-Objekt +\item \verb|Where-Object| kann auch als \verb|?| geschrieben werden, folgende Kombination erreicht also dasselbe: +\begin{verbatim} +Get-Process | ? {$_.name -eq "iexplore"} +| Format-Table ProcessName, WorkingSet64 +\end{verbatim} +\end{scriptsize} +\end{itemize} + +\end{frame} + +\section[ws, ?]{WorkingSet64, ?} + +\begin{frame}[fragile] +\frametitle{Objektorientiertes Pipelining - WorkingSet64, ?} +\begin{itemize} +\begin{scriptsize} +\item \verb|WorkingSet64| liefert einen Wert, welcher den Speicherverbrauch eines Prozesses repräsentiert +\begin{verbatim} +Get-Process | ? {$_.WorkingSet64 -gt 10*1024*1024} +\end{verbatim} +Liefert alle Prozesse, bei welchen der Speicherverbrauch über 10MB liegt (\verb|-gt| bedeutet \emph{greather than}). +\item Dieser Befehl kann auch kürzer geschrieben werden: +\begin{verbatim} +ps | ? {$_.ws -gt 10MB} +\end{verbatim} +\end{scriptsize} + +\end{itemize} +\end{frame} + +\section[Param. $|$]{Parameter Pipelining} + +\begin{frame}[fragile] +\frametitle{Objektorientiertes Pipelining - Parameter Pipelining} +\begin{itemize} +\begin{scriptsize} +\item Auch Parameter können gepiped werden: +\begin{verbatim} +"s*" | Get-Service +\end{verbatim} +Schickt die Zeichenkette \verb|s*| an \verb|Get-Service|. Macht dasselbe wie \verb|Get-Service s*|. +\end{scriptsize} + +\end{itemize} +\end{frame} + +\section[.count]{.count} + +\begin{frame}[fragile] +\frametitle{Objektorientiertes Pipelining - .count} +\begin{itemize} +\begin{scriptsize} +\item Meist gibt ein Befehl / eine Befehlsabfolge nicht nur ein Objekt sondern gleich eine ganze Menge von Objekten zurück (zB. die Tabelle aller laufenden Prozesse) +\item Um die Anzahl der Objekte in der Pipeline zu ermitteln, wird \verb|.count| benutzt, zB.: +\begin{verbatim} +(Get-Process).count +\end{verbatim} +Die Abfrage muss in runde Klammern gesetzt werden. +\item Alle Prozesse zählen, welche mehr als 10MB Speicher verbrauchen: +\begin{verbatim} +(Get-Process | where-object {$_.WorkingSet64 -gt 10MB}).count +\end{verbatim} +\item Bei \verb|.count| handelt es sich um eine \emph{Methode} +\end{scriptsize} + +\end{itemize} +\end{frame} + +\section[Zugriff Obj.]{Einzelne Objekte aus einer Objektmenge} + +\begin{frame}[fragile] +\frametitle{Objektorientiertes Pipelining - Einzelne Objekte aus einer Objektmenge} +\begin{itemize} +\begin{scriptsize} +\item Um auf ein einzelnes Objekt aus einer Objektmenge zugreifen zu können, werden die eckigen Klammern verwendet (wie bei einem Array): +\begin{verbatim} +(Get-Process)[0] +\end{verbatim} +Zugriff auf den ersten Prozess. +\begin{verbatim} +(Get-Process)[5] +\end{verbatim} +Zugriff auf den sechsten Prozess. +\item Dies kann ebenfalls auf kombinierte Befehle angewendet werden: +\begin{verbatim} +(Get-Process | where-object {$_.WorkingSet64 -gt 10MB})[5] +\end{verbatim} +Der sechste Prozess, welcher mehr als 10MB Speicher verbraucht. +\end{scriptsize} + +\end{itemize} +\end{frame} + +\section[VergleichsOps.]{Weitere Vergleichsoperatoren} + +\begin{frame}[fragile] +\frametitle{Objektorientiertes Pipelining - Weitere Vergleichsoperatoren} +\begin{itemize} +\begin{scriptsize} +\item Mit \verb|-match| kann \verb|Where-Object| auch mittels einer regular expression filtern. zB: +\begin{verbatim} +Get-Service | Where-Object { $_.DisplayName -match "^\w* \w*$" } +\end{verbatim} +Filtert die Ausgabe von \verb|Get-Service| und zeigt nur die Systemdienste an, bei welchen der Name aus zwei durch ein Leerzeichen getrennte Wörter besteht +\item Es gibt noch viele weitere \emph{Vergleichsoperatoren} wie \verb|-eq| oder \verb|-match|. Eine komplette Liste finden sie hier: \url{https://technet.microsoft.com/en-us/library/hh847759.aspx} oder direkt über die PowerShell mit: \verb|Get-Help about_comparison_operators -ShowWindow|. +\end{scriptsize} + +\end{itemize} +\end{frame} + + + +\end{document} \ No newline at end of file diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion2/Praesentation/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/java-program-execution2.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/java-program-execution2.png new file mode 100644 index 0000000..d351d80 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/java-program-execution2.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/klasse_objekt.gif b/m122/M122/Lektionen/Lektion2/Praesentation/img/klasse_objekt.gif new file mode 100644 index 0000000..3036f21 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/klasse_objekt.gif differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/klasse_objekt.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/klasse_objekt.png new file mode 100644 index 0000000..8ceb02c Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/klasse_objekt.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/objekt.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/objekt.png new file mode 100644 index 0000000..7b54056 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/objekt.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/powershell-logo.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/powershell-logo.png new file mode 100644 index 0000000..7023936 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/powershell-logo.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps1.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps1.png new file mode 100644 index 0000000..594510c Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps10.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps10.png new file mode 100644 index 0000000..953e10a Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps10.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps11.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps11.png new file mode 100644 index 0000000..153eb08 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps11.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps12.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps12.png new file mode 100644 index 0000000..bb6e0fd Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps12.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps13.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps13.png new file mode 100644 index 0000000..0f3eabb Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps13.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps2.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps2.png new file mode 100644 index 0000000..0be4d37 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps3.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps3.png new file mode 100644 index 0000000..f3852f5 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps4.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps4.png new file mode 100644 index 0000000..c5c8ac9 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps5.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps5.png new file mode 100644 index 0000000..cbb8c8e Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps6.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps6.png new file mode 100644 index 0000000..b256ca0 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps7.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps7.png new file mode 100644 index 0000000..340d376 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps8.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps8.png new file mode 100644 index 0000000..37534b3 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion2/Praesentation/img/ps9.png b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps9.png new file mode 100644 index 0000000..c2bf31c Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Praesentation/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/.DS_Store b/m122/M122/Lektionen/Lektion2/Uebung/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/Powershell_Uebung2.pdf b/m122/M122/Lektionen/Lektion2/Uebung/Powershell_Uebung2.pdf new file mode 100644 index 0000000..f4af233 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/Powershell_Uebung2.pdf differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/Powershell_Uebung2.tex b/m122/M122/Lektionen/Lektion2/Uebung/Powershell_Uebung2.tex new file mode 100644 index 0000000..52ad188 --- /dev/null +++ b/m122/M122/Lektionen/Lektion2/Uebung/Powershell_Uebung2.tex @@ -0,0 +1,231 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 2 +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\noindent {\bf{Hinweis: }} Aufgabe 1 können sie auf einem separaten Blatt aufschreiben oder (wenn sie sich sehr sicher sind) sich gedanklich überlegen und die Resultate mit Ihrem Banknachbarn besprechen.\\\\ +{\bf{Aufgabe 1 - Objekte:}} +\begin{quote} +{\bf{a)}} - Sie sollen für das Objekt \emph{Mensch}, die folgende Liste von Begriffen in \emph{Attribute}, \emph{Methoden} und \emph{Events} einteilen: \\\\ +Alter, Laufen, Essen, Körpergrösse, Augenfarbe, Winken, Rennen, Haarfarbe, Sprechen, Niessen\\\\ +{\bf{b)}} - Denken sie sich ein {\bf{konkretes Objekt}} vom Typ Mensch aus und definieren sie für alle Attribute einen Beispielwert\\\\ +{\bf{c)}} - Wie würde die {\bf{allgemein}} gehaltene Klasse aussehen?\\\\ +\end{quote} +{\bf{Aufgabe 2 - Einführungsaufgaben Pipeline:}} +\begin{quote} +{\bf{a)}} - Vergleichen sie die Ausgabe von \verb|Get-Process| mit \verb|Get-Process| $|$ \verb|Format-List|. \verb|Get-Process| alleine sollte nur eine Tabellenartige Ausgabe anzeigen.\\\\ +{\bf{b)}} - Spielen sie das lange Beispiel aus der Präsentation nach, indem sie zuerst mit einer Zeile beginnen, dann eine weitere hinzufügen, usw. \\\\ Versuchen sie nach dem Hinzufügen jeder Zeile zu verstehen, was der zusätzliche Befehl mit ihrem Resultat gemacht macht: +\begin{verbatim} +Get-ChildItem "C:\Program Files\" -r -filter *.jpg +| Where-Object { $_.Length -lt 30000 } +| Select-Object Name, Length +| Sort-Object Name +| Format-List +\end{verbatim} +{\bf{c)}} - Wählen sie für die lange Befehlsschlange aus b) einen Vergleichsoperator (beim \verb|Where-Object|), den sie noch nicht kennen und wenden sie das Konstrukt auf einen anderen Dateityp Ihrer Wahl an (zB. \verb|.txt|).\\\\ +{\bf{d)}} - Geben sie nun nur die Anzahl Objekte aus, welche die Befehlsschlange aus Aufgabe b) erzeugt.\\\\ +{\bf{e)}} - Lassen sie sich das 2. Objekt aus der Objektmenge ausgeben, welche die Befehlsschlange aus Aufgabe b) erzeugt (\verb|Format-List| muss weggelassen werden) + +\end{quote} +\noindent {\bf{Hinweis: }} \verb|Where-Object| können sie auch mit \verb|?| abkürzen.\\\\ +\newpage +\noindent {\bf{Aufgabe 3 - Aufgaben Pipeline:}} \\\\ +\noindent {\bf{Hinweis: }} Eine Liste aller vorhandenen Vergleichsoperatoren finden sie hier: \url{https://technet.microsoft.com/en- us/library/hh847759.aspx}. Die gleiche Hilfe erhalten sie auch in der PowerShell mit: \verb|Get-Help about_comparison_operators -ShowWindow|. +\begin{quote} +{\bf{a)}} - Starten sie den Firefox (installieren sie diesen ggf. zuerst). Finden sie mit \verb|Where-Object| den Prozess, welcher den Namen \verb|firefox| besitzt.\\\\ +{\bf{b)}} - Mit \verb|-or| können sie Vergleiche verknüpfen, also findet zB. +\begin{verbatim} +Get-Service | Where-Object +{$_.DisplayName -eq "Service" -or $_.DisplayName -eq "Service2"} +\end{verbatim} +alle Services, die den DisplayName Service ODER Service2 haben.\\\\ +Starten sie nun auch noch einen Internet Explorer. Finden sie alle Prozesse, welche den Namen \verb|firefox| ODER \verb|iexplore| tragen (Achtung: es heisst iexplore nicht iexplorer!)\\\\ +{\bf{c)}} - Finden sie nun den Firefox Prozess, indem sie ihn mit seiner Prozess-ID suchen (Mit vorherigem Befehl oder mit \verb|Get-Process| finden sie die ID heraus).\\\\ +{\bf{d)}} - Listen sie alle Prozesse auf, welche eine ID unter 500 haben. Anschliessend Zählen sie die Prozesse.\\\\ +{\bf{e)}} - Mit \verb|-and| können sie Vergleiche verknüpfen, also findet zB. +\begin{verbatim} +Get-Process | Where-Object {$_.CPU -gt "10" -and $_.CPU -lt "30"} +\end{verbatim} +alle Prozesse, welche mehr als 10 Sekunden UND weniger als 30 Sekunden CPU Zeit verbraucht haben.\\\\ +Finden sie alle Prozesse mit einer ID grösser 100 und kleiner 1000. Greifen sie auf den 1. Prozess aus der Resultatemenge zu.\\\\ +{\bf{f)}} - Mit \verb|-ne| (not equals) können sie Ausschliessungen erzeugen.\\\\ +Finden sie alle Prozesse, welche eine ID über 1000 haben und deren Name NICHT \verb|svchost| ist.\\\\ +{\bf{g)}} - Finden sie unter \verb|C:\Program Files| {\bf{alle}} Dateien, welche grösser als 10MB sind (Schlagen sie zu diesem Thema ggf. das Beispiel aus der Präsentation nach).\\\\ +{\bf{h)}} - Finden sie auf Ihrem Windowssystem {\bf{alle}} Dateien, welche grösser als 100MB sind.\\\\ +{\bf{i)}} - Mit \verb|-like| können sie eine Ähnlichkeit zwischen Zeichenketten suchen. zB. \verb|-like *application| findet alles, was auf \verb|application| endet.\\ +Finden sie auf Ihrem Windowssystem alle Dateien, bei denen der Dateiname mit dem Wort \verb|Chess| beginnt. +\end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/.DS_Store b/m122/M122/Lektionen/Lektion2/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion2/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/bzulogo.png b/m122/M122/Lektionen/Lektion2/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/ps1.png b/m122/M122/Lektionen/Lektion2/Uebung/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/ps2.png b/m122/M122/Lektionen/Lektion2/Uebung/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/ps3.png b/m122/M122/Lektionen/Lektion2/Uebung/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/ps4.png b/m122/M122/Lektionen/Lektion2/Uebung/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/ps5.png b/m122/M122/Lektionen/Lektion2/Uebung/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/ps6.png b/m122/M122/Lektionen/Lektion2/Uebung/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/ps7.png b/m122/M122/Lektionen/Lektion2/Uebung/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/ps8.png b/m122/M122/Lektionen/Lektion2/Uebung/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung/img/ps9.png b/m122/M122/Lektionen/Lektion2/Uebung/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/.DS_Store b/m122/M122/Lektionen/Lektion2/Uebung_Loes/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/Powershell_Uebung2_Loes.pdf b/m122/M122/Lektionen/Lektion2/Uebung_Loes/Powershell_Uebung2_Loes.pdf new file mode 100644 index 0000000..287aada Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/Powershell_Uebung2_Loes.pdf differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/Powershell_Uebung2_Loes.tex b/m122/M122/Lektionen/Lektion2/Uebung_Loes/Powershell_Uebung2_Loes.tex new file mode 100644 index 0000000..3523619 --- /dev/null +++ b/m122/M122/Lektionen/Lektion2/Uebung_Loes/Powershell_Uebung2_Loes.tex @@ -0,0 +1,279 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 2 - Beispiellösungen +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\noindent {\bf{Hinweis: }} Für die meisten Aufgaben gibt es mehr als eine richtige Lösung. Falls Ihren Lösungen nicht gleich sind wie die hier Abgebildeten, muss dies nicht zwingend heissen, dass diese falsch sind.\\\\ + +{\bf{Aufgabe 1 - Objekte:}} +\begin{quote} +{\bf{a)}} \\ \emph{Attribute} = Alter, Körpergrösse, Augenfarbe, Haarfarbe \\ +\emph{Methoden} = Laufen, Essen, Winken, Sprechen \\ + \emph{Events} = Niessen \\\\ {\bf{Hinweis: }} Es ist auch möglich, dass sie weitere Verben zu den Events gezählte haben, dies ist nicht unbedingt falsch.\\\\ +{\bf{b)}}\\ +Alter = 25\\ +Körpergrösse = 1.80\\ +Augenfarbe = blau\\ +Haarfarbe = blond\\\\ +{\bf{c)}} - In der Klasse würden die unter {\bf{a)}} beschriebenen Attribute, Methoden und Events definiert. D.h. in der Klasse Mensch wird definiert, dass ein Objekt vom Typ Mensch ein Alter haben muss, Laufen kann, etc. Jedoch werden darin keine konkreten Werte abgespeichert. \\\\ +\end{quote} +{\bf{Aufgabe 2 - Einführungsaufgaben Pipeline:}} +\begin{quote} +{\bf{a)}} - Antwort bereits in der Aufgabenstellung enthalten.\\\\ +{\bf{b)}} - Beschreibung bei jeder Zeile: +\begin{verbatim} +# finde alle .jpg-Dateien in C:\Program Files\ und allen Unterordnern (-r) +Get-ChildItem "C:\Program Files\" -r -filter *.jpg + +# filtere Resultat auf alle Dateien mit Dateilänge kleiner als 30 Kilobyte +| Where-Object { $_.Length -lt 30000 } + +# Beschränke das Resultat auf Dateiname und Länge der Dateien +| Select-Object Name, Length + +# Sortiere nach dem Dateinamen (alphabetisch) +| Sort-Object Name + +# Formatiere die Ausgabe als Liste +| Format-List +\end{verbatim} +\newpage +{\bf{c)}} - zB.: +\begin{verbatim} +Get-ChildItem "C:\Program Files\" -r -filter *.png +| Where-Object { $_.Length -gt 30000 } +| etc. ... +\end{verbatim} +{\bf{d)}} - ( Mit ‘ machen sie die Befehlsschlange mehrzeilenfähig) +\begin{verbatim} +(Get-ChildItem "C:\Program Files\" -r -filter *.jpg ‘ +| Where-Object { $_.Length -lt 30000 } ‘ +| Select-Object Name, Length ‘ +| Sort-Object Name ‘ +| Format-List).Count +\end{verbatim} + +{\bf{e)}} - ( Mit ‘ machen sie die Befehlsschlange mehrzeilenfähig) +\begin{verbatim} +(Get-ChildItem "C:\Program Files\" -r -filter *.jpg ‘ +| Where-Object { $_.Length -lt 30000 } ‘ +| Select-Object Name, Length ‘ +| Sort-Object Name ‘ +| Format-List)[1] +\end{verbatim} + +\end{quote} + +\noindent {\bf{Aufgabe 3 - Aufgaben Pipeline:}} \\ +\begin{quote} +{\bf{a)}} +\begin{verbatim} +Get-Process | Where-Object { $_.Name -eq "firefox" } +\end{verbatim} +{\bf{b)}} +\begin{verbatim} +Get-Process | Where-Object { $_.Name -eq "firefox" -or $_.Name -eq "iexplore"} +\end{verbatim} +{\bf{c)}} - Entweder ID aus dem Ergebnis aus Aufgabe {\bf{a)}} auslesen oder direkt mit: +\begin{verbatim} +(Get-Process | Where-Object { $_.Name -eq "firefox" }).ID +\end{verbatim} +{\bf{d)}} +\begin{verbatim} +(Get-Process | Where-Object { $_.Id -lt 500 }).count +\end{verbatim} +{\bf{e)}} +\begin{verbatim} +(Get-Process | Where-Object { $_.Id -gt 100 -and $_.Id -lt 1000})[0] +\end{verbatim} +{\bf{f)}}\begin{verbatim} +Get-Process | Where-Object { $_.Id -gt 1000 -and $_.Name -ne "svchost"} +\end{verbatim} +{\bf{g)}} +\begin{verbatim} +Get-ChildItem "C:\Program Files\" -Recurse | Where-Object { $_.Length -gt 10MB } +\end{verbatim} + +{\bf{h)}} +\begin{verbatim} +Get-ChildItem "C:\" -Recurse | Where-Object { $_.Length -gt 100MB } +\end{verbatim} +{\bf{i)}} +\begin{verbatim} +Get-ChildItem "C:\" -Recurse | Where-Object { $_.Name -like "Chess*"} +\end{verbatim} +\end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/.DS_Store b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/bzulogo.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps1.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps2.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps3.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps4.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps5.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps6.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps7.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps8.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps9.png b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion2/Uebung_Loes/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion3/.DS_Store b/m122/M122/Lektionen/Lektion3/.DS_Store new file mode 100644 index 0000000..b2b8c04 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/.DS_Store b/m122/M122/Lektionen/Lektion3/Praesentation/.DS_Store new file mode 100644 index 0000000..4c7e19e Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/Powershell_L3.pdf b/m122/M122/Lektionen/Lektion3/Praesentation/Powershell_L3.pdf new file mode 100644 index 0000000..9a7a891 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/Powershell_L3.pdf differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/Powershell_L3.tex b/m122/M122/Lektionen/Lektion3/Praesentation/Powershell_L3.tex new file mode 100644 index 0000000..cd82882 --- /dev/null +++ b/m122/M122/Lektionen/Lektion3/Praesentation/Powershell_L3.tex @@ -0,0 +1,450 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beamer Presentation +% LaTeX Template +% Version 1.0 (10/11/12) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND THEMES +%---------------------------------------------------------------------------------------- + +\documentclass{beamer} + +\usepackage{listings} +\usepackage{graphicx} +\usepackage{lastpage} +\usepackage{fancyhdr} +\usepackage{soul} + +\usepackage{lmodern} % Latin Modern + +\usepackage[utf8]{inputenc} + +\definecolor{beamer@zueriblue}{HTML}{009EE1} +\definecolor{beamer@lightblue}{HTML}{8BCCE8}\DeclareUnicodeCharacter{00A0}{ } + +\mode { + +% The Beamer class comes with a number of default slide themes +% which change the colors and layouts of slides. Below this is a list +% of all the themes, uncomment each in turn to see what they look like. + +%\usetheme{default} +%\usetheme{AnnArbor} +%\usetheme{Antibes} +%\usetheme{Bergen} +%\usetheme{Berkeley} +%\usetheme{Berlin} +%\usetheme{Boadilla} +%\usetheme{CambridgeUS} +%\usetheme{Copenhagen} +%\usetheme{Darmstadt} +%\usetheme{Dresden} +%\usetheme{Frankfurt} +%\usetheme{Goettingen} +%\usetheme{Hannover} +%\usetheme{Ilmenau} +%\usetheme{JuanLesPins} +%\usetheme{Luebeck} +%\usetheme{Madrid} +%\usetheme{Malmoe} +%\usetheme{Marburg} +%\usetheme{Montpellier} +%\usetheme{PaloAlto} +%\usetheme{Pittsburgh} +%\usetheme{Rochester} +%\usetheme{Singapore} +%\usetheme{Szeged} +%\usetheme{Warsaw} + +% As well as themes, the Beamer class has a number of color themes +% for any slide theme. Uncomment each of these in turn to see how it +% changes the colors of your current slide theme. + +%\usecolortheme{albatross} +%\usecolortheme{beaver} +%\usecolortheme{beetle} +%\usecolortheme{crane} +%\usecolortheme{dolphin} +%\usecolortheme{dove} +%\usecolortheme{fly} +%\usecolortheme{lily} +%\usecolortheme{orchid} +%\usecolortheme{rose} +%\usecolortheme{seagull} +%\usecolortheme{seahorse} +%\usecolortheme{whale} +%\usecolortheme{wolverine} + + \usetheme{Dresden} + \setbeamercolor*{palette primary}{use=dove,fg=blue,bg=beamer@lightblue} + + \setbeamercolor*{palette secondary}{use=dove,fg=blue,bg=beamer@lightblue} + \setbeamercolor*{palette tertiary}{use=dove,fg=white,bg=beamer@zueriblue} + + +%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line +%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line + +%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line +} + +\usepackage{graphicx} % Allows including images +\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\title[Powershell - Lektion 3]{Powershell - Lektion 3} % The short title appears at the bottom of every slide, the full title is only on the title page + +\author{Mario Bischof} % Your name +\institute[BFSU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +{ +Berufsfachschule Uster \\ % Your institution for the title page +\medskip +\href{mailto:mario.bischof@bzu.ch}{mario.bischof@bzu.ch}% Your email address +} +\date{\today} % Date, can be changed to a custom date + +\begin{document} + +\begin{frame} +\includegraphics[height=0.4in]{img/bfsulogo.jpg} +\titlepage % Print the title page as the first slide + +\end{frame} + +\begin{frame} +\frametitle{Übersicht} % Table of contents slide, comment this block out to remove it +\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation +\end{frame} + +%---------------------------------------------------------------------------------------- +% PRESENTATION SLIDES +%---------------------------------------------------------------------------------------- + +%------------------------------------------------ + %------------------------------------------------ + +\section[Pipeline untersuchen]{Pipeline Inhalt untersuchen} % A subsection can be created just before a set of slides with a common theme to further break down your presentation into chunks + + +\begin{frame}[fragile] +\frametitle{GetType()} + +\begin{itemize} +\item \verb|GetType()| zeigt den Typen des Resultats eines Commandlets an +\item Die Ausgabe von \verb|(Get-Date).GetType()| ist \verb|DateTime| +\item Die Ausgabe von \verb|(Get-Process).GetType()| ist \verb|Object[]| (ein Array von Objekten), da wir mehr als ein Objekt von \verb|Get-Process| erhalten +\item Die Ausgabe von \verb|(Get-Process)[0].GetType()| ist \verb|Process|, da wir nur auf ein Element aus der Resultatemenge zugreifen +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Get-Member} + +\begin{itemize} +\item \verb|Get-Member| zeigt die Klassennamen (Typen) der Objekte in der Pipeline, sowie deren Attribute und Methoden an +\item Sehr hilfreich um nachzuschauen, welche Attribute die Objekte anbieten und welche Aktionen (Methoden) auf diesen Objekten ausgeführt werden können +\item Verwendung: zB.: +\begin{verbatim} +Get-Process | Get-Member +\end{verbatim} +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Get-Member} + +\begin{itemize} +\item In der Ausgabe von \verb|Get-Member| sind folgende Elemente ersichtlich: +\begin{itemize} +\item Method (Methode) +\item Property (Eigenschaft, Attribut) +\item PropertySet (Eigenschaftssatz) +\item ScriptProperty (Skripteigenschaft) +\item CodeProperty (Codeeigenschaft) +\item AliasProperty (Aliaseigenschaft) +\end{itemize} +\item Das AliasProperty \verb|Name| zB. sorgt dafür, dass nicht nur via \verb|ProcessName| auf den Namen zugegriffen werden kann, sondern auch einfach nur über \verb|Name| +\end{itemize} +\end{frame} + + +\begin{frame}[fragile] +\frametitle{Get-Member} + +\begin{itemize} +\item Mit dem Parameter \verb|-Membertype|, kann die Ausgabe eingeschränkt werden +\item zB. zeigt: +\begin{verbatim} +Get-Process | Get-Member -Membertype Properties +\end{verbatim} +Nur die Attribute (Properties) der Objekte an, und: +\begin{verbatim} +Get-Process | Get-Member -Membertype Methods +\end{verbatim} +nur die Methoden. +\item Auch die Filterung durch den Namen ist möglich: +\begin{verbatim} +Get-Process | Get-Member *time +\end{verbatim} +\end{itemize} +\end{frame} + +\section[koppeln]{Befehle koppeln} +\begin{frame}[fragile] +\frametitle{Befehle koppeln} + +\begin{small} +\begin{itemize} +\item Befehle können auch gekoppelt aufgerufen werden, sofern beide mit heterogenen Pipelineinhalten umgehen können: + +\begin{verbatim} +$(Get-Process s* | Get-Service s*) +\end{verbatim} + +\item Methoden von Prozessen und Services auflisten: +\begin{verbatim} +$(Get-Process|Get-Service)|Get-Member -Membertype Methods +\end{verbatim} + +\end{itemize} +\end{small} + +\end{frame} + +\section[Select]{Select-Object} + +\begin{frame}[fragile] +\frametitle{Select-Object} + +\begin{itemize} +\item Mit \verb|Select-Object| kann der Inhalt der Pipeline sozusagen \emph{kastriert} werden, d.h. es werden von den Objekten nur noch die gewünschten Elemente weitergereicht und nicht mehr der gesamte Umfang +\item zB. reicht folgende Befehlskombination nur noch die Attribute \verb|ProcessName| und \verb|CPU| aller laufenden Prozesse weiter: +\begin{verbatim} +Get-Process | Select-Object ProcessName, CPU +\end{verbatim} +Nachfolgend in der Pipeline stehen also nur noch diese beiden Attribute zur Verfügung. +\end{itemize} + +\end{frame} + +\begin{frame}[fragile] +\frametitle{Select-Object} + +\begin{itemize} +\item Mit \verb|-first| und \verb|-last| kann das Resultat auf eine Anzahl am Anfang oder Ende der Ergebnisliste eingeschränkt werden. zB. zeigt: +\begin{verbatim} +Get-Process | Select-Object -first 10 +\end{verbatim} +nur die ersten 10 Prozesse. Oder: +\begin{verbatim} +Get-Process | Select-Object -last 5 +\end{verbatim} +nur die letzten 5. +\end{itemize} + +\end{frame} + + +\section[Sort]{Sort-Object} +\begin{frame}[fragile] +\frametitle{Sort-Object} + +\begin{itemize} +\item Mit \verb|Sort-Object| kann eine Ausgabe sortiert werden +\item zB. sortiert: +\begin{verbatim} +Get-Process | Sort-Object CPU +\end{verbatim} +alle laufenden Prozesse nach dem CPU-Verbrauch (aufsteigend). +\item die absteigende Variante würde man mit: +\begin{verbatim} +Get-Process | Sort-Object CPU -desc +\end{verbatim} +erreichen. +\end{itemize} + +\end{frame} + + +\begin{frame}[fragile] +\frametitle{Sort-Object} + +\begin{itemize} +\item Es kann nach mehr als einem Kriterium sortiert werden, zB. sortiert: +\begin{verbatim} +Get-Process | Sort-Object Name, ID +\end{verbatim} +die Prozesstabelle zuerst nach Namen und innerhalb der Namen nach ID-Nummern +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Sort-Object} +\begin{itemize} +\item Auch Ausdrücke wie \verb|1,6,3,4,8,10,3,4| und \verb|"c","f","u","a","e","f","r","t"| können sortiert werden + +\item zB: +\begin{verbatim} +1,6,3,4,8,10,3,4 | Sort-Object +\end{verbatim} +ergibt \emph{1 3 3 4 4 6 8 10} +\item Oder: +\begin{verbatim} +"c","f","u","a","e","f","r","t" | Sort-Object +\end{verbatim} +ergibt \emph{a c e f f r t u} +\end{itemize} +\end{frame} + + +\section[Unique]{Get-Unique} +\begin{frame}[fragile] +\frametitle{Get-Unique} +\begin{itemize} +\item \verb|Get-Unique| entfernt alle Dupliakte + +\item zB: +\begin{verbatim} +1,6,3,4,8,10,3,4 | Sort-Object | Get-Unique +\end{verbatim} +ergibt \emph{1 3 4 6 8 10} +\item Und: +\begin{verbatim} +"c","f","u","a","e","f","r","t" | Sort-Object +| Get-Unique +\end{verbatim} +ergibt \emph{a c e f r t u} +\item Oder: +\begin{verbatim} +1,1,1,1,1,1,1 | Sort-Object | Get-Unique +\end{verbatim} +ergibt \emph{1} +\end{itemize} +\end{frame} + +\section[Group]{Group-Object} + +\begin{frame}[fragile] +\frametitle{Gruppieren} +\begin{itemize} +\item Mit \verb|Group-Object| können die Objekte in der Pipeline nach einer Eigenschaft gruppiert werden + +\item zB. gruppiert folgende Befehlsfolge: +\begin{verbatim} +Get-Service | Group-Object status +\end{verbatim} +alle Services nach ihrem Status (\emph{stopped} oder \emph{running}) +\item oder folgende Befehlsfolge: +\begin{verbatim} +Get-Service | Group-Object CanPauseAndContinue +\end{verbatim} +gruppiert alle Services nach der Fähigkeit, ob diese pausiert und wieder aktiviert werden können (\emph{true} oder \emph{false}) +\item \verb|Group-Object| kann auch einen Ausdruck verwenden, um zwei Gruppen zu bilden (\emph{true} oder \emph{false}). zB.: +\begin{verbatim} +Get-Process | Group-Object { $_.ID -gt 1000} +\end{verbatim} +\end{itemize} +\end{frame} + +\section[Measure]{Measure-Object} +\begin{frame}[fragile] +\frametitle{Measure-Object} +\begin{itemize} +\item Mit \verb|Measure-Object| können unterschiedliche Berechnungen für Pipelineobjekte durchgeführt werden (Summe, Durchschnitt, Anzahl, Minimum, Maximum) +\item Es muss ein Attribut angegeben werden, anhand dessen die Berechnungen durchgeführt werden: +\begin{verbatim} +Get-ChildItem | Measure-Object -Property length +\end{verbatim} +\item Standardmässig gibt \verb|Measure-Object| nur die Anzahl aus. Will man weitere Berechnungsergebnisse erhalten, müssen diese explizit angegeben werden: +\begin{verbatim} +Get-ChildItem | Measure-Object -Property length +-average -sum -min -max +\end{verbatim} +\end{itemize} +\end{frame} + + +\section[Variablen]{Zwischenschritte erzeugen} +\begin{frame}[fragile] +\frametitle{Zwischenschritte erzeugen} +\begin{itemize} +\item Mit dem \$-Zeichen können Variablen erzeugt werden +\item zB. kann die Befehlsfolge: +\begin{verbatim} +Get-Process | Where-Object {$_.ws -gt 100MB} +| Sort-Object CPU +\end{verbatim} +wiefolgt in Einzelschritte zerlegt werden: +\begin{verbatim} +$a = Get-Process +$b = $a | Where-Object {$_.ws -gt 100MB} +$b | Sort-Object CPU +\end{verbatim} +\item Ergibt ein Befehl kein Resultat, erhält die Variable den Wert \verb|$null|, was soviel bedeutet wie \emph{nichts} +\end{itemize} +\end{frame} + +\section[Verzw.]{Verzweigungen erzeugen} + +\begin{frame}[fragile] +\frametitle{Verzweigungen in der Pipeline} +\begin{itemize} +\item \verb|Tee-Object| kann den Pipelineinhalt in einer Variablen speichern und gleichzeitig in der Pipeline unverändert weitergeben +\item zB. : +\begin{verbatim} +Get-Process | Tee-Object a +| Where-Object {$_.ws -gt 100MB} +\end{verbatim} +Speichert die Prozesstabelle in einer Variable \verb|$a| ab und gibt den Pipelineinhalt unverändert an \verb|Where-Object| weiter, welches diesen weiterverarbeitet (in \verb|$a| kann später immernoch auf die ganze Prozesstabelle zugegriffen werden) +\item Mit \verb|Tee-Object -filepath C:\Liste.txt| kann der Pipelineinhalt auch in einer Datei abgespeichert werden +\end{itemize} +\end{frame} + + + +\begin{frame}[fragile] +\frametitle{Verzweigungen in der Pipeline} +\begin{itemize} +\item Mit dem Parameter \verb|-OutVariable| kann ein Resultat eines Commandlets ebenfalls in einer Variable gespeichert werden: +\begin{verbatim} +Get-Process -OutVariable a +\end{verbatim} +\item Unter Verwendung von \verb|Set-Content|, gibt es auch eine Alternative zu \verb|Tee-Object -filepath|: +\begin{verbatim} +Set-Content C:\Liste.txt -PassThru +\end{verbatim} +Speichert den PipelineInhalt in einer Datei ab und schickt diesen unverändert weiter + +\end{itemize} +\end{frame} + +\section[Compare]{Compare-Object} + +\begin{frame}[fragile] +\frametitle{Pipelineinhalte vergleichen} +\begin{itemize} +\item Mit \verb|Compare-Object| können zwei Pipelineinhalte miteinander verglichen werden: +\begin{verbatim} +$P1 = Get-Process +# Zeit abwarten, Prozesse starten, stoppen, ... +$P2= Get-Process +Compare-Object $P1 $P2 +\end{verbatim} +gibt den Unterschied zwischen den beiden Ausführungen von \verb|Get-Prozess| aus (neu gestartete Prozesse, gestoppte Prozesse, ...) +\item Gibt es keinen Unterschied zwischen beiden Pipelineinhalten, gibt \verb|Compare-Object| nichts aus + +\end{itemize} +\end{frame} + +\end{document} \ No newline at end of file diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion3/Praesentation/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/java-program-execution2.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/java-program-execution2.png new file mode 100644 index 0000000..d351d80 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/java-program-execution2.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/klasse_objekt.gif b/m122/M122/Lektionen/Lektion3/Praesentation/img/klasse_objekt.gif new file mode 100644 index 0000000..3036f21 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/klasse_objekt.gif differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/klasse_objekt.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/klasse_objekt.png new file mode 100644 index 0000000..8ceb02c Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/klasse_objekt.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/objekt.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/objekt.png new file mode 100644 index 0000000..7b54056 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/objekt.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/powershell-logo.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/powershell-logo.png new file mode 100644 index 0000000..7023936 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/powershell-logo.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps1.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps1.png new file mode 100644 index 0000000..594510c Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps10.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps10.png new file mode 100644 index 0000000..953e10a Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps10.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps11.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps11.png new file mode 100644 index 0000000..153eb08 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps11.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps12.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps12.png new file mode 100644 index 0000000..bb6e0fd Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps12.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps13.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps13.png new file mode 100644 index 0000000..0f3eabb Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps13.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps2.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps2.png new file mode 100644 index 0000000..0be4d37 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps3.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps3.png new file mode 100644 index 0000000..f3852f5 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps4.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps4.png new file mode 100644 index 0000000..c5c8ac9 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps5.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps5.png new file mode 100644 index 0000000..cbb8c8e Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps6.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps6.png new file mode 100644 index 0000000..b256ca0 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps7.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps7.png new file mode 100644 index 0000000..340d376 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps8.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps8.png new file mode 100644 index 0000000..37534b3 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion3/Praesentation/img/ps9.png b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps9.png new file mode 100644 index 0000000..c2bf31c Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Praesentation/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/.DS_Store b/m122/M122/Lektionen/Lektion3/Uebung/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/Powershell_Uebung3.pdf b/m122/M122/Lektionen/Lektion3/Uebung/Powershell_Uebung3.pdf new file mode 100644 index 0000000..a23b4ea Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/Powershell_Uebung3.pdf differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/Powershell_Uebung3.tex b/m122/M122/Lektionen/Lektion3/Uebung/Powershell_Uebung3.tex new file mode 100644 index 0000000..daa4c17 --- /dev/null +++ b/m122/M122/Lektionen/Lektion3/Uebung/Powershell_Uebung3.tex @@ -0,0 +1,248 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 3 +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +{\bf{Aufgabe 1 - Informationen auslesen:}} +\begin{quote} +{\bf{a)}} - Ermitteln sie den Typen vom Aufruf von \verb|Get-Service|.\\\\ +{\bf{b)}} - Ermitteln sie den Typen des ersten Elements vom Aufruf von \verb|Get-Service|.\\\\ +{\bf{c)}} - Lassen sie sich alle Methoden von \verb|Get-Process| auflisten. Finden sie heraus, welche Möglichkeiten es gibt, einen Prozess zu beenden.\\\\ +{\bf{d)}} - Starten sie wieder den Firefoxbrowser auf ihrem Windowssystem. Beenden sie den Firefoxprozess, indem sie die unter Aufgabe c) gefundenen Methoden ausprobieren (die Methode wird analog zu \verb|.count| aus der letzten Übung verwendet. Die runden Klammer am Schluss der Methode \verb|()| sind hier aber zwingend!).\\\\ +{\bf{e)}} - Lassen sie sich alle properties (\verb|Get-Member| mit membertype \verb|properties|) von \verb|Get-Service| anzeigen. Lassen sie sich zusätzlich den membertype \verb|property| anzeigen. Was ist der Unterschied der Ausgabe mit \verb|properties| und \verb|property| ?\\\\ +{\bf{f)}} - Lassen sie sich \verb|aliasproperty| von \verb|Get-Process| anzeigen, erkennen sie einige Kürzel für Attribute wieder?\\\\ +\end{quote} + +{\bf{Aufgabe 2 - Select-Object:}} +\begin{quote} +{\bf{a)}} - Lassen sie sich alle Prozesse auflisten und benutzen sie \verb|Select-Object|, um das Resultat auf den Speicherverbrauch (\verb|WorkingSet64|) und den Prozessnamen (\verb|ProcessName|) einzuschränken. Versuchen sie die Ausführung auch mit den aliasproperties aus Aufgabe 1 f).\\\\ +{\bf{b)}} - Listen sie sich alle Prozesse mit einem Speicherverbrauch grösser als 100MB auf und benutzen sie \verb|Select-Object| dazu, um nur die ersten 5 aufzulisten.\\\\ +{\bf{c)}} - Kombinieren sie nun Aufgaben a) und b), d.h. reduzieren sie die Ausgabe von \verb|Get-Process| auf Speicherverbrauch und Prozessnamen {\bf{und}} beschränken sie das Resultat zusätzlich auf die \emph{letzten} 10 Objekte.\\\\ +\end{quote} + +{\bf{Aufgabe 3 - Sort-Object:}} +\begin{quote} +{\bf{a)}} - Sortieren sie die Ausgabe von \verb|Get-Service| nach dem \verb|status|.\\\\ +{\bf{b)}} - Sortieren sie die Ausgabe von \verb|Get-Service| nach dem \verb|status| und innerhalb des Status sortieren sie zusätzlich nach dem Namen.\\\\ +{\bf{c)}} - Sortieren sie mit \verb|Sort-Object| eine zufällige Zahlen- oder Buchstabenfolge (Beispiele siehe Präsentationsfolien), welche mind. ein Duplikat enthält.\\\\ +{\bf{d)}} - Filtern sie nun die Duplikate aus Aufgabe c) heraus, indem sie alles an \verb|Get-Unique| weiterpipen. +\end{quote} +\newpage + +{\bf{Aufgabe 4 - Group-Object:}} +\begin{quote} +{\bf{a)}} - Gruppieren sie die Ausgabe von \verb|Get-Service| anhand des Attributs \verb|CanStop| (Service kann gestoppt werden).\\\\ +{\bf{b)}} - Gruppieren sie die Ausgabe von \verb|Get-Process| in zwei Gruppen: Prozesse mit einer ID grösser als 1000 und kleiner gleich 1000.\\\\ +\end{quote} + +{\bf{Aufgabe 5 - Measure-Object:}} +\begin{quote} +{\bf{a)}} - Finden sie {\bf{alle}} .jpg Dateien auf Ihrem System (mit \verb|Get-ChildItem|). Berechnen sie vom Attribut \verb|length| des Resultats folgende Werte: Minimum, Maximum, Durchschnitt, Summe, Anzahl.\\\\ +{\bf{b)}} - Berechnen sie dieselben Werte wie in Aufgabe a), nun aber für \verb|Get-Process| und das Attribut \verb|CPU| (CPU-Verbrauch).\\\\ +\end{quote} + +{\bf{Aufgabe 6 - Zwischenschritte mit Variablen:}} +\begin{quote} +{\bf{a)}} - Teilen sie das Negativbeispiel der viel zu langen Pipeline aus der letzten Lektion in Teilschritte auf, indem sie eine Variable für jeden Teilschritt verwenden: +\begin{verbatim} +Get-ChildItem "C:\Program Files\" -r -filter *.jpg | Where-Object { $_.Length -gt 30000 } | Select-Object Name, Length | Sort-Object Length | Format-List +\end{verbatim} +\end{quote} + +{\bf{Aufgabe 7 - Verzweigungen:}} +\begin{quote} +{\bf{a)}} - Gehen sie von folgendem Befehlskonstrukt aus: +\begin{verbatim} +Get-Process | Where-Object { $_.ws -gt 100MB } | Select-Object Name +\end{verbatim} +Bauen sie nun den Befehl so um, dass sie den Pipelineinhalt mit \verb|Tee-Object| nach \verb|Where-Object| in der Variable a abspeichern. Geben sie den Inhalt der Variable a aus, indem sie \verb|$a| in ihre Powershell eingeben.\\\\ +{\bf{b)}} - Bauen sie ein weiteres \verb|Tee-Object| in den Befehl aus Aufgabe a) ein, sodass die gesamte Prozessliste (direkt nach \verb|Get-Process|) in die Datei \verb|C:\prozesse.txt| abgespeichert wird. Überprüfen sie den Erfolg, indem sie den Inhalt der Datei mit \verb|Get-Content C:\prozesse.txt| ausgeben.\\\\ +{\bf{c)}} - Wiederholen sie Aufgaben a) und b), indem sie für a) \verb|-OutVariable a| verwenden und für b) \verb|Set-Content c:\prozesse.txt -PassThru|. +\end{quote} +\newpage +{\bf{Aufgabe 8 - Compare-Object:}} +\begin{quote} +{\bf{a)}} - Speichern sie die aktuelle Prozessliste in der Variable \verb|$P1|.\\\\ +{\bf{b)}} - Starten sie einige Programme auf Windows und speichern sie die aktuelle Prozessliste in der Variable \verb|$P2|.\\\\ +{\bf{c)}} - Vergleichen sie \verb|$P1| mit \verb|$P2| mit \verb|Compare-Object|.\\\\ +\end{quote} + +{\bf{Aufgabe 9 - Praxisaufgaben (für Unterforderte):}} +\begin{quote} +{\bf{a)}} - Ermitteln sie aus dem Verzeichnis \verb|System32| alle Dateien, die mit dem Buchstaben a beginnen. Beschränken sie die Menge auf diejenigen Dateien, die größer als 40 000 Bytes sind und gruppieren die Ergebnismenge nach Dateinamenerweiterungen. Sortieren sie die gruppierte Menge nach dem Namen der Dateierweiterung und formatieren sie die Ausgabe als Tabelle.\\\\ +{\bf{b)}} - Ermitteln sie aus dem Verzeichnis \verb|System32| alle Dateien, die mit dem Buchstaben b beginnen. Beschränken sie die Menge auf diejenigen Dateien, die größer als 40 000 Bytes sind und gruppieren sie die Ergebnismenge nach Dateierweiterungen. Sortieren sie die Gruppen nach der Anzahl der Einträge absteigend und beschränken sie die Menge auf das oberste Element. Geben sie für alle Mitglieder dieser Gruppe die Attribute \verb|Name| und \verb|Length| aus und passen sie die Spaltenbreite automatisch an (\verb|Format-Table -autosize|). +\end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/.DS_Store b/m122/M122/Lektionen/Lektion3/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion3/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/bzulogo.png b/m122/M122/Lektionen/Lektion3/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/ps1.png b/m122/M122/Lektionen/Lektion3/Uebung/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/ps2.png b/m122/M122/Lektionen/Lektion3/Uebung/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/ps3.png b/m122/M122/Lektionen/Lektion3/Uebung/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/ps4.png b/m122/M122/Lektionen/Lektion3/Uebung/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/ps5.png b/m122/M122/Lektionen/Lektion3/Uebung/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/ps6.png b/m122/M122/Lektionen/Lektion3/Uebung/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/ps7.png b/m122/M122/Lektionen/Lektion3/Uebung/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/ps8.png b/m122/M122/Lektionen/Lektion3/Uebung/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung/img/ps9.png b/m122/M122/Lektionen/Lektion3/Uebung/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/.DS_Store b/m122/M122/Lektionen/Lektion3/Uebung_Loes/.DS_Store new file mode 100644 index 0000000..168c12b Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/Powershell_Uebung3_Loes.pdf b/m122/M122/Lektionen/Lektion3/Uebung_Loes/Powershell_Uebung3_Loes.pdf new file mode 100644 index 0000000..7ded4e7 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/Powershell_Uebung3_Loes.pdf differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/Powershell_Uebung3_Loes.tex b/m122/M122/Lektionen/Lektion3/Uebung_Loes/Powershell_Uebung3_Loes.tex new file mode 100644 index 0000000..279d4a4 --- /dev/null +++ b/m122/M122/Lektionen/Lektion3/Uebung_Loes/Powershell_Uebung3_Loes.tex @@ -0,0 +1,327 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 3 - Beispiellösungen +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +\noindent {\bf{Hinweis: }} Für die meisten Aufgaben gibt es mehr als eine richtige Lösung. Falls Ihren Lösungen nicht gleich sind wie die hier Abgebildeten, muss dies nicht zwingend heissen, dass diese falsch sind.\\\\ +{\bf{Aufgabe 1 - Informationen auslesen:}} +\begin{quote} +{\bf{a)}} \verb|(Get-Service).GetType()|.\\\\ +{\bf{b)}} \verb|(Get-Service)[0].GetType()|.\\\\ +{\bf{c)}} +\begin{verbatim} +Get-Process | Get-Member -membertype methods +\end{verbatim} +\verb|Kill()| (abschiessen), \verb|CloseMainWindow()| (wie ein Klick auf das X) +{\bf{d)}} +\begin{verbatim} +(Get-Process | Where-Object { $_.Name -eq "firefox" }).kill() +\end{verbatim} +{\bf{e)}} +\begin{verbatim} +Get-Service | Get-Member -membertype property +Get-Service | Get-Member -membertype properties +\end{verbatim} +Unterschied der Ausgabe mit \verb|properties| und \verb|property|: \verb|properties| gibt nebst der Ausgabe der normalen \verb|property|'s auch Sets von mehreren \verb|property|'s (\verb|properties|) aus. \\\\ +{\bf{f)}} +\begin{verbatim} +Get-Process | Get-Member -membertype aliasproperty +\end{verbatim} +Bekannte Aliases: \verb|Name| oder \verb|WS| (Speicherverbrauch) +\end{quote} + +{\bf{Aufgabe 2 - Select-Object:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +Get-Process | Select-Object WorkingSet64, ProcessName +Get-Process | Select-Object ws, name +\end{verbatim} +{\bf{b)}} +\begin{verbatim} +Get-Process | Where-Object {$_.ws -gt 100MB } | Select-Object -first 5 +\end{verbatim} +{\bf{c)}} +\begin{verbatim} +Get-Process | Where-Object {$_.ws -gt 100MB } | Select-Object ws, name -last 10 +\end{verbatim} +\end{quote} +\newpage +{\bf{Aufgabe 3 - Sort-Object:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +Get-Service | Sort-Object status +\end{verbatim} +{\bf{b)}} +\begin{verbatim} +Get-Service | Sort-Object status, name +\end{verbatim} +{\bf{c)}} +\begin{verbatim} +8,4,6,2,7,8,6,6,3 | Sort-Object +\end{verbatim} +{\bf{d)}} +\begin{verbatim} +8,4,6,2,7,8,6,6,3 | Sort-Object | Get-Unique +\end{verbatim} +\end{quote} + +{\bf{Aufgabe 4 - Group-Object:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +Get-Service | Group-Object CanStop +\end{verbatim} +{\bf{b)}} - Gruppieren sie die Ausgabe von \verb|Get-Process| in zwei Gruppen: Prozesse mit einer ID grösser als 1000 und kleiner gleich 1000. +\begin{verbatim} +Get-Process | Group-Object {$_.ID -gt 1000} +\end{verbatim} +\end{quote} + +{\bf{Aufgabe 5 - Measure-Object:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +Get-ChildItem C:\ *.jpg -r | Measure-Object -Property Length -Min -Max -Average - Sum +\end{verbatim} +{\bf{b)}} +\begin{verbatim} +Get-Process | Measure-Object -Property CPU -Min -Max -Average - Sum +\end{verbatim} +\end{quote} + +{\bf{Aufgabe 6 - Zwischenschritte mit Variablen:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +$a = Get-ChildItem "C:\Program Files\" -r -filter *.jpg +$b = $a | Where-Object { $_.Length -gt 30000 } +$c = $b | Select-Object Name, Length +$d = $c | Sort-Object Length +$d | Format-List +\end{verbatim} +\end{quote} + +{\bf{Aufgabe 7 - Verzweigungen:}} +\begin{quote} +{\bf{a)}} - Gehen sie von folgendem Befehlskonstrukt aus: +\begin{verbatim} +Get-Process | Where-Object { $_.ws -gt 100MB } | Tee-Object -Variable a | ` +Select-Object Name +\end{verbatim} +{\bf{b)}} +\begin{verbatim} +Get-Process | Tee-Object -FilePath C:\prozesse.txt | ` +Where-Object { $_.ws -gt 100MB } | Tee-Object -Variable a | ` +Select-Object Name + +Get-Content C:\prozesse.txt +\end{verbatim} +{\bf{c)}} +\begin{verbatim} +Get-Process | Set-Content c:\prozesse.txt -PassThru | ` +Where-Object { $_.ws -gt 100MB } -OutVariable a| ` +Select-Object Name + +Get-Content C:\prozesse.txt +\end{verbatim} +\end{quote} + +\newpage +{\bf{Aufgabe 8 - Compare-Object:}} +\begin{quote} +{\bf{a)}} \verb|$P1 = Get-Process|.\\ +{\bf{b)}} Starten sie einige Programme auf Windows. \verb|$P2 = Get-Process|\\ +{\bf{c)}} \verb|Compare-Object $P1 $P2|.\\ +\end{quote} + +{\bf{Aufgabe 9 - Praxisaufgaben (für Unterforderte):}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +Get-ChildItem C:\windows\system32 -filter a*.* | Where-Object {$_.Length -gt 40000} +| Group-Object Extension | Sort-Object name | Format-Table +\end{verbatim} +{\bf{b)}} +\begin{verbatim} +Get-ChildItem C:\windows\system32 -filter b*.* | Where-Object {$_.Length -gt 40000} +| Group-Object Extension | Sort-Object count -desc | Select-Object -first 1| +Select-Object group | foreach {$_.group} | Select-Object name,length +| Format-Table -autosize +\end{verbatim} +\end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/.DS_Store b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/bzulogo.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps1.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps2.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps3.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps4.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps5.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps6.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps7.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps8.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps9.png b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion3/Uebung_Loes/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion4/.DS_Store b/m122/M122/Lektionen/Lektion4/.DS_Store new file mode 100644 index 0000000..670979a Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/.DS_Store b/m122/M122/Lektionen/Lektion4/Praesentation/.DS_Store new file mode 100644 index 0000000..4c7e19e Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/Powershell_L4.pdf b/m122/M122/Lektionen/Lektion4/Praesentation/Powershell_L4.pdf new file mode 100644 index 0000000..140eec4 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/Powershell_L4.pdf differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/Powershell_L4.tex b/m122/M122/Lektionen/Lektion4/Praesentation/Powershell_L4.tex new file mode 100644 index 0000000..b61787b --- /dev/null +++ b/m122/M122/Lektionen/Lektion4/Praesentation/Powershell_L4.tex @@ -0,0 +1,556 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beamer Presentation +% LaTeX Template +% Version 1.0 (10/11/12) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND THEMES +%---------------------------------------------------------------------------------------- + +\documentclass{beamer} + +\usepackage{listings} +\usepackage{graphicx} +\usepackage{lastpage} +\usepackage{fancyhdr} +\usepackage{soul} + +\usepackage{lmodern} % Latin Modern + +\usepackage[utf8]{inputenc} + +\definecolor{beamer@zueriblue}{HTML}{009EE1} +\definecolor{beamer@lightblue}{HTML}{8BCCE8}\DeclareUnicodeCharacter{00A0}{ } + +\mode { + +% The Beamer class comes with a number of default slide themes +% which change the colors and layouts of slides. Below this is a list +% of all the themes, uncomment each in turn to see what they look like. + +%\usetheme{default} +%\usetheme{AnnArbor} +%\usetheme{Antibes} +%\usetheme{Bergen} +%\usetheme{Berkeley} +%\usetheme{Berlin} +%\usetheme{Boadilla} +%\usetheme{CambridgeUS} +%\usetheme{Copenhagen} +%\usetheme{Darmstadt} +%\usetheme{Dresden} +%\usetheme{Frankfurt} +%\usetheme{Goettingen} +%\usetheme{Hannover} +%\usetheme{Ilmenau} +%\usetheme{JuanLesPins} +%\usetheme{Luebeck} +%\usetheme{Madrid} +%\usetheme{Malmoe} +%\usetheme{Marburg} +%\usetheme{Montpellier} +%\usetheme{PaloAlto} +%\usetheme{Pittsburgh} +%\usetheme{Rochester} +%\usetheme{Singapore} +%\usetheme{Szeged} +%\usetheme{Warsaw} + +% As well as themes, the Beamer class has a number of color themes +% for any slide theme. Uncomment each of these in turn to see how it +% changes the colors of your current slide theme. + +%\usecolortheme{albatross} +%\usecolortheme{beaver} +%\usecolortheme{beetle} +%\usecolortheme{crane} +%\usecolortheme{dolphin} +%\usecolortheme{dove} +%\usecolortheme{fly} +%\usecolortheme{lily} +%\usecolortheme{orchid} +%\usecolortheme{rose} +%\usecolortheme{seagull} +%\usecolortheme{seahorse} +%\usecolortheme{whale} +%\usecolortheme{wolverine} + + \usetheme{Dresden} + \setbeamercolor*{palette primary}{use=dove,fg=blue,bg=beamer@lightblue} + + \setbeamercolor*{palette secondary}{use=dove,fg=blue,bg=beamer@lightblue} + \setbeamercolor*{palette tertiary}{use=dove,fg=white,bg=beamer@zueriblue} + + +%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line +%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line + +%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line +} + +\usepackage{graphicx} % Allows including images +\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\title[Powershell - Lektion 4]{Powershell - Lektion 4} % The short title appears at the bottom of every slide, the full title is only on the title page + +\author{Mario Bischof} % Your name +\institute[BFSU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +{ +Berufsfachschule Uster \\ % Your institution for the title page +\medskip +\href{mailto:mario.bischof@bzu.ch}{mario.bischof@bzu.ch}% Your email address +} +\date{\today} % Date, can be changed to a custom date + +\begin{document} + +\begin{frame} +\includegraphics[height=0.4in]{img/bfsulogo.jpg} +\titlepage % Print the title page as the first slide + +\end{frame} + +\begin{frame} +\frametitle{Übersicht} % Table of contents slide, comment this block out to remove it +\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation +\end{frame} + +%---------------------------------------------------------------------------------------- +% PRESENTATION SLIDES +%---------------------------------------------------------------------------------------- + +%------------------------------------------------ + %------------------------------------------------ + +\section[PSSkripte]{Powershell Skripte} % A subsection can be created just before a set of slides with a common theme to further break down your presentation into chunks + + +\begin{frame}[fragile] +\frametitle{Powershell Skripte} + + +\begin{itemize} +\item PS-Skripts werden in einer Datei mit der Endung \verb|.ps1| abgespeichert. Diese kann mit einfachen Texteditoren (zB. Wordpad) oder dem PS-ISE bearbeitet werden. +\item Ein Skript ist eine normale Textdatei, welche den Skriptcode enthält und könnte zB. so aussehen: +\begin{verbatim} +# Mein Skript skript.ps1 +"Datum: " + (Get-Date).ToShortDateString() +"Zeit: " + (Get-Date).ToLongTimeString() +"Anzahl laufender Prozesse: " + (Get-Process).Count +\end{verbatim} +\item Es kann mit +\begin{itemize} +\item \verb|.\skript.ps1| oder +\item \verb|&.\skript.ps1| oder +\item \verb|Invoke-Expression .\skript.ps1| +\end{itemize} +aus der Powershell gestartet werden. +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Dot-Sourcing} + + +\begin{itemize} +\item Ein Skript kann mit \verb|. skript.ps1| permanent in die aktuelle Powershellumgebung eingebunden werden +\item Im Skript definierte Variablen und Funktionen bleiben so auch nach Beendigung des Skriptes in der Powershell verfügbar +\item \emph{freie} Befehle, zB. hintereinander ausgeführte Commandlets, die nicht innerhalb einer Funktion platziert sind, werden sofort ausgeführt +\end{itemize} + +\end{frame} + +\section[params]{Skriptparameter} +\begin{frame}[fragile] +\frametitle{Parameter für Skripte} + + +\begin{itemize} +\item Einem Skript können auch Parameter übergeben werden, zB.: + \verb|.\skript2.ps1 eins zwei drei| +\item Diese sind innerhalb des Skripts über ein array \verb|$args[]| verfügbar. Folgendes Skript ausgeführt mit obigen Parameter: +\begin{verbatim} +"erstes arg: " + $args[0] +"zweites arg: " + $args[1] +"drittes arg: " + $args[2] +\end{verbatim} +ergäbe folgende Ausgabe: +\begin{verbatim} +erstes arg: eins +zweites arg: zwei +drittes arg: drei +\end{verbatim} +\end{itemize} +\end{frame} + + +\begin{frame}[fragile] +\frametitle{Parameter für Skripte} + +\begin{itemize} +\item Falls man nicht mit dem automatisch zur Verfügung gestellten \verb|$args[]| Array arbeiten möchte, kann man den Parametern auch eigene Namen vergeben : +\begin{verbatim} +param([string] $eins, [string] $zwei, [string] $drei) +"erstes arg: " + $eins +"zweites arg: " + $zwei +"drittes arg: " + $drei +\end{verbatim} +Was genau dasselbe Resultat erzielt, wie die Variante mit \verb|$args[]| +\end{itemize} +\end{frame} + +\section[paus.]{Skripte pausieren} + +\begin{frame}[fragile] +\frametitle{Skripte pausieren} + +\begin{itemize} +\item Mit \verb|Start-Sleep| kann man innerhalb eines Skriptes eine Zeit lang pausieren +\item \verb|Start-Sleep -m 100| wartet 100 Milisekunden +\item \verb|Start-Sleep -s 2| Wartet 2 Sekunden +\begin{verbatim} +"Willkommen zum Skript, ich warte nun 10 Sekunden" +Start-Sleep -s 10 +"10 Sekunden sind vorbei" +"nur noch 1 Milisekunde bis zum Schluss... +Start-Sleep -m 1 +"fertig!" +\end{verbatim} +\end{itemize} +\end{frame} + +\section[help]{Hilfe zu Powershell Sprachkonstrukten anzeigen} + +\begin{frame}[fragile] +\frametitle{Hilfe zu Powershell Sprachkonstrukten anzeigen} + +\begin{itemize} +\item Mit \verb|Get-Help About_while| kann zB. die Hilfe zur while-Schleife angezeigt werden +\item \verb|Get-Help About| zeigt alle vorhandenen About-Einträge an +\end{itemize} +\end{frame} + +\section[trennen]{Befehle trennen} + +\begin{frame}[fragile] +\frametitle{Befehle trennen} + +\begin{itemize} +\item Mit \verb|;| können mehrere Befehle auf einer Zeile nacheinander ausgeführt werden +\item zB.: \verb|Get-Process; Get-Service| +\item Mit dem \verb|`| Zeichen (Gravis, ASCI-Code 96) kann ein Befehl auf mehrere Zeilen aufgeteilt werden, zB.: +\begin{verbatim} +Get-Process | ` +Where-Object {$_.Name -eq "iexplore" } +\end{verbatim} +\end{itemize} +\end{frame} + +\section[comments]{Kommentare} + +\begin{frame}[fragile] +\frametitle{Kommentare} + +\begin{itemize} +\item Mit \verb|#| können Kommentare erzeugt werden, d.h. diese Zeilen werden nicht als Befehle gedeutet und von der Powershell komplett ignoriert, zB.: +\begin{verbatim} +# Hier kommt eine Prozessliste +Get-Process +Get-Service # Serviceliste. Kommentar am Zeilenende +\end{verbatim} +\item Mit \verb|<#| und \verb|#>| kann ein mehrzeiliger Kommentar erzeugt werden, zB.: +\begin{verbatim} +<# +Author: Mario Bischof +Version: 1.1 +Editiert: 13.9.2015 +#> +Get-Process +\end{verbatim} +\end{itemize} +\end{frame} + +\begin{frame}[fragile] + +\section[vars]{Variablen} + +\frametitle{Variablen} + +\begin{itemize} +\item Eine Variable wird mit dem \verb|$|-Zeichen und einem beliebigen Namen (ausser bereits reservierten Bezeichnungen wie zB. \verb|$null|) gekennzeichnet, zB. \verb|$var1| +\item Das \verb|=| weist einer Variablen einen Wert zu, zB.: \verb|$x = 10| +\item Der Inhalt einer Variable wird durch die Angabe der Variable ausgelesen: +\begin{verbatim} +"Der Inhalt von x ist " + $x +\end{verbatim} +\item Auch PipelineInhalt kann einer Variable zugewiesen werden: +\begin{verbatim} +$AnzahlProzesse = (Get-Process).Count +\end{verbatim} +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Variablen} + +\begin{itemize} +\item Eine Variable kann auch mit \verb|Set-Variable| gesetzt werden, zB. \verb|Set-Variable x 10| (\verb|$| muss hier weggelassen werden!) +\item Eine Variable kann auch mit \verb|Get-Variable| gelesen werden, zB. \verb|(Get-Variable x).Value| (\verb|$| muss hier weggelassen werden!) gibt 10 zurück +\item Der Inhalt einer Variable kann mit \verb|Clear-Variable| wieder geleert werden, also zB. \verb|Clear-Variable x| + +\end{itemize} +\end{frame} + +\section[var-conds]{Variablenbedingungen} + +\begin{frame}[fragile] +\frametitle{Variablenbedingungen} + +\begin{itemize} +\item Einer Variablen können Bedingungen aufgezwungen werden. Diese werden bei jeder Zuweisung überprüft: +\begin{itemize} + +\item \verb|[ValidateLength(1,10)]| - Überprüft, ob die Anzahl Zeichen des Werts in einem gewissen Bereich liegt +\item \verb|[ValidatePattern("[0-9]*")]| - Überprüft, ob der Wert auf einen bestimmten regulären Ausdruck zutrifft +\item \verb|[ValidateRange(0,100)]| - Überprüft, ob der Wert in einem gewissen Wertebereich liegt +\item \verb|[ValidateScript({$_.Starts With("A")})]| - Überprüft, ob eine Bedingung wahr ist +\end{itemize} + +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Variablenbedingungen - Beispiele} + +\begin{itemize} +\item +\begin{verbatim} +# ist gültig (ist zwischen 1 und 10 Zeichen lang) +[ValidateLength(1,10)] $msg = "Hallo" +\end{verbatim} +\item +\begin{verbatim} +# ist ungültig (länger als 10 Zeichen) +[ValidateLength(1,10)] $msg = "Hallohallohallo" +\end{verbatim} +\item +\begin{verbatim} +# ist gültig (besteht nur aus Ziffern) +[ValidatePattern("[0-9]*")] $z = 123 +\end{verbatim} +\item +\begin{verbatim} +# ist gültig (liegt zw. 0 und 100) +[ValidateRange(0,100)] $personen = 10 +\end{verbatim} +\item +\begin{verbatim} +# ist ungültig (beginnt nicht mit "A") +[ValidateScript({$_.Starts With("A")})] $B = "Berta" +\end{verbatim} +\item +\begin{verbatim} +# ist gültig (beginnt mit "A") +[ValidateScript({$_.Starts With("A")})] $A = "Albert" +\end{verbatim} +\end{itemize} +\end{frame} + + +\section[rnd]{Zufallszahlen} + +\begin{frame}[fragile] +\frametitle{Zufallszahlen} + +\begin{itemize} +\item Eine Zufallszahl (0 oder 1) kann mit \verb|Get-Random| erzeugt werden +\item Mit \verb|-Min| und \verb|-Max| kann ein Bereich definiert werden +\item \verb|Get-Random -Min 10 -Max 1000| würfelt eine Zufallszahl zwischen 10 und 1000 +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Zeichenketten} + +\begin{itemize} +\item Zeichenketten werden mit \verb|''|, \verb|""| oder \verb|'@| und \verb|@'| gekennzeichnet +\item Mit \verb|'@| und \verb|@'| können auch mehrzeilige Zeichenketten definiert werden: +\begin{verbatim} +'@ +Ich bin eine Zeichenkette, +welche sich über +mehrere Zeilen erstreckt +@' +\end{verbatim} +\item Ausdrücke inherhalb von Zeichenketten, können mit dem \verb|$|-Zeichen aufgelöst werden, zB.: +\begin{verbatim} +"Uhrzeit: $((Get-Date).ToShortTimeString())" +\end{verbatim} +ergibt: +\begin{verbatim} +"Uhrzeit: 13:20" +\end{verbatim} +\end{itemize} +\end{frame} + +\section[strings]{Zeichenketten} + +\begin{frame}[fragile] +\frametitle{Zeichenketten} + +\begin{itemize} +\item Zeichenketten werden mit dem \verb|+| Zeichen verknüpft, zB.: +\begin{verbatim} +$hallo = "Hallo" +$hallo + " Lehrer " + $hallo + " Schüler" +\end{verbatim} +\item Mit dem \verb|`| Zeichen können Sonderzeichen erzeugt werden, zB.: +\begin{itemize} +\item \verb|`a| - Ton (Beep) +\item \verb|`b| - Backspace +\item \verb|`f| - Form Feed +\item \verb|`n| - New Line +\item \verb|`r| - Carriage Return (Enter) +\item \verb|`r`n| - Carriage Return und NL +\item \verb|`t| - Tabulator +\end{itemize} +\item Beispiel: \verb|1.Zeile`n2.Zeile`n3.Zeile| +\item Beispiel: \verb|sieht`tnur`taus`tals`tob`tes`tkeine`tAbstände`thätte| + +\end{itemize} +\end{frame} + +\section[arrays]{Arrays} + +\begin{frame}[fragile] +\frametitle{Arrays} + +\begin{itemize} +\item Ein Array (Container für Elemente desselben Typs) kann mit Komma-getrennten Werten für die Elemente erzeugt werden: +\begin{verbatim} +$array = 1,2,3,4,5,6 +\end{verbatim} +\item Ein Array kann auch explizit deklariert werden: +\begin{verbatim} +[array] $array +$array = 1,2,3,4,5,6 +\end{verbatim} +\item Ein Zahlenfolge kann auch mit \verb|1..6| abgekürzt werden: +\begin{verbatim} +$array = 1..6 +\end{verbatim} +\item Wenn ein Array nur ein Element haben soll, beginnt die Werteliste mit einem Komma +\begin{verbatim} +$array = ,1 +\end{verbatim} +\item Die Anzahl Elemente eines Arrays liefert \verb|.Count|: +\begin{verbatim} +$anzahl = $array.Count +\end{verbatim} +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Arrays} + +\begin{itemize} +\item Zwei Arrays können verbunden werden mit \verb|+| +\begin{verbatim} +$array1 = 1,2,3,4 +$array2 = 5,6,7,8 +$array3 = $array1 + $array2 + +$array3.count # gibt 8 aus +\end{verbatim} +\item Element eines Arrays lesen: +\begin{verbatim} +$e1 = $array[0] +\end{verbatim} +\item Element eines Arrays schreiben: +\begin{verbatim} +$array[0] = 10 +\end{verbatim} +\end{itemize} +\end{frame} + +\section[hashtable]{Hashtables} + +\begin{frame}[fragile] +\frametitle{Hashtables} + +\begin{itemize} +\item Eine Hashtabelle speichert Werte anhand eines eindeutigen Bezeichners ab +\item Eine Hashtabelle wird mit \verb|@| erzeugt, in geschweiften Klammer werden die Elemente mit Bezeichner angegeben und durch \verb|;| vom Nächsten getrennt +\begin{verbatim} +$ht = @{s1 = "Manuel"; s2 = "Andreas"; s3 = "Herbert"} +\end{verbatim} +\item Einzelne Werte können über den Bezeichner ausgelesen werden: +\begin{verbatim} +# hole Wert von s1 +$ht["s1"] +$ht.s1 +\end{verbatim} +\item Oder wieder geschrieben werden: +\begin{verbatim} +# schreibe Wert von s1 +$ht.s1 = "Markus" +\end{verbatim} +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Hashtables} + +\begin{itemize} +\item Es kann auch vorab eine leere Hashtabelle erzeugt werden, die nach und nach gefüllt wird: +\begin{verbatim} +# erzeuge leere Hashtable +$hashtable = @{ } +# Speichere Wert "bla" unter Bezeicher b +$hashtable.b = "bla" +# Speichere Wert "bli" unter Bezeicher i +$hashtable.i = "bli" +# Resultat ist 2 +$hashtable.count +\end{verbatim} +\item Gleich wie arrays können hashtabellen mit \verb|+| zusammengefügt werden. Voraussetzung: es gibt keine identischen Bezeichner. + +\end{itemize} + +\end{frame} + +\section[*]{Strings und Arrays multiplizeren} +\begin{frame}[fragile] +\frametitle{Strings und Arrays multiplizeren} + +\begin{itemize} +\item Strings und Arrays können \emph{multipliziert} werden: +\begin{verbatim} +$string = "ab" +# ergibt Inhalt "ababab" +$string2 = $string * 3 +# gibt 6 aus +$string2.count + +$array = 1,2,3 +# ergibt Inhalt 1,2,3,1,2,3,1,2,3 +$array2 = $array * 3 +# gibt 9 aus +$array2.count +\end{verbatim} +\end{itemize} + +\end{frame} +\end{document} \ No newline at end of file diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion4/Praesentation/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/java-program-execution2.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/java-program-execution2.png new file mode 100644 index 0000000..d351d80 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/java-program-execution2.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/klasse_objekt.gif b/m122/M122/Lektionen/Lektion4/Praesentation/img/klasse_objekt.gif new file mode 100644 index 0000000..3036f21 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/klasse_objekt.gif differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/klasse_objekt.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/klasse_objekt.png new file mode 100644 index 0000000..8ceb02c Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/klasse_objekt.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/objekt.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/objekt.png new file mode 100644 index 0000000..7b54056 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/objekt.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/powershell-logo.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/powershell-logo.png new file mode 100644 index 0000000..7023936 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/powershell-logo.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps1.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps1.png new file mode 100644 index 0000000..594510c Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps10.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps10.png new file mode 100644 index 0000000..953e10a Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps10.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps11.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps11.png new file mode 100644 index 0000000..153eb08 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps11.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps12.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps12.png new file mode 100644 index 0000000..bb6e0fd Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps12.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps13.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps13.png new file mode 100644 index 0000000..0f3eabb Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps13.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps2.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps2.png new file mode 100644 index 0000000..0be4d37 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps3.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps3.png new file mode 100644 index 0000000..f3852f5 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps4.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps4.png new file mode 100644 index 0000000..c5c8ac9 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps5.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps5.png new file mode 100644 index 0000000..cbb8c8e Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps6.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps6.png new file mode 100644 index 0000000..b256ca0 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps7.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps7.png new file mode 100644 index 0000000..340d376 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps8.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps8.png new file mode 100644 index 0000000..37534b3 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion4/Praesentation/img/ps9.png b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps9.png new file mode 100644 index 0000000..c2bf31c Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Praesentation/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/.DS_Store b/m122/M122/Lektionen/Lektion4/Uebung/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/Powershell_Uebung4.pdf b/m122/M122/Lektionen/Lektion4/Uebung/Powershell_Uebung4.pdf new file mode 100644 index 0000000..c22b020 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/Powershell_Uebung4.pdf differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/Powershell_Uebung4.tex b/m122/M122/Lektionen/Lektion4/Uebung/Powershell_Uebung4.tex new file mode 100644 index 0000000..8c96fc7 --- /dev/null +++ b/m122/M122/Lektionen/Lektion4/Uebung/Powershell_Uebung4.tex @@ -0,0 +1,218 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 4 +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +{\bf{Aufgabe 1 - Parameter übergeben:}} +\begin{quote} +{\bf{a)}} - Erstellen sie ein Skript, welchem sie 2 Parameter (Zahlen) übergeben. Es soll die Summe, das Produkt und den Quotient beider Zahlen berechnen und ausgeben. Sie sollen dazu \verb|args[]| verwenden. \\\\ +{\bf{b)}} - Ändern sie das Skript aus {\bf{a)}} so um, indem sie den Parametern eigene Namen geben (\verb|$zahl1| und \verb|$zahl2|).\\\\ +{\bf{c)}} - Lassen sie ihr Skript zwischen der Ausgabe der Summe und dem Produkt und dem Produkt und dem Quotient jeweils 2 Sekunden warten (mit \verb|Start-Sleep|).\\\\ +\end{quote} + +{\bf{Aufgabe 2 - Mehrzeilig, Kommentare:}} +\begin{quote} +{\bf{a)}} - Ändern sie das Skript aus Aufgabe 1 so um, dass die Ausgabe (zB. von der Summe) und der Sleep (\verb|Start-Sleep|) auf der gleichen Zeile stehen (Mit \verb|;| trennen).\\\\ +{\bf{b)}} - Fügen sie in Ihrem Skript einen mehrzeiligen Kommentar ganz am Anfang an. Dieser Kommentar soll sie als Author aufführen und eine kurze Beschreibung der Funktionalität des Skripts enthalten.\\\\ +{\bf{c)}} - Fügen sie vor jede Codezeile noch einen einzeiligen Kommentar, welcher jeweils beschreibt, was die nächste Zeile macht.\\\\ + +\end{quote} + +{\bf{Aufgabe 3 - Variablen:}} +\begin{quote} +{\bf{a)}} - Schreiben sie ein kleines Skript, welches die Anzahl laufender Prozesse in einer Variable \verb|$AnzahlProzesse| abspeichert und am Bildschirm ausgibt.\\\\ +{\bf{b)}} - Versuchen sie die Aufgabe {\bf{a)}} nun mit \verb|Set-Variable| und \verb|Get-Variable| zu lösen.\\\\ +{\bf{c)}} - Schreiben sie ein Skript welches zwei Zahlen in den Variablen \verb|$num1| und \verb|$num2| abspeichert und deren Summe ausgibt. Ergänzen sie den Code mit Variablenbedingungen, so dass \verb|$num1| nur Zahlen von 1 bis 100 aufnehmen (\verb|ValidateRange|) kann und \verb|$num2| mind. 2 und maximal 8 Zeichen lang sein darf (\verb|ValidateLength|). Überprüfen sie die Validierungen, indem sie versuchen den Variablen nicht erlaubte Werte zuzuweisen.\\\\ +{\bf{d)}} - Schreiben sie ein Skript, dass zwei Zufallszahlen erzeugt (eine zwischen 1 und 10 und die andere zwischen 100 und 1000), in den Variablen \verb|$rnd1| und \verb|$rnd2| abspeichert und die Zufallszahlen ausgibt.\\\\ +\end{quote} +\newpage + +{\bf{Aufgabe 4 - Strings:}} +\begin{quote} +{\bf{a)}} - Schreiben sie ein Skript, welches folgenden Text: \url{http://gedichte.xbib.de/Alexis_gedicht_Der+sp%E4te+Gast.htm} eins zu eins ausgeben soll. Verwenden sie dazu einen mehrzeiligen String (\verb|'@ @'|)\\\\ +{\bf{b)}} - Ändern sie den Text in einen normalen String (\verb|" "|) ab und ersetzten sie die NEW LINEs mit \verb|`n|.\\\\ +\end{quote} + +{\bf{Aufgabe 5 - Array, Hashmap:}} +\begin{quote} +{\bf{a)}} - Erzeugen sie ein Array, welches alle Nachnamen der Schüler in Ihrer Klasse beinhaltet.\\\\ +{\bf{b)}} - Geben sie das erste und das letzte Element des Arrays aus.\\\\ +{\bf{c)}} - Vertauschen sie das erste und das letzte Element des Arrays. \\\\ +{\bf{d)}} - Erstellen sie eine Hashmap, welche wiederum alle Nachnamen der Schüler Ihrer Klasse abspeichert. Der Bezeichner eines Elements ist jeweils der Vorname. Gibt es Schüler mit dem gleichen Vornamen, fügen sie Nummern hinzu, zB. \verb|Michael1| und \verb|Michael2|.\\\\ +{\bf{e)}} - Modifizieren sie das Skript aus {\bf{d)}} so, dass sie diesem als Parameter einen Vornamen übergeben können und es Ihnen den Nachnamen des Schülers ausgibt.\\\\ + + +\end{quote} +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/.DS_Store b/m122/M122/Lektionen/Lektion4/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion4/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/bzulogo.png b/m122/M122/Lektionen/Lektion4/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/ps1.png b/m122/M122/Lektionen/Lektion4/Uebung/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/ps2.png b/m122/M122/Lektionen/Lektion4/Uebung/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/ps3.png b/m122/M122/Lektionen/Lektion4/Uebung/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/ps4.png b/m122/M122/Lektionen/Lektion4/Uebung/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/ps5.png b/m122/M122/Lektionen/Lektion4/Uebung/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/ps6.png b/m122/M122/Lektionen/Lektion4/Uebung/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/ps7.png b/m122/M122/Lektionen/Lektion4/Uebung/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/ps8.png b/m122/M122/Lektionen/Lektion4/Uebung/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung/img/ps9.png b/m122/M122/Lektionen/Lektion4/Uebung/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/.DS_Store b/m122/M122/Lektionen/Lektion4/Uebung_Loes/.DS_Store new file mode 100644 index 0000000..168c12b Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/Powershell_Uebung4_Loes.pdf b/m122/M122/Lektionen/Lektion4/Uebung_Loes/Powershell_Uebung4_Loes.pdf new file mode 100644 index 0000000..3201cf3 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/Powershell_Uebung4_Loes.pdf differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/Powershell_Uebung4_Loes.tex b/m122/M122/Lektionen/Lektion4/Uebung_Loes/Powershell_Uebung4_Loes.tex new file mode 100644 index 0000000..ad4a03b --- /dev/null +++ b/m122/M122/Lektionen/Lektion4/Uebung_Loes/Powershell_Uebung4_Loes.tex @@ -0,0 +1,296 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 4 - Beispiellösungen +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage\noindent {\bf{Hinweis: }} Für die meisten Aufgaben gibt es mehr als eine richtige Lösung. Falls Ihren Lösungen nicht gleich sind wie die hier Abgebildeten, muss dies nicht zwingend heissen, dass diese falsch sind.\\\\ + +{\bf{Aufgabe 1 - Parameter übergeben:}} +\begin{quote} +{\bf{a)}} Da Argumente als Zeichenketten (Strings) eingelesen werden, müssen diese zuerst in ganze Zahlen (int) umgewandelt werden, damit man damit rechnen kann. +\begin{verbatim} +"summe: " + ([int] $args[0] + [int] $args[1]) +"produkt: " + ([int] $args[0] * [int] $args[1]) +"quotient: " + ([int] $args[0] / [int] $args[1]) +\end{verbatim} +{\bf{b)}} +\begin{verbatim} +param([string] $eins, [string] $zwei) +"summe: " + ([int]$eins + [int]$zwei) +"produkt: " + ([int]$eins * [int]$zwei) +"quotient: " + ([int]$eins / [int]$zwei) +\end{verbatim} + +{\bf{c)}} +\begin{verbatim} +param([string] $eins, [string] $zwei) +"summe: " + ([int]$eins + [int]$zwei) +Start-Sleep -s 2 +"produkt: " + ([int]$eins * [int]$zwei) +Start-Sleep -s 2 +"quotient: " + ([int]$eins / [int]$zwei) +\end{verbatim} +\end{quote} + +{\bf{Aufgabe 2 - Mehrzeilig, Kommentare:}} +\begin{quote} +{\bf{a)}}\begin{verbatim} +param([string] $eins, [string] $zwei) +"summe: " + ([int]$eins + [int]$zwei) ; Start-Sleep -s 2 +"produkt: " + ([int]$eins * [int]$zwei) ; Start-Sleep -s 2 +"quotient: " + ([int]$eins / [int]$zwei) +\end{verbatim} +{\bf{b)}} und {\bf{c)}} +\begin{verbatim} +<# +Autor: Mario Bischof +Dieses Skript liest zwei Zahlen ein und berechnet deren +Summe, Produkt und Quotient +#> +param([string] $eins, [string] $zwei) +# berechne die Summe, warte 2 Sekunden +"summe: " + ([int]$eins + [int]$zwei) ; Start-Sleep -s 2 +# berechne das Produkt, warte 2 Sekunden +"produkt: " + ([int]$eins * [int]$zwei) ; Start-Sleep -s 2 +# berechne den Quotienten +"quotient: " + ([int]$eins / [int]$zwei) +\end{verbatim} + +\end{quote} + +{\bf{Aufgabe 3 - Variablen:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +$AnzahlProzesse = (Get-Process).count +"Die aktuelle Anzahl prozesse ist: " + $AnzahlProzesse +\end{verbatim} + +{\bf{b)}} +\begin{verbatim} +Set-Variable AnzahlProzesse (Get-Process).count +"Die aktuelle Anzahl prozesse ist: " + (Get-Variable AnzahlProzesse).Value +\end{verbatim} +{\bf{c)}} +\begin{verbatim} +param([ValidateRange (0,100)][int] $num1, [ValidateLength (2,8)][string] $num2) +"Die Summe ist: " + ($num1 + [int]$num2) +\end{verbatim} +{\bf{d)}} +\begin{verbatim} +$rnd1 = Get-Random -min 1 -max 10 +$rnd2 = Get-Random -min 100 -max 1000 + +"Zufallszahl 1 ist: " + $rnd1 +"Zufallszahl 2 ist: " + $rnd2 +\end{verbatim} +\end{quote} + + +{\bf{Aufgabe 4 - Strings:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +@" +Was klopft ans Tor? Über die rote Heide +geht... +"@ +\end{verbatim} +{\bf{b)}} +\begin{verbatim} +"Was klopft ans Tor? Über die rote Heide`n geht..." +\end{verbatim} +\end{quote} + +{\bf{Aufgabe 5 - Array, Hashmap:}} +\begin{quote} +{\bf{a)}}, {\bf{b)}} und {\bf{c)}} : +\begin{verbatim} +$array = "mueller", "meier", "schmid", "merkel" +$array[0] # erstes Element +$array[$array.Length-1] # letztes Element +# Vertauschung: +$array[0],$array[$array.Length-1] = $array[$array.Length-1], $array[0] +\end{verbatim} + +{\bf{d)}} und {\bf{e)}} : +\begin{verbatim} +param([string] $vorname) +$ht=@{"max" = "mueller"; "hans" = "meier"; "lukas" = "schmid"; "herbert" = "merkel"} + +"der nachname ist: " + $ht[$vorname] +\end{verbatim} + +\end{quote} +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/.DS_Store b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/bzulogo.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps1.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps2.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps3.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps4.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps5.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps6.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps7.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps8.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps9.png b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion4/Uebung_Loes/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion5/.DS_Store b/m122/M122/Lektionen/Lektion5/.DS_Store new file mode 100644 index 0000000..ce11e7c Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/.DS_Store b/m122/M122/Lektionen/Lektion5/Praesentation/.DS_Store new file mode 100644 index 0000000..4c7e19e Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/Powershell_L5.pdf b/m122/M122/Lektionen/Lektion5/Praesentation/Powershell_L5.pdf new file mode 100644 index 0000000..043d5f2 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/Powershell_L5.pdf differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/Powershell_L5.tex b/m122/M122/Lektionen/Lektion5/Praesentation/Powershell_L5.tex new file mode 100644 index 0000000..9e0df3c --- /dev/null +++ b/m122/M122/Lektionen/Lektion5/Praesentation/Powershell_L5.tex @@ -0,0 +1,356 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beamer Presentation +% LaTeX Template +% Version 1.0 (10/11/12) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND THEMES +%---------------------------------------------------------------------------------------- + +\documentclass{beamer} + +\usepackage{listings} +\usepackage{graphicx} +\usepackage{lastpage} +\usepackage{fancyhdr} +\usepackage{soul} + +\usepackage{lmodern} % Latin Modern + +\usepackage[utf8]{inputenc} + +\definecolor{beamer@zueriblue}{HTML}{009EE1} +\definecolor{beamer@lightblue}{HTML}{8BCCE8}\DeclareUnicodeCharacter{00A0}{ } + +\mode { + +% The Beamer class comes with a number of default slide themes +% which change the colors and layouts of slides. Below this is a list +% of all the themes, uncomment each in turn to see what they look like. + +%\usetheme{default} +%\usetheme{AnnArbor} +%\usetheme{Antibes} +%\usetheme{Bergen} +%\usetheme{Berkeley} +%\usetheme{Berlin} +%\usetheme{Boadilla} +%\usetheme{CambridgeUS} +%\usetheme{Copenhagen} +%\usetheme{Darmstadt} +%\usetheme{Dresden} +%\usetheme{Frankfurt} +%\usetheme{Goettingen} +%\usetheme{Hannover} +%\usetheme{Ilmenau} +%\usetheme{JuanLesPins} +%\usetheme{Luebeck} +%\usetheme{Madrid} +%\usetheme{Malmoe} +%\usetheme{Marburg} +%\usetheme{Montpellier} +%\usetheme{PaloAlto} +%\usetheme{Pittsburgh} +%\usetheme{Rochester} +%\usetheme{Singapore} +%\usetheme{Szeged} +%\usetheme{Warsaw} + +% As well as themes, the Beamer class has a number of color themes +% for any slide theme. Uncomment each of these in turn to see how it +% changes the colors of your current slide theme. + +%\usecolortheme{albatross} +%\usecolortheme{beaver} +%\usecolortheme{beetle} +%\usecolortheme{crane} +%\usecolortheme{dolphin} +%\usecolortheme{dove} +%\usecolortheme{fly} +%\usecolortheme{lily} +%\usecolortheme{orchid} +%\usecolortheme{rose} +%\usecolortheme{seagull} +%\usecolortheme{seahorse} +%\usecolortheme{whale} +%\usecolortheme{wolverine} + + \usetheme{Dresden} + \setbeamercolor*{palette primary}{use=dove,fg=blue,bg=beamer@lightblue} + + \setbeamercolor*{palette secondary}{use=dove,fg=blue,bg=beamer@lightblue} + \setbeamercolor*{palette tertiary}{use=dove,fg=white,bg=beamer@zueriblue} + + +%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line +%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line + +%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line +} + +\usepackage{graphicx} % Allows including images +\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\title[Powershell - Lektion 5]{Powershell - Lektion 5} % The short title appears at the bottom of every slide, the full title is only on the title page + +\author{Mario Bischof} % Your name +\institute[BFSU] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space +{ +Berufsfachschule Uster \\ % Your institution for the title page +\medskip +\href{mailto:mario.bischof@bzu.ch}{mario.bischof@bzu.ch}% Your email address +} +\date{\today} % Date, can be changed to a custom date + +\begin{document} + +\begin{frame} +\includegraphics[height=0.4in]{img/bfsulogo.jpg} +\titlepage % Print the title page as the first slide + +\end{frame} + +\begin{frame} +\frametitle{Übersicht} % Table of contents slide, comment this block out to remove it +\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation +\end{frame} + +%---------------------------------------------------------------------------------------- +% PRESENTATION SLIDES +%---------------------------------------------------------------------------------------- + +%------------------------------------------------ + %------------------------------------------------ + +% A subsection can be created just before a set of slides with a common theme to further break down your presentation into chunks + +\section[for]{for-Schleife} +\begin{frame}[fragile] +\frametitle{for-Schleife} + + +\begin{itemize} +\item Eine Schleife führt dasselbe Stück Code ein bestimmte Anzahl Wiederholungen aus +\item Die for-Schleife wird verwendet, wenn die Anzahl Durchläufe bekannt sind +\item Die for-Schleife wird nach folgendem Schema gebildet: +\begin{verbatim} +for(Initialisierung;Bedingung;Schrittweite) { ... } +\end{verbatim} +\item Ein konkretes Beispiel: +\begin{verbatim} +for($i = 1; $i -le 10; $i++){ + $i +} +\end{verbatim} +Gibt die Zahlen 1 bis 10 aus. +\end{itemize} +\end{frame} + +\section[while]{while-Schleife} +\begin{frame}[fragile] +\frametitle{while-Schleife} + +\begin{itemize} +\item Die while-Schleife wird verwendet, wenn die Anzahl Durchläufe \emph{unbekannt} sind +\item Die while-Schleife wird nach folgendem Schema gebildet: +\begin{verbatim} +while(Bedingung) { ... } +\end{verbatim} +Solange die \emph{Bedingung} wahr ist, läuft die Schleife weiter. +\item Ein konkretes Beispiel: +\begin{verbatim} +$i = 10; +while($i -gt 0){ + $i + $i-- +} +\end{verbatim} +Gibt die Zahlen 10 bis 1 aus. +\end{itemize} +\end{frame} + +\section[do-while]{do-while-Schleife} + +\begin{frame}[fragile] +\frametitle{do-while-Schleife} + +\begin{itemize} +\item Die do-while-Schleife funktioniert identisch wie die while-Schleife mit dem Unterschied, dass der Inhalt {\emph{mind.}} einmal ausgeführt wird +\item Die do-while-Schleife wird nach folgendem Schema gebildet: +\begin{verbatim} +do { ... }while(Bedingung) +\end{verbatim} +Solange die \emph{Bedingung} wahr ist, läuft die Schleife weiter. +\item Ein konkretes Beispiel: +\begin{verbatim} +$i = 10; +do{ + $i + $i-- +}while($i -gt 10) +\end{verbatim} + +\end{itemize} +\end{frame} + +\section[for-each]{for-each-Schleife} +\begin{frame}[fragile] +\frametitle{for-each-Schleife} + +\begin{itemize} +\item Die for-each-Schleife wird zum Durchlaufen von Objektmengen verwendet (zB. Inhalt eines Arrays) +\item Die for-each-Schleife läuft solange, wie die Anzahl Elemente in der Objektmenge +\item Ein konkretes Beispiel: +\begin{verbatim} +$array = 1,2,3,4,5,6,7,8 +foreach($element in $array){ + $element + } +\end{verbatim} +Gibt die Zahlen 1 bis 8 (Inhalt von \$array) aus. +\item Auch folgendes wäre möglich: +\begin{verbatim} +foreach($element in 1..8){ + $element + } +\end{verbatim} +\end{itemize} +\end{frame} + +\section[if]{if-Verzweigung} + +\begin{frame}[fragile] +\frametitle{if-Verzweigung} + +\begin{itemize} +\item Wird für eine Entscheidung im Code verwendet +\item Trifft eine Bedingung zu, wird der Code im darauffolgenden Block ausgeführt, sonst nicht +\item Ein konkretes Beispiel: +\begin{verbatim} +$x = 10 +if($x -gt 0){ + "x ist grösser 0" +} +\end{verbatim} +\end{itemize} +\end{frame} + +\section[if-else]{if-else-Verzweigung} + +\begin{frame}[fragile] +\frametitle{if-else-Verzweigung} + +\begin{itemize} +\item Eine else-Verzweigung kann am Schluss hinzugefügt werden, um zu definieren, was ausgeführt wird, wenn die if-Bedingung \emph{nicht} zutrifft +\begin{verbatim} +$x = -10 +if($x -gt 0){ + "x ist grösser 0" +}else{ + "x ist kleiner 0" +} +\end{verbatim} +\end{itemize} +\end{frame} + +\section[elseif]{elseif-Verzweigung} +\begin{frame}[fragile] +\frametitle{elseif Verzweigungen} + +\begin{itemize} +\item Eine elseif-Verzweigung kann hinzugefügt werden, um eine weitere Verzweigung zu erzeugen +\item Es können beliebig viele elseif-Verzweigungen angefügt werden +\item das else zum Schluss ist nicht zwingend +\begin{verbatim} +$x = 0 +if($x -gt 0){ + "x ist grösser 0" +}elseif($x -lt 0){ + "x ist kleiner 0" +}else{ + "x ist 0" +} +\end{verbatim} +\end{itemize} +\end{frame} + + +\section[switch]{switch-Bedingung} + +\begin{frame}[fragile] +\frametitle{switch-Bedingung} + +\begin{itemize} +\item Eine switch-Bedingung wird verwendet, um viele verschiedene Fälle abzudecken +\item Der default-Fall wird ausgeführt, wenn keiner der anderen Fälle zutrifft +\begin{verbatim} +$x = 0 +switch($x) +{ + {$x -gt 0} { "x ist grösser als 0" } + {$x -lt 0} { "x ist kleiner als 0" } + default { "x ist 0" } + +} +\end{verbatim} +\end{itemize} +\end{frame} + + +\begin{frame}[fragile] +\frametitle{switch-Bedingung} + +\begin{itemize} +\item Eine switch-Bedingung kann auch einen Fall durch den Wert einer Variabel auswählen +\begin{verbatim} +$note = 4 + +switch($note) +{ + 1 { "sehr schlecht" } + 2 { "schlecht" } + 3 { "ungenügend" } + 4 { "genügend" } + 5 { "gut" } + 6 { "sehr gut" } + default { "ungültige Note " } +} +\end{verbatim} +\end{itemize} +\end{frame} + +\section[funktionen]{Funktionen} + +\begin{frame}[fragile] +\frametitle{Funktionen} + +\begin{itemize} +\item In einem Powershell können eigene Funktionen definiert werden +\item Funktionen kapseln Code, der häufig wiederverwendet wird +\item Eine Funktion wird durch ihren Namen aufgerufen +\begin{verbatim} +function CalculateSum($num1, $num2){ + "Die Summe ist: " + ($num1 + $num2) +} + +CalculateSum(10,20) # gibt 30 aus +\end{verbatim} +\end{itemize} +\end{frame} + + + + +\end{document} \ No newline at end of file diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion5/Praesentation/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/java-program-execution2.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/java-program-execution2.png new file mode 100644 index 0000000..d351d80 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/java-program-execution2.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/klasse_objekt.gif b/m122/M122/Lektionen/Lektion5/Praesentation/img/klasse_objekt.gif new file mode 100644 index 0000000..3036f21 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/klasse_objekt.gif differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/klasse_objekt.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/klasse_objekt.png new file mode 100644 index 0000000..8ceb02c Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/klasse_objekt.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/objekt.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/objekt.png new file mode 100644 index 0000000..7b54056 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/objekt.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/powershell-logo.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/powershell-logo.png new file mode 100644 index 0000000..7023936 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/powershell-logo.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps1.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps1.png new file mode 100644 index 0000000..594510c Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps10.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps10.png new file mode 100644 index 0000000..953e10a Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps10.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps11.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps11.png new file mode 100644 index 0000000..153eb08 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps11.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps12.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps12.png new file mode 100644 index 0000000..bb6e0fd Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps12.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps13.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps13.png new file mode 100644 index 0000000..0f3eabb Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps13.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps2.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps2.png new file mode 100644 index 0000000..0be4d37 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps3.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps3.png new file mode 100644 index 0000000..f3852f5 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps4.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps4.png new file mode 100644 index 0000000..c5c8ac9 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps5.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps5.png new file mode 100644 index 0000000..cbb8c8e Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps6.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps6.png new file mode 100644 index 0000000..b256ca0 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps7.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps7.png new file mode 100644 index 0000000..340d376 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps8.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps8.png new file mode 100644 index 0000000..37534b3 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion5/Praesentation/img/ps9.png b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps9.png new file mode 100644 index 0000000..c2bf31c Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Praesentation/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/.DS_Store b/m122/M122/Lektionen/Lektion5/Uebung/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/Powershell_Uebung5.pdf b/m122/M122/Lektionen/Lektion5/Uebung/Powershell_Uebung5.pdf new file mode 100644 index 0000000..9e2036e Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/Powershell_Uebung5.pdf differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/Powershell_Uebung5.tex b/m122/M122/Lektionen/Lektion5/Uebung/Powershell_Uebung5.tex new file mode 100644 index 0000000..b6f3d2a --- /dev/null +++ b/m122/M122/Lektionen/Lektion5/Uebung/Powershell_Uebung5.tex @@ -0,0 +1,221 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 5 +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +{\bf{Aufgabe 1 - for-Schleife / for-each Schleife:}} +\begin{quote} +{\bf{a)}} - Erstellen sie ein Array \verb|$numbers| mit dem Inhalt: \verb|8,7,6,5,4,3,2,1|. Geben sie in einer for-Schleife den Inhalt des Arrays aus (alle Elemente einzeln).\\\\ +{\bf{b)}} - Erweitern sie das Skript aus Aufgabe {\bf{a)}} so, dass sie am Schluss in einer zweiten for-Schleife, den Inhalt des Arrays überschreiben mit den Elementen:\\ \verb|10,11,12,13,14,15,16,17|.\\\\ +{\bf{c)}} - Erweitern sie ihr Skript noch um eine dritte Schleife, welche den Inhalt des Arrays nochmals ausgibt. Verwenden sie aber dieses mal eine for-each-Schleife. +\end{quote} + +{\bf{Aufgabe 2 - While-Schleife:}} +\begin{quote} +{\bf{a)}} - Erstellen sie ein neues Skript. Erzeugen sie eine Variable \verb|$num1| und weisen sie ihr den Wert 20 zu. Erstellen sie direkt danach eine while-Schleife, welche solange läuft, wie \verb|$num1| grösser ist als 10. Innerhalb der Schleife soll der Inhalt von \verb|$num1| ausgegeben und der Wert von \verb|$num1| um eins reduziert werden. + +\end{quote} + +{\bf{Aufgabe 3 - if-else - switch:}} +\begin{quote} +{\bf{a)}} - Erstellen sie ein Skript, welches eine if - else Verzweigung beinhaltet. Das if soll überprüfen, ob eine Variable \verb|$num| grösser ist als 100 und \verb|Variable ist grösser als 100| ausgeben. Im else-Fall soll \verb|Variable ist kleiner als 100| ausgegeben werden.\\\\ +{\bf{b)}} - Erstellen sie ein Skript mit mehreren elseif Verzweigungen, die folgende Fälle einer Variable \verb|$num| überprüfen sollen:\\\\ +\verb|Variable ist kleiner als -10|\\ +\verb|Variable ist kleiner als 0|\\ +\verb|Variable ist 0|\\ +\verb|Variable ist grösser als 0|\\ +\verb|Variable ist grösser als 10 und kleiner als 20|\\ +\verb|Variable ist grösser als 20 und kleiner als 30|\\ +\verb|Variable ist grösser 30|\\\\ +{\bf{c)}} - Realisieren sie die Aufgabe {\bf{b)}} mit einer switch Bedingung.\\\\ +{\bf{d)}} - Erstellen sie eine switch-Bedingung, welche überprüft , ob eine Variable \verb|$geld| folgende Werte besitzt und den entsprechenden output ausgibt:\\\\ +\verb|-1000000 "sehr stark verschuldet"|\\ +\verb|-100000 "stark verschuldet"|\\ +\verb|-10000 "verschuldet"|\\ +\verb|0 "arm"|\\ +\verb|100000 "vermögend"|\\ +\verb|1000000 "reich"|\\ +\verb|10000000 "superreich"|\\\\ +\verb|default-Fall "keine gültige Eingabe"| +\end{quote} + +\newpage +{\bf{Aufgabe 4 - Funktionen:}} +\begin{quote} +{\bf{a)}} - Schreiben sie eine Funktion, welche Dollar in Euro umrechnet.\\\ +{\bf{b)}} - Schreiben sie eine Funktion, welche den Flächeninhalt eines Kreises anhand des Radius (über Parameter übergebbar) ausrechnet und ausgibt. \\\ +\end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/.DS_Store b/m122/M122/Lektionen/Lektion5/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion5/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/bzulogo.png b/m122/M122/Lektionen/Lektion5/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/ps1.png b/m122/M122/Lektionen/Lektion5/Uebung/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/ps2.png b/m122/M122/Lektionen/Lektion5/Uebung/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/ps3.png b/m122/M122/Lektionen/Lektion5/Uebung/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/ps4.png b/m122/M122/Lektionen/Lektion5/Uebung/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/ps5.png b/m122/M122/Lektionen/Lektion5/Uebung/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/ps6.png b/m122/M122/Lektionen/Lektion5/Uebung/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/ps7.png b/m122/M122/Lektionen/Lektion5/Uebung/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/ps8.png b/m122/M122/Lektionen/Lektion5/Uebung/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung/img/ps9.png b/m122/M122/Lektionen/Lektion5/Uebung/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/.DS_Store b/m122/M122/Lektionen/Lektion5/Uebung_Loes/.DS_Store new file mode 100644 index 0000000..168c12b Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/Powershell_Uebung5_Loes.pdf b/m122/M122/Lektionen/Lektion5/Uebung_Loes/Powershell_Uebung5_Loes.pdf new file mode 100644 index 0000000..a639af0 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/Powershell_Uebung5_Loes.pdf differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/Powershell_Uebung5_Loes.tex b/m122/M122/Lektionen/Lektion5/Uebung_Loes/Powershell_Uebung5_Loes.tex new file mode 100644 index 0000000..e7b3e38 --- /dev/null +++ b/m122/M122/Lektionen/Lektion5/Uebung_Loes/Powershell_Uebung5_Loes.tex @@ -0,0 +1,297 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung 5 - Beispiellösungen +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage \noindent {\bf{Hinweis: }} Für die meisten Aufgaben gibt es mehr als eine richtige Lösung. Falls Ihren Lösungen nicht gleich sind wie die hier Abgebildeten, muss dies nicht zwingend heissen, dass diese falsch sind.\\\\ + +{\bf{Aufgabe 1 - for-Schleife / for-each Schleife:}} +\begin{quote} +{\bf{a)}}, {\bf{b)}} und {\bf{c)}} +\begin{verbatim} +$numbers = 8,7,6,5,4,3,2,1 +for($i = 0; $i -lt $numbers.length; $i++){ + $numbers[$i] +} +for($i = 0; $i -lt $numbers.length; $i++){ + $numbers[$i] = $i + 10 +} +foreach($element in $numbers){ + $element +} +\end{verbatim} + +\end{quote} + +{\bf{Aufgabe 2 - While-Schleife:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +$num1 = 20 +while($num1 -gt 10){ + $num1 + $num1-- +} +\end{verbatim} +\end{quote} + +{\bf{Aufgabe 3 - if-else - switch:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +$num = 1 + +if($num -gt 100){ + "Variable ist grösser als 100" +}else{ + "Variable ist kleiner als 100" +} +\end{verbatim} + +{\bf{b)}} +\begin{verbatim} +$num = 9 + +if($num -lt -10 ){ + "Variable ist kleiner als -10" +}elseif($num -lt 0 -and $num -gt -10){ + "Variable ist kleiner als 0" +}elseif($num -eq 0){ + "Variable ist 0" +}elseif($num -gt 0 -and $num -lt 10){ + "Variable ist grösser als 0" +}elseif($num -gt 10 -and $num -lt 20){ + "Variable ist grösser als 10 und kleiner als 20" +}elseif($num -gt 20 -and $num -lt 30){ + "Variable ist grösser als 20 und kleiner als 30" +}else{ + "Variable ist grösser 30" +} +\end{verbatim} +{\bf{c)}} +\begin{verbatim} +$num = 11 + +switch($num){ + {$num -lt -10}{"Variable ist kleiner als -10"} + {$num -lt 0 -and $num -gt -10}{"Variable ist kleiner als 0"} + {$num -eq 0}{"Variable ist 0"} + {$num -gt 0 -and $num -lt 10}{"Variable ist grösser als 0"} + {$num -gt 10 -and $num -lt 20}{"Variable ist grösser als 10 und kleiner als 20"} + {$num -gt 20 -and $num -lt 30}{"Variable ist grösser als 20 und kleiner als 30"} + default{"Variable ist grösser 30"} +} +\end{verbatim} +{\bf{d)}} +\begin{verbatim} +$geld = 100000 + +switch($geld){ + -1000000 {"sehr stark verschuldet"} + -100000 {"stark verschuldet"} + -10000 {"verschuldet"} + 0 {"arm"} + 100000 {"vermögend"} + 1000000 {"reich"} + 10000000 {"superreich"} + default{"keine gültige Eingabe"} +} +\end{verbatim} + +\end{quote} + +\newpage +{\bf{Aufgabe 4 - Funktionen:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +function DollarToEuro([int] $dollar){ + $dollar*1.4; +} + +"3 Euro sind " + (DollarToEuro(3)) + " Dollar" +\end{verbatim} + +{\bf{b)}} +\begin{verbatim} +param([int] $eingabe) +function kreisFlaeche([int] $radius){ + $radius*$radius*[math]::pi +} + +"Kreisflaeche mit Radius " + $eingabe + " ist: " + (kreisFlaeche($eingabe)) +\end{verbatim} +\end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/.DS_Store b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/bzulogo.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps1.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps2.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps3.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps4.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps5.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps6.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps7.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps8.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps9.png b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion5/Uebung_Loes/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion6/.DS_Store b/m122/M122/Lektionen/Lektion6/.DS_Store new file mode 100644 index 0000000..6231ed8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/.DS_Store b/m122/M122/Lektionen/Lektion6/Uebung/.DS_Store new file mode 100644 index 0000000..c3e159a Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/Powershell_PruefVorber.pdf b/m122/M122/Lektionen/Lektion6/Uebung/Powershell_PruefVorber.pdf new file mode 100644 index 0000000..fe3efa1 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/Powershell_PruefVorber.pdf differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/Powershell_PruefVorber.tex b/m122/M122/Lektionen/Lektion6/Uebung/Powershell_PruefVorber.tex new file mode 100644 index 0000000..ce05e19 --- /dev/null +++ b/m122/M122/Lektionen/Lektion6/Uebung/Powershell_PruefVorber.tex @@ -0,0 +1,228 @@ +\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} +Windows PowerShell\\ \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{Aufgabe 1:}} +\begin{quote} +{\bf{a)}} - Welche unterschiedlichen Verwendungs-Modi gibt es für die PowerShell? Welche Vorarbeit muss bei der Verwendung von Skripts gemacht werden, damit sich diese aus der PowerShell ausführen lassen?\\\\ +{\bf{b)}} - Wie nennt man das \verb|*|-Zeichen und was können sie damit in der PowerShell bezwecken?\\\\ +{\bf{c)}} - Mit \emph{allgemeinen Parametern} können sie bei der Ausführung von Commandlets gewisse Funktionen einschalten, zB. \verb|-Verbose| für eine sehr detaillierte Bildschirmausgabe. Schauen sie sich unter: \url{https://technet.microsoft.com/en-us/library/dd901844%28v=vs.85%29.aspx} nochmals die Liste der \emph{allgemeinen Parameter} an und vergewissern sie sich, dass sie bei jedem Parameter wissen, was dieser bezweckt.\\\\ +{\bf{d)}} - Listen sie alle Prozesse auf, welche aus 8 Buchstaben bestehen.\\\\ +{\bf{e)}} - Listen sie alle Prozesse auf, welche auf den Buchstaben \verb|d| enden.\\\\ +{\bf{f)}} - Listen sie aus \verb|C:\Program Files\| und allen Unterordnern alle Dateien auf, welche die Endung {\bf{.exe}} haben.\\\\ +\end{quote} + +{\bf{Aufgabe 2:}} +\begin{quote} +{\bf{a)}} - Starten sie \verb|wordpad|. Formulieren sie einen Pipeline-Ausdruck, welcher Ihnen die Prozess-ID des Wordpad-Prozesses ausgibt (verwenden sie \verb|Where-Object| und den Namen des Prozesses) .\\\\ +{\bf{b)}} - Beenden sie nun den wordpad-Prozess, indem sie \verb|kill()| auf dem Ausdruck aus Aufgabe {\bf{a)}} ausführen.\\\\ +{\bf{c)}} - Listen sie alle Prozesse auf, wessen Namen NICHT auf \verb|e| enden (verwenden sie \verb|Where-Object| und \verb|-Like|).\\\\ +{\bf{d)}} - Listen sie alle Prozesse auf, welche auf \verb|a| ODER \verb|e| enden (verwenden sie \verb|Where-Object| und \verb|-or|).\\\\ + + +\end{quote} + +{\bf{Aufgabe 3:}} +\begin{quote} +{\bf{a)}} - Formulieren sie einen Pipeline-Ausdruck, welcher alle Prozesse mit einem Speicherverbrauch von mehr als 50MB auflistet. Das Resultat soll nach dem Prozessnamen alphabetisch sortiert sein.\\\\ +{\bf{b)}} - Listen sie alle Methoden auf, welche sie auf Prozessen ausführen können (Verwenden sie \verb|Get-Member|).\\\\ +{\bf{c)}} - Speichern sie das Resultat aus Aufgabe {\bf{b)}} zusätzlich in einer Datei \verb|methoden.txt| (verwenden sie \verb|Tee-Object|).\\\\ +{\bf{d)}} - Speichern sie das Resultat aus Aufgabe {\bf{b)}} zusätzlich in einer Variablen \verb|$methoden| (verwenden sie \verb|-Out-Variable|).\\\\ + + +\end{quote} + +{\bf{Aufgabe 4:}} +\begin{quote} +{\bf{a)}} - Erstellen sie zwei Arrays: +\begin{verbatim} +$array1 = 1,2,3,4,5,6 +$array2 = 5,6,7,8,9,10 +\end{verbatim} +Vergleichen sie den Inhalt beider Arrays mit \verb|Compare-Object|.\\\\ +{\bf{b)}} - Erstellen sie ein Skript, welchem sie einen Parameter (eine ganze Zahl) übergeben können. Innerhalb des Skripts erzeugen sie eine weitere Zahl (eine Zufallszahl) und speichern sie in der Variable \verb|$rand| ab. Ihr Skript soll überprüfen, ob die via Parameter übergebene Zahl grösser, kleiner oder gleich gross ist wie die Zufallszahl, indem es \verb|Zahl ist kleiner|, \verb|Zahl ist grösser| oder \verb|Zahl ist gleich gross| ausgibt.\\\\ +{\bf{c)}} - Verändern sie das Skript aus Aufgabe {\bf{b)}} nun so, dass nur Zahlen zwischen 10 und 1000 als Parameter übergeben werden können und ebenfalls nur eine Zufallszahl von 10 bis 1000 erzeugt wird.\\\\ +{\bf{d)}} - Erstellen sie ein Skript, dass 10 mal eine Sekunde lang wartet und bei jeder Sekunde die aktuelle Uhrzeit anzeigt.\\\\ +\end{quote} + +{\bf{Aufgabe 5:}} +\begin{quote} +{\bf{a)}} - Erstellen sie ein neues Skript. Speichern sie darin in der Variable \verb|$procs| die aktuelle Prozessliste ab. Erstellen sie eine \verb|foreach| Schleife, welche über allen Elementen in \verb|$procs| läuft, und den Prozessnamen ausgibt.\\\\ +{\bf{b)}} - Erweitern sie das Skript aus Aufgabe {\bf{a)}} um eine Variable \verb|$cpuAv|. Innerhalb der \verb|foreach| Schleife soll der CPU-Verbrauch des jeweiligen Elements zu \verb|$cpuAv| (\verb|$cpuAV += $element.CPU|) hinzugefügt werden. Nach der \verb|foreach|-Schleife soll der Durchschnittswert der CPU-Verbräuche ausgegeben (\verb|$cpuAv / $procs.count|) werden. +{\bf{c)}} - Machen sie dasselbe wie in Aufgabe {\bf{b)}}, nun aber mit \verb|Measure-Object|. + \end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/.DS_Store b/m122/M122/Lektionen/Lektion6/Uebung/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion6/Uebung/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/bzulogo.png b/m122/M122/Lektionen/Lektion6/Uebung/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/ps1.png b/m122/M122/Lektionen/Lektion6/Uebung/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/ps2.png b/m122/M122/Lektionen/Lektion6/Uebung/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/ps3.png b/m122/M122/Lektionen/Lektion6/Uebung/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/ps4.png b/m122/M122/Lektionen/Lektion6/Uebung/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/ps5.png b/m122/M122/Lektionen/Lektion6/Uebung/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/ps6.png b/m122/M122/Lektionen/Lektion6/Uebung/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/ps7.png b/m122/M122/Lektionen/Lektion6/Uebung/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/ps8.png b/m122/M122/Lektionen/Lektion6/Uebung/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung/img/ps9.png b/m122/M122/Lektionen/Lektion6/Uebung/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung/img/ps9.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/.DS_Store b/m122/M122/Lektionen/Lektion6/Uebung_Loes/.DS_Store new file mode 100644 index 0000000..168c12b Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/Powershell_PruefVorber_Loes.pdf b/m122/M122/Lektionen/Lektion6/Uebung_Loes/Powershell_PruefVorber_Loes.pdf new file mode 100644 index 0000000..7bc2d37 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/Powershell_PruefVorber_Loes.pdf differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/Powershell_PruefVorber_Loes.tex b/m122/M122/Lektionen/Lektion6/Uebung_Loes/Powershell_PruefVorber_Loes.tex new file mode 100644 index 0000000..99b0710 --- /dev/null +++ b/m122/M122/Lektionen/Lektion6/Uebung_Loes/Powershell_PruefVorber_Loes.tex @@ -0,0 +1,288 @@ +\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} +Windows PowerShell\\ \vspace{20pt} +Übung Prüfungsvorbereitung - Beispiellösungen +\end{Large} +\end{center} + +\vspace{10pt} + +\end{center} + +\begin{scriptsize} +\begin{center} +\noindent Mario Bischof +\end{center} +\end{scriptsize} +\newpage +{\bf{Aufgabe 1:}} +\begin{quote} +{\bf{a)}} - Interakitver Modus, Skriptmodus. \verb|Set-ExecutionPolicy RemoteSigned| muss für die Arbeit mit Skripten eingeschaltet sein.\\\\ +{\bf{b)}} - Asterisks. Bedeutet beliebig viele (auch keine) Zeichen. Damit können Suchmuster erzeugt werden.\\\\ +{\bf{c)}} - Wie in Aufgabe instruiert durchlesen.\\\\ +{\bf{d)}} - \verb|Get-Process ????????|\\\\ +{\bf{e)}} - \verb|Get-Process *d|\\\\ +{\bf{f)}} - \verb|Get-ChildItem C:\Program Files\ *.exe -r | +\end{quote} + +{\bf{Aufgabe 2:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +(Get-Process | Where-Object {$_.name -eq "wordpad"}).ID +\end{verbatim} + +{\bf{b)}} +\begin{verbatim} +(Get-Process | Where-Object {$_.name -eq "wordpad"}).kill() +\end{verbatim} +{\bf{c)}} +\begin{verbatim} +Get-Process | Where-Object {$_.name -notlike "*e"} +\end{verbatim} +{\bf{d)}} +\begin{verbatim} +Get-Process | Where-Object {$_.name -like "*a" - or $_.name -line "*e"} +\end{verbatim} + + +\end{quote} + +{\bf{Aufgabe 3:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +Get-Process | Where-Object {$_.ws -gt 50MB} | Sort-Object Name +\end{verbatim} +{\bf{b)}} +\begin{verbatim} +Get-Process | Get-Member -membertype methods +\end{verbatim} +{\bf{c)}} +\begin{verbatim} +Get-Process | Get-Member -membertype methods | Tee-Object -FilePath methoden.txt +\end{verbatim} +{\bf{d)}} +\begin{verbatim} +Get-Process | Get-Member -membertype methods -OutVariable methoden +\end{verbatim} + + +\end{quote} + +{\bf{Aufgabe 4:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +$array1 = 1,2,3,4,5,6 +$array2 = 5,6,7,8,9,10 +Compare-Object $array1 $array2 +\end{verbatim} + +{\bf{b)}} und {\bf{c)}} +\begin{verbatim} +param([ValidateRange(10,1000)][int] $zahl) + +$rand = Get-Random -Min 10 -Max 1000 +$rand +if($zahl -lt $rand){ + "Zahl ist kleiner" +}elseif($zahl -gt $rand){ + "Zahl ist groesser" +}else{"Zahl ist gleich gross"} +\end{verbatim} +{\bf{d)}} +\begin{verbatim} +for([int] $i = 0; $i -lt 10; $i++){ + (Get-Date).ToLongTimeString() + Start-Sleep -s 1 +} +\end{verbatim} + +\end{quote} + +{\bf{Aufgabe 5:}} +\begin{quote} +{\bf{a)}} +\begin{verbatim} +$procs = Get-Process +foreach($proc in $procs){ + $proc.name +} +\end{verbatim} +{\bf{b)}} und {\bf{c)}}: +\begin{verbatim} +$procs = Get-Process +$cpuAv = 0 +foreach($proc in $procs){ + $proc.name + $cpuAv += $proc.Cpu +} +"Der Durchschnittswert ist: " + $cpuAv / $procs.count + +# Variante mit Measure-Object: +Get-Process | Measure-Object -Property CPU -average +\end{verbatim} + \end{quote} + +\end{document} + + diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/.DS_Store b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/.DS_Store differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/bfsulogo.jpg b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/bfsulogo.jpg differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/bzulogo.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/bzulogo.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps1.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps1.png new file mode 100644 index 0000000..62d9ebf Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps1.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps2.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps2.png new file mode 100644 index 0000000..0fd0990 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps2.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps3.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps3.png new file mode 100644 index 0000000..8eab238 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps3.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps4.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps4.png new file mode 100644 index 0000000..0548b57 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps4.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps5.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps5.png new file mode 100644 index 0000000..aaed3af Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps5.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps6.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps6.png new file mode 100644 index 0000000..1259721 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps6.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps7.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps7.png new file mode 100644 index 0000000..a806ed6 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps7.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps8.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps8.png new file mode 100644 index 0000000..e08ce10 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps8.png differ diff --git a/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps9.png b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps9.png new file mode 100644 index 0000000..3ccc3c8 Binary files /dev/null and b/m122/M122/Lektionen/Lektion6/Uebung_Loes/img/ps9.png differ diff --git a/m122/M122/Pruefungen/.DS_Store b/m122/M122/Pruefungen/.DS_Store new file mode 100644 index 0000000..f26c2ce Binary files /dev/null and b/m122/M122/Pruefungen/.DS_Store differ diff --git a/m122/M122/Pruefungen/LBV.rtf b/m122/M122/Pruefungen/LBV.rtf new file mode 100644 index 0000000..336741b --- /dev/null +++ b/m122/M122/Pruefungen/LBV.rtf @@ -0,0 +1,34 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1348\cocoasubrtf170 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0 +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural + +\f0\fs24 \cf0 Die Leistungsbeurteilung soll Grundlagenwissen von zwei unterschiedlichen Skriptsprachen (Vorzugsweise eine Windows- und eine Linuxorientierte Sprache) \'fcberpr\'fcfen (Element 1 und 2, schriftliche Pr\'fcfung). Im dritten Element wird die Pr\'e4sentation und Dokumentation einer praktische Projektarbeit (Entwicklung eigenes Skript) bewertet, dabei d\'fcrfen sie Sch\'fcler aus einer der zwei unterrichteten Skriptsprachen ihre bevorzugte Wahl treffen.\ +\ +Die Pr\'fcfung ist ein 2 Teile gegliedert: 1. Teil (ohne Hilfstmittel) Grunds\'e4tzliche Verst\'e4ndnisfragen (Freitextantworten und Multiplechoice), Beurteilung von Ablaufsgrafiken. 2.Teil: Gegebene Szenarios analysieren und einfache Skriptanwendungen selbst erarbeite (open book). Es werden die Grundlagen der Skriptsprache gepr\'fcft (erste Skriptsprache zB. Windows PowerShell). Der Sch\'fcler soll in der Lage sein, Grundbefehle, welche von der Shellumgebung zur Verf\'fcgung gestellt werden, zu kennen und diese sinnvoll anwenden zu k\'f6nnen. Des Weiteren werden die Grundlegenden Skriptstrukturen (Schleifen, Verzweigungen, Variablen, usw.) gepr\'fcft. Der Sch\'fcler soll in der Lage sein, Aufgaben zu gegebenen Skripts beantworten zu k\'f6nnen und selbst simple Befehlskonstrukte, welche eine bestimme Aufgabe l\'f6sen, erarbeiten zu k\'f6nnen. \ +\ +1. Teil (ohne Hilfsmittel)\ +2. Teil (open book, alle schriftl. Hilfsmittel erlaubt, auch Dokumente auf PC-Arbeitsstation, dazu muss aber Netzwerkkabel ausgesteckt werden, Skriptumgebung selbst darf verwendet werden (zum Entwickeln / Testen der Skriptaufgaben))\ +\ +Bei Multiplechoiceaufgaben gibt es pro korrekte Antwort Punkte. Falsche Antworten ergeben Abzug. Total f\'e4llt nicht unter 0. Max. Punkte werden bei jeder Aufgabe angegeben\ +Korrektheit Coding-Aufgaben (ist der Code korrekt geschrieben?), Punkteverteilung und max. Punkte werden bei jeder Aufgabe angegeben\ +Funktionalit\'e4t Coding-Aufgaben (macht der Code, was verlangt wird?), Punkteverteilung und max. Punkte werden bei jeder Aufgabe angegeben\ +\ +Ablaufstruktur einer gegebenen sinnvollen automat. Praxis-Funktion soll vom Pr\'fcfling analysiert werden\ +Befehlskonstrukte, welche einen sinnvolle praktische Funktion erf\'fcllen, sollen vom Pr\'fcfling analysiert, bewertet, angepasst werden\ +Praxisorientierte Aufgabenstellung(-en) sollen vom Pr\'fcfling eigenst\'e4ndig durch die Skriptumgebung umgesetzt werden.\ +\ +\ +In einer Partnerarbeit wird eine selbst\'e4ndige Projektarbeit realisiert. Es wird ein eigenes Skript, welches einen sinnvolle praktische Funktion f\'fcr das Zielsystem erf\'fcllt, geplant, umgesetzt, dokumentiert und pr\'e4sentiert. Die Idee wird vorab in Form einer Beschreibung der Projektidee ausformuliert, mit der Lehrperson besprochen und gutgeheissen oder zur Verbesserung zur\'fcckgewiesen. Das Team darf unter den in den Leistungsbeurteilungselementen 1 & 2 Skriptsprachen die bevorzugte Skriptsprache ausw\'e4hlen. Mit der Pr\'e4sentation der praktischen Skriptarbeiten wird das Modul abgeschlossen.\ +\ +Beschreibung Projektidee angenommen (Testatbedingung)\ +Umfang des Skripts (besitzt die Skriptarbeit den gew\'fcnschten Umfang?)\ +Inhaltliche Korrektheit des Skriptcodes (Wurde korrekter Code geschrieben? ist der Code elegant oder sehr umst\'e4ndlich geschrieben?)\ +Funktionale Korrektheit des Skriptcodes (Mach das Skript, was es sollte?)\ +Pr\'e4sentation (Wie wurde die Arbeit pr\'e4sentiert? Welche Mittel wurden verwendet? Ansprechend, umfangreich, korrekt, usw. ...)\ +Dokumentation (Wie wurde die Arbeit dokumentiert? Inhaltlich korrekt, sauber, verst\'e4ndlich, usw. ...)\ +\ +Von den Pr\'fcflingen wird eine eigens ausgearbeitete Idee mit praktischem Nutzen geplant. Der Umfang und Praxisbezug der Idee wird von der LP in einem Abnahme-Gespr\'e4ch gutgeheissen.\ +Die Skriptarbeit wird selbst\'e4ndig (Mit Unterst\'fctzung der LP bei fachlichen Fragen) umgesetzt, getestet, dokumentiert und pr\'e4sentiert.\ +Die Skriptarbeit erlaubt die praktische Verbindung zum Betriebssystem der Wahl (dasjenige, welches der Pr\'fcfling im Lehrbetrieb am h\'e4ufigsten nutzt oder das Gegenteilige, falls er sich weiterentwickeln m\'f6chte und die gr\'f6ssere Herausforderung sucht)} \ No newline at end of file diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/.DS_Store b/m122/M122/Pruefungen/MP-CH-122-1372/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/.DS_Store differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_1_Auftrag_Planung_Konzept.docx b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_1_Auftrag_Planung_Konzept.docx new file mode 100644 index 0000000..11187b0 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_1_Auftrag_Planung_Konzept.docx differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_1_Auftrag_Planung_Konzept.pages b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_1_Auftrag_Planung_Konzept.pages new file mode 100644 index 0000000..2d07635 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_1_Auftrag_Planung_Konzept.pages differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_1_Auftrag_Planung_Konzept.pdf b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_1_Auftrag_Planung_Konzept.pdf new file mode 100644 index 0000000..ecb025b Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_1_Auftrag_Planung_Konzept.pdf differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_2_Auftrag_Umsetzung.docx b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_2_Auftrag_Umsetzung.docx new file mode 100644 index 0000000..4c94738 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_2_Auftrag_Umsetzung.docx differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_2_Auftrag_Umsetzung.pages b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_2_Auftrag_Umsetzung.pages new file mode 100644 index 0000000..974c7c8 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_2_Auftrag_Umsetzung.pages differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_2_Auftrag_Umsetzung.pdf b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_2_Auftrag_Umsetzung.pdf new file mode 100644 index 0000000..0ae5fb9 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_2_Auftrag_Umsetzung.pdf differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_3_Auftrag_Testen.docx b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_3_Auftrag_Testen.docx new file mode 100644 index 0000000..01d0570 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_3_Auftrag_Testen.docx differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_3_Auftrag_Testen.pages b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_3_Auftrag_Testen.pages new file mode 100644 index 0000000..8c57bbc Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_3_Auftrag_Testen.pages differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_3_Auftrag_Testen.pdf b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_3_Auftrag_Testen.pdf new file mode 100644 index 0000000..0dd7d75 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_3_Auftrag_Testen.pdf differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Bewertungsraster.ods b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Bewertungsraster.ods new file mode 100644 index 0000000..afdc076 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Bewertungsraster.ods differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Bewertungsraster.xls b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Bewertungsraster.xls new file mode 100644 index 0000000..019ddf7 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Bewertungsraster.xls differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Deckblatt.docx b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Deckblatt.docx new file mode 100644 index 0000000..84b95bd Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Deckblatt.docx differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Deckblatt.pages b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Deckblatt.pages new file mode 100644 index 0000000..2158489 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Deckblatt.pages differ diff --git a/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Dokumentation_Vorlage.odt b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Dokumentation_Vorlage.odt new file mode 100644 index 0000000..c4a97c9 Binary files /dev/null and b/m122/M122/Pruefungen/MP-CH-122-1372/MP-CH-122-1372_Dokumentation_Vorlage.odt differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/.DS_Store b/m122/M122/Pruefungen/Prüfung 1a/.DS_Store new file mode 100644 index 0000000..c2141cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/Pruefung1a.pdf b/m122/M122/Pruefungen/Prüfung 1a/Pruefung1a.pdf new file mode 100644 index 0000000..e96f168 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/Pruefung1a.pdf differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/Pruefung1a.tex b/m122/M122/Pruefungen/Prüfung 1a/Pruefung1a.tex new file mode 100644 index 0000000..6ca95c1 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/Pruefung1a.tex @@ -0,0 +1,344 @@ +\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{amssymb} + + +%\usepackage[ngerman]{babel, translator} + + +%\usepackage[utf8x]{inputenc} +\usepackage[left=2.5cm,top=2cm,right=2cm,bottom=4cm]{geometry} + +%Code listings +\usepackage{listings} +\usepackage{minted} +\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} \\M122 - Prüfung 1\\ M.Bischof\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} +M122 - Powershell - Prüfung 1 Serie a +\end{huge} +\vspace{10pt}\\ +\begin{quote} +\end{quote} + +\vspace{20pt} +{\bf{Erlaubte Hilfsmittel :}} +\begin{itemize} +\item Alle Hilfsmittel ausser Netzwerkkommunikation ({\bf{LAN-Kabel entfernen!}}) +\end{itemize} +{\bf{Generell nicht erlaubt ist:}} +\begin{itemize} +\item Abschreiben von der Nachbarprüfung oder Weitergeben von Prüfungen/Prüfungsresultaten innerhalb der Klasse. Kommunikation über Handy oder Computernetzwerk. +\end{itemize} +Jeglicher Verstoss gegen diese Regeln führt umgehend zum Ausschluss aus der Prüfung und der Note 1. +\vspace{30pt} +\\ +Name: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\hspace{30pt} +Klasse: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_} +\vspace{50pt} +Datum: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +\begin{tabular}{||p{3 cm}@{}|c|r||} + & & \\ +Aufgabe & max. Punkte & erreichte Punkte \\ + & & \\ + +1a & 1 & \\ +1b & 1 & \\ +1c & 1 & \\ +1d & 1 & \\ +1e & 1 & \\ + +2a & 4 & \\ +2b & 2 & \\ +2c & 2 & \\ +2d & 4 & \\ + +3a & 2 & \\ +3b & 3 & \\ +3c & 13 & \\ + + + & & \\ + Total & 35 & \\ + +\end{tabular} +\end{center} + +\newpage + +\noindent {\Large{\bf{Teil 1 - Kurzaufgaben}}}\\ + +\noindent{\bf{Aufgabe - 1a (1 Punkt)}} Verzeichnisinhalt auflisten - +Kreuzen sie {\bf{alle richtigen Aussagen}} an.\\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Mit welchen Befehlen können sie den Inhalt eines Verzeichnisses auflisten? \\ +\begin{itemize} +\item \verb|Get-ChildItem| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|Get-Children| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|Get-Child| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|dir| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +\vspace{9pt} +{\bf{Aufgabe - 1b (1 Punkt)}} Wildcards - +Kreuzen sie {\bf{die richtige Aussage}} an \\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Wofür steht das \verb|?|-Zeichen in Verbindung mit einem Commandlet? +\begin{itemize} +\item Beliebige viele Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item 0 oder beliebig viele Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item genau 1 beliebiges Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Dieses Zeichen kann man mit Commandlets nicht verwenden \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +\vspace{9pt} +\noindent{\bf{Aufgabe - 1c (1 Punkt)}} [abc]* - +Kreuzen sie {\bf{die richtige Aussage}} an \\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Was bedeutet [abc]* in der Verwendung mit einem Commandlet?\begin{itemize} +\item Es muss zu Beginn {\bf{genau}} der Zeichenfolge \verb|abc| entsprechen, danach dürfen beliebig viele Zeichen kommen. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Dies ist eine Auswahl. Es dürfen zu Beginn die Zeichen \verb|a, b| oder \verb|c| vorkommen, aber jeweils nur eines davon. Danach dürfen beliebig viele Zeichen kommen. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Es dürfen beliebig viele Kombinationen aus den Zeichen \verb|a, b| und \verb|c| kommen, also zB. \verb|ab|, \verb|bac|, \verb|aaa|, usw. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +\vspace{9pt} +\noindent{\bf{Aufgabe - 1d (1 Punkt)}} - Get-Process - +Was macht folgendes Commandlet? +\definecolor{bg}{rgb}{0.95,0.95,0.95} +\begin{minted}[frame=none,mathescape]{java} +Get-Process s*e +\end{minted} +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\newpage +\noindent{\bf{Aufgabe - 1e (1 Punkt)}} - Alias - +Geben sie den Befehl an, welcher ein Alias \verb|editor| auf das Programm \verb|notepad.exe| erstellt.\\\\ +\definecolor{bg}{rgb}{0.95,0.95,0.95} +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\vspace{20pt} + +\noindent {\Large{\bf{Teil 2 - Codestücke}}}\\ + + +\noindent{\bf{Aufgabe - 2a (4 Punkte, 1 Punkt pro Zeile)}} - Pipelineausdruck\\\\ +Nachfolgend ist eine Pipelineausdruck gegeben. Geben sie bei jeder Zeile an, was genau gemacht wird.\\\\ +\vspace{9pt} +\begin{minted}[linenos=true,frame=none,mathescape,bgcolor=bg]{powershell} +Get-ChildItem "C:\" -r + | Where-Object { $_.Name -like "*pic*" } + | Select-Object Name, Length + | Sort-Object Length +\end{minted} +\\ +{\bf{Hinweise: }} Aus Platzgründen und zur Vereinfachung der Aufgabenstellung ist der Ausdruck auf mehrere Zeilen verteilt. Es versteht sich aber von selbst, dass dieser bei der Ausführung auf eine zusammenhängende Zeile gehört. Erklären sie exakt (auch Parameter beachten, usw.) und unmissverständlich.\\\\ +Antwort: \\\\ +1: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +2: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +3: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +4: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\\\ +\noindent{\bf{Aufgabe - 2b (2 Punkte)}} - Pipelineausdruck\\\\ +Erklären sie in Ihren eigenen Worten, was folgeder Pipelineausdruck macht:\\\\ +\begin{minted}[frame=none,mathescape,bgcolor=bg]{powershell} +Get-Process | Where-Object { $_.Id -gt 500 -and $_.ws -gt 50MB} +\end{minted} +\\\\Antwort: \\ +\texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +\newpage +\noindent{\bf{Aufgabe - 2c (2 Punkte)}} - Prozess abschiessen\\\\ +Folgender Pipelineausdruck findet den Prozess mit der Id 1234. Sie möchten diesen Prozess abschiessen (kill). Ergänzen sie den Ausdruck, so dass der Prozess abgeschossen wird. \\\\ +\begin{minted}[frame=none,mathescape,bgcolor=bg]{powershell} +Get-Process | Where-Object { $_.Id -eq "1234" } +\end{minted} +\\\\{\bf{Hinweise: }} Sie können ihre Lösung direkt in den Ausdruck hineinschreiben. Es gibt mehrere korrekte Lösungen.\\\\ + +\noindent{\bf{Aufgabe - 2d (4 Punkte, Zeile 1 = 2 Punkte, Zeile 2 und 3 je 1 Punkt)}} - Parameter validieren\\\\ +Nachfolgen haben sie ein kleines Skript. Sie sollen den Skriptinhalt nun ergänzen, so dass folgende Punkte gewährleistet sind: +\begin{itemize} +\item \verb|zahl1| kann nur Werte von 10 bis 1000 annehmen +\item \verb|zahl2| kann nur Werte von -1000 bis 10 annehmen +\item Auf den Zeilen 2 und 3 soll nach der Ausgabe (\emph{Die ... Zahl ist: }) auch noch der Wert der entsprechenden Variable ausgegeben werden +\end{itemize} +\begin{minted}[linenos=true,frame=none,mathescape,bgcolor=bg]{powershell} +param( [int] $zahl1, [int] $zahl2) +"Die erste Zahl ist: " +"Die zweite Zahl ist: " +\end{minted} +\\\\\\{\bf{Hinweise: }} Sie können ihre Lösung direkt in das Skript hineinschreiben. \\\\ + + + +\noindent {\Large{\bf{Teil 3 - Programmieraufgaben}}}\\ + + \noindent{\bf{Aufgabe - 3a (2 Punkte)}} - Prozesse finden\\\\ +Finden sie alle laufenden Prozesse, welche mit dem Buchstaben e enden und aus insgesamt exakt 8 Zeichen bestehen (Geben sie den Befehl an).\\\\ +Lösung:\\ + \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\\\ +\noindent{\bf{Aufgabe - 3b (3 Punkte)}} - dll Dateien finden\\\\ +Formulieren sie einen Pipelineausdruck, welcher alle .dll Dateien im Ordner \verb|C:\windows| (inkl. aller Unterordner) findet und die Suchresultate in der Datei \verb|C:\windows\resultate.txt| abspeichert.\\\\ +Lösung:\\ + \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} + + + + \noindent{\bf{Aufgabe - 3c (13 Punkte)}} - Skript Zahlen\\\\ + Schreiben sie ein Skript, welches folgende Punkte erfüllt: + \begin{itemize} + \item Drei Zahlen können über Parameter eingegeben werden. Die Parameter heissen \verb|z1|, \verb|z2| und \verb|z3| (2 Punkte) + \item Das Skript überprüft, ob \verb|z1| grösser, kleiner oder gleich gross ist wie \verb|z2| und gibt eine entsprechende Information aus (\emph{z1 ist grösser als z2}, usw.). (4 Punkte) + \item Das Skript berechnet den Durchschnitt aller drei Zahlen und gibt diesen aus (Durchschnitt = Summe aller Zahlen / Anzahl Zahlen) (2 Punkte) + \item Das Skript beinhaltet einen Array \verb|$infoArray| (5 Punkte) . Dieser Array soll 4 Werte abspeichern: + \begin{enumerate} + \item Summe der drei Zahlen (1P) + \item Summe der drei Zahlen negiert (alle Zahlen negativ machen und aufsummieren) (1P) + \item Durchschnitt (siehe vorherige Teilaufgabe) (1P) + \item Den Wert 1 falls \verb|z1| grösser als \verb|z2| ist, 0 falls gleich gross und -1 falls kleiner (Siehe auch 2. Teilaufgabe) (2P) + \end{enumerate} + Die Werte sollen in der angegebenen Reihenfolge abgespeichert werden. D.h. an der Stelle \verb|$infoArray[0]| befindet sich die Summe der drei Zahlen, usw. + \end{itemize} + Lösung (ganzes Skript hier aufschreiben) : + + + + + + + +\end{document} + + + + + diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/0657EEB91C8B4AB2F9976CEEF52B87D636D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/0657EEB91C8B4AB2F9976CEEF52B87D636D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..21779df --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/0657EEB91C8B4AB2F9976CEEF52B87D636D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}ChildItem} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}C:\PYGdefaultZbs{}\PYGdefaultZdq{}} \PYGdefault{n}{\PYGdefaultZhy{}r} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Name} \PYGdefault{o}{\PYGdefaultZhy{}like} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}*pic*\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Select\PYGdefaultZhy{}Object} \PYGdefault{n}{Name}\PYGdefault{p}{,} \PYGdefault{n}{Length} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Sort\PYGdefaultZhy{}Object} \PYGdefault{n}{Length} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/0FDC86AE8E127F390BBE262C800FCC3536D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/0FDC86AE8E127F390BBE262C800FCC3536D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..dd3d215 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/0FDC86AE8E127F390BBE262C800FCC3536D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}ChildItem} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}C:\PYGdefaultZbs{}Program Files\PYGdefaultZbs{}\PYGdefaultZdq{}} \PYGdefault{n}{\PYGdefaultZhy{}r} \PYGdefault{n}{\PYGdefaultZhy{}filter} \PYGdefault{p}{*.}\PYGdefault{n}{jpg} \PYGdefault{err}{‘} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Length} \PYGdefault{o}{\PYGdefaultZhy{}lt} \PYGdefault{n}{30000} \PYGdefault{p}{\PYGdefaultZcb{}} \PYGdefault{err}{‘} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Select\PYGdefaultZhy{}Object} \PYGdefault{n}{Name}\PYGdefault{p}{,} \PYGdefault{n}{Length} \PYGdefault{err}{‘} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Sort\PYGdefaultZhy{}Object} \PYGdefault{n}{Name} \PYGdefault{err}{‘} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/4149661F3394967FB586A0BDCECAD5EC36D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/4149661F3394967FB586A0BDCECAD5EC36D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..1743602 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/4149661F3394967FB586A0BDCECAD5EC36D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Id} \PYGdefault{o}{\PYGdefaultZhy{}gt} \PYGdefault{n}{500} \PYGdefault{o}{\PYGdefaultZhy{}and} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{ws} \PYGdefault{o}{\PYGdefaultZhy{}gt} \PYGdefault{n}{50MB}\PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/514945E3C48AEE9B3EAC3B07E9F42D1120DAA0FDE0B47C2EF3C517CE8CB99F7E.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/514945E3C48AEE9B3EAC3B07E9F42D1120DAA0FDE0B47C2EF3C517CE8CB99F7E.pygtex new file mode 100644 index 0000000..48172aa --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/514945E3C48AEE9B3EAC3B07E9F42D1120DAA0FDE0B47C2EF3C517CE8CB99F7E.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n}{Get}\PYGdefault{o}{\PYGdefaultZhy{}}\PYGdefault{n}{Process} \PYGdefault{n}{s}\PYGdefault{o}{*}\PYGdefault{n}{e} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/A4F18345FA82A326ED5BBCB4F1779B3436D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/A4F18345FA82A326ED5BBCB4F1779B3436D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..888a71d --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/A4F18345FA82A326ED5BBCB4F1779B3436D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Id} \PYGdefault{o}{\PYGdefaultZhy{}eq} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}1234\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/C735146A9856B990FB389FF33DDC174136D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/C735146A9856B990FB389FF33DDC174136D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..f0c7c69 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/C735146A9856B990FB389FF33DDC174136D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k}{param}\PYGdefault{p}{(} \PYGdefault{n+no}{[int]} \PYGdefault{n+nv}{\PYGdefaultZdl{}zahl1}\PYGdefault{p}{,} \PYGdefault{n+no}{[int]} \PYGdefault{n+nv}{\PYGdefaultZdl{}zahl2}\PYGdefault{p}{)} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die erste Zahl ist: \PYGdefaultZdq{}} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die zweite Zahl ist: \PYGdefaultZdq{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/D41D8CD98F00B204E9800998ECF8427E36D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/D41D8CD98F00B204E9800998ECF8427E36D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..ed2442b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/D41D8CD98F00B204E9800998ECF8427E36D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] + +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-Pruefung1a/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..63e07b8 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,10 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{int} \PYGdefault{o}{[]} \PYGdefault{n}{fourNumbers} \PYGdefault{o}{=} \PYGdefault{k}{new} \PYGdefault{k+kt}{int}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{4}\PYGdefault{o}{];} +\PYGdefault{k+kt}{int} \PYGdefault{n}{ende} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{4}\PYGdefault{o}{;} +\PYGdefault{k+kt}{int} \PYGdefault{n}{index} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{;} + +\PYGdefault{k}{do}\PYGdefault{o}{\PYGdefaultZob{}} + \PYGdefault{n}{fourNumbers}\PYGdefault{o}{[}\PYGdefault{n}{index}\PYGdefault{o}{]} \PYGdefault{o}{=} \PYGdefault{n}{index}\PYGdefault{o}{;} + \PYGdefault{n}{index}\PYGdefault{o}{++;} +\PYGdefault{o}{\PYGdefaultZcb{}}\PYGdefault{k}{while}\PYGdefault{o}{(}\PYGdefault{n}{index} \PYGdefault{o}{!=} \PYGdefault{n}{ende}\PYGdefault{o}{)} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..bebacdd --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kd}{public} \PYGdefault{k+kd}{static} \PYGdefault{k+kt}{void} \PYGdefault{n+nf}{main}\PYGdefault{o}{(}\PYGdefault{n}{String}\PYGdefault{o}{[]} \PYGdefault{n}{args}\PYGdefault{o}{)} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..ab55f5c --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{double}\PYGdefault{o}{[][]} \PYGdefault{n}{coordinates} \PYGdefault{o}{=} +\PYGdefault{o}{\PYGdefaultZob{}\PYGdefaultZob{}}\PYGdefault{l+s}{\PYGdefaultZdq{}34.3433 \PYGdefaultZdq{}}\PYGdefault{o}{,} \PYGdefault{l+s}{\PYGdefaultZdq{}56.34534\PYGdefaultZdq{}}\PYGdefault{o}{\PYGdefaultZcb{},} + \PYGdefault{o}{\PYGdefaultZob{}}\PYGdefault{l+s}{\PYGdefaultZdq{}33.2342\PYGdefaultZdq{}}\PYGdefault{o}{,} \PYGdefault{l+s}{\PYGdefaultZdq{}60.34544\PYGdefaultZdq{}}\PYGdefault{o}{\PYGdefaultZcb{}\PYGdefaultZcb{};} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..288e390 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,7 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{int} \PYGdefault{o}{[]} \PYGdefault{n}{noten} \PYGdefault{o}{=} \PYGdefault{o}{\PYGdefaultZob{}}\PYGdefault{l+m+mf}{6.0}\PYGdefault{o}{,} \PYGdefault{l+m+mi}{3}\PYGdefault{o}{,} \PYGdefault{l+m+mf}{5.5}\PYGdefault{o}{,} \PYGdefault{l+m+mf}{4.5}\PYGdefault{o}{,} \PYGdefault{l+m+mi}{5}\PYGdefault{o}{\PYGdefaultZcb{};} +\PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{i} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{\PYGdefaultZlt{}=}\PYGdefault{n}{noten}\PYGdefault{o}{.}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{n}{durchschnitt} \PYGdefault{o}{+=} \PYGdefault{n}{noten}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{];} +\PYGdefault{o}{\PYGdefaultZcb{}} +\PYGdefault{n}{System}\PYGdefault{o}{.}\PYGdefault{n+na}{out}\PYGdefault{o}{.}\PYGdefault{n+na}{println}\PYGdefault{o}{(}\PYGdefault{l+s}{\PYGdefaultZdq{}Notendurchschnitt: \PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{durchschnitt} \PYGdefault{o}{/} \PYGdefault{o}{(}\PYGdefault{n}{noten}\PYGdefault{o}{.}\PYGdefault{n+na}{length} \PYGdefault{o}{\PYGdefaultZhy{}} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{));} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..1c16192 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,13 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{double} \PYGdefault{o}{[][]} \PYGdefault{n}{coordinates} \PYGdefault{o}{=} \PYGdefault{k}{new} \PYGdefault{k+kt}{double}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{10}\PYGdefault{o}{][}\PYGdefault{l+m+mi}{2}\PYGdefault{o}{];} +\PYGdefault{c+cm}{/**} +\PYGdefault{c+cm}{** Array wird mit zufaelligen Koordinaten gefuellt, zB.} +\PYGdefault{c+cm}{** 34.53434 und 56.9345 Laengen\PYGdefaultZhy{} und Breitengrad} +\PYGdefault{c+cm}{**/} +\PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{i} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{0}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{\PYGdefaultZlt{}}\PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{0}\PYGdefault{o}{].}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{y} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{0}\PYGdefault{o}{;} \PYGdefault{n}{y} \PYGdefault{o}{\PYGdefaultZlt{}} \PYGdefault{n}{coordinates}\PYGdefault{o}{.}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{y}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{n}{System}\PYGdefault{o}{.}\PYGdefault{n+na}{out}\PYGdefault{o}{.}\PYGdefault{n+na}{println}\PYGdefault{o}{(}\PYGdefault{l+s}{\PYGdefaultZdq{}Die coordinaten Nr.\PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{i} \PYGdefault{o}{+} \PYGdefault{l+s}{\PYGdefaultZdq{} lauten: \PYGdefaultZdq{}} + \PYGdefault{o}{+} \PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{][}\PYGdefault{n}{y}\PYGdefault{o}{]} \PYGdefault{o}{+} \PYGdefault{l+s}{\PYGdefaultZdq{} und: \PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{][}\PYGdefault{n}{y}\PYGdefault{o}{]);} + \PYGdefault{o}{\PYGdefaultZcb{}} +\PYGdefault{o}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1a/_minted-PruefungITeil1/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/.DS_Store b/m122/M122/Pruefungen/Prüfung 1a/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/A2.png b/m122/M122/Pruefungen/Prüfung 1a/img/A2.png new file mode 100644 index 0000000..0e3a61a Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/A2.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/bfsulogo.jpg b/m122/M122/Pruefungen/Prüfung 1a/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/bfsulogo.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/bzulogo.png b/m122/M122/Pruefungen/Prüfung 1a/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/bzulogo.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/calvin.jpg b/m122/M122/Pruefungen/Prüfung 1a/img/calvin.jpg new file mode 100644 index 0000000..d65f5b2 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/calvin.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/s1.png b/m122/M122/Pruefungen/Prüfung 1a/img/s1.png new file mode 100644 index 0000000..b571d27 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/s1.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/s2.png b/m122/M122/Pruefungen/Prüfung 1a/img/s2.png new file mode 100644 index 0000000..4a20a52 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/s2.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/s3.png b/m122/M122/Pruefungen/Prüfung 1a/img/s3.png new file mode 100644 index 0000000..f49451a Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/s3.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/s4.png b/m122/M122/Pruefungen/Prüfung 1a/img/s4.png new file mode 100644 index 0000000..7a9dcc6 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/s4.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/s5.png b/m122/M122/Pruefungen/Prüfung 1a/img/s5.png new file mode 100644 index 0000000..496bc72 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/s5.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/s6.png b/m122/M122/Pruefungen/Prüfung 1a/img/s6.png new file mode 100644 index 0000000..a7a80dd Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/s6.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1a/img/s7.png b/m122/M122/Pruefungen/Prüfung 1a/img/s7.png new file mode 100644 index 0000000..19504cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1a/img/s7.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/.DS_Store b/m122/M122/Pruefungen/Prüfung 1b/.DS_Store new file mode 100644 index 0000000..c2141cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/Pruefung1b.pdf b/m122/M122/Pruefungen/Prüfung 1b/Pruefung1b.pdf new file mode 100644 index 0000000..821a6f2 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/Pruefung1b.pdf differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/Pruefung1b.tex b/m122/M122/Pruefungen/Prüfung 1b/Pruefung1b.tex new file mode 100644 index 0000000..f0c6d48 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/Pruefung1b.tex @@ -0,0 +1,336 @@ +\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{amssymb} + + +%\usepackage[ngerman]{babel, translator} + + +%\usepackage[utf8x]{inputenc} +\usepackage[left=2.5cm,top=2cm,right=2cm,bottom=4cm]{geometry} + +%Code listings +\usepackage{listings} +\usepackage{minted} +\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} \\M122 - Prüfung 1\\ M.Bischof\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} +M122 - Powershell - Prüfung 1 Serie b +\end{huge} +\vspace{10pt}\\ + +\vspace{20pt} +{\bf{Erlaubte Hilfsmittel :}} +\begin{itemize} +\item Alle Hilfsmittel ausser Netzwerkkommunikation ({\bf{LAN-Kabel entfernen!}}) +\end{itemize} +{\bf{Generell nicht erlaubt ist:}} +\begin{itemize} +\item Abschreiben von der Nachbarprüfung oder Weitergeben von Prüfungen/Prüfungsresultaten innerhalb der Klasse. Kommunikation über Handy oder Computernetzwerk. +\end{itemize} +Jeglicher Verstoss gegen diese Regeln führt umgehend zum Ausschluss aus der Prüfung und der Note 1. +\vspace{30pt} +\\ +Name: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\hspace{30pt} +Klasse: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_} +\vspace{50pt} +Datum: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +\begin{tabular}{||p{3 cm}@{}|c|r||} + & & \\ +Aufgabe & max. Punkte & erreichte Punkte \\ + & & \\ + +1a & 1 & \\ +1b & 1 & \\ +1c & 1 & \\ +1d & 1 & \\ +1e & 1 & \\ + +2a & 2 & \\ +2b & 4 & \\ +2c & 4 & \\ +2d & 2 & \\ + +3a & 3 & \\ +3b & 2 & \\ +3c & 13 & \\ + + + & & \\ + Total & 35 & \\ + +\end{tabular} +\end{center} + +\newpage + +\noindent {\Large{\bf{Teil 1 - Kurzaufgaben}}}\\ +{\bf{Aufgabe - 1a (1 Punkt)}} Wildcards - +Kreuzen sie {\bf{die richtige Aussage}} an \\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Wofür steht das \verb|?|-Zeichen in Verbindung mit einem Commandlet? +\begin{itemize} +\item genau 1 beliebiges Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Dieses Zeichen kann man mit Commandlets nicht verwenden \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Beliebige viele Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item 0 oder beliebig viele Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +\vspace{9pt} +\noindent{\bf{Aufgabe - 1b (1 Punkt)}} Verzeichnisinhalt auflisten - +Kreuzen sie {\bf{alle richtigen Aussagen}} an.\\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Mit welchen Befehlen können sie den Inhalt eines Verzeichnisses auflisten? \\ +\begin{itemize} +\item \verb|Get-Child| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|dir| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|Get-Children| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|Get-ChildItem| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} + +\vspace{9pt} +\noindent{\bf{Aufgabe - 1c (1 Punkt)}} [cde]* - +Kreuzen sie {\bf{die richtige Aussage}} an \\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Was bedeutet [cde]* in der Verwendung mit einem Commandlet?\begin{itemize} +\item Dies ist eine Auswahl. Es dürfen zu Beginn die Zeichen \verb|c, d| oder \verb|e| vorkommen, aber jeweils nur eines davon. Danach dürfen beliebig viele Zeichen kommen. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Es dürfen beliebig viele Kombinationen aus den Zeichen \verb|c, d| und \verb|e| kommen, also zB. \verb|cd|, \verb|dec|, \verb|ccc|, usw. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Es muss zu Beginn {\bf{genau}} der Zeichenfolge \verb|cde| entsprechen, danach dürfen beliebig viele Zeichen kommen. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} + +\end{itemize} +\vspace{9pt} +\noindent{\bf{Aufgabe - 1d (1 Punkt)}} - Alias - +Geben sie den Befehl an, welcher ein Alias \verb|ed| auf das Programm \verb|notepad.exe| erstellt.\\\\ +\definecolor{bg}{rgb}{0.95,0.95,0.95} +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\newpage +\noindent{\bf{Aufgabe - 1e (1 Punkt)}} - Get-Process - +Was macht folgendes Commandlet? +\definecolor{bg}{rgb}{0.95,0.95,0.95} +\begin{minted}[frame=none,mathescape]{java} +Get-Process t*e +\end{minted} +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\\\ + +\noindent {\Large{\bf{Teil 2 - Codestücke}}}\\ + +\noindent{\bf{Aufgabe - 2a (2 Punkte)}} - Pipelineausdruck\\\\ +Erklären sie in Ihren eigenen Worten, was folgeder Pipelineausdruck macht:\\\\ +\begin{minted}[frame=none,mathescape,bgcolor=bg]{powershell} +Get-Process | Where-Object { $_.Id -lt 2000 -and $_.ws -lt 100MB} +\end{minted} +\\\\Antwort: \\ +\texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ + +\noindent{\bf{Aufgabe - 2b (4 Punkte, 1 Punkt pro Zeile)}} - Pipelineausdruck\\\\ +Nachfolgend ist eine Pipelineausdruck gegeben. Geben sie bei jeder Zeile an, was genau gemacht wird.\\\\ +\vspace{9pt} +\begin{minted}[linenos=true,frame=none,mathescape,bgcolor=bg]{powershell} +Get-ChildItem "C:\" -r + | Where-Object { $_.Name -like "*alt*" } + | Select-Object Name, Length + | Sort-Object Name +\end{minted} +\\ +{\bf{Hinweise: }} Aus Platzgründen und zur Vereinfachung der Aufgabenstellung ist der Ausdruck auf mehrere Zeilen verteilt. Es versteht sich aber von selbst, dass dieser bei der Ausführung auf eine zusammenhängende Zeile gehört. Erklären sie exakt (auch Parameter beachten, usw.) und unmissverständlich.\\\\ +Antwort: \\\\ +1: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +2: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +3: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +4: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\\\ + +\newpage + +\noindent{\bf{Aufgabe - 2c (4 Punkte, Zeile 1 = 2 Punkte, Zeile 2 und 3 je 1 Punkt)}} - Parameter validieren\\\\ +Nachfolgen haben sie ein kleines Skript. Sie sollen den Skriptinhalt nun ergänzen, so dass folgende Punkte gewährleistet sind: +\begin{itemize} +\item \verb|str1| darf nur 2 bis 10 Zeichen lang sein +\item \verb|str2| darf nur 11 bis 20 Zeichen lang sein +\item Auf den Zeilen 2 und 3 soll nach der Ausgabe (\emph{Die ... Zeichenkette ist: }) auch noch der Wert der entsprechenden Variable ausgegeben werden. +\end{itemize} +\begin{minted}[linenos=true,frame=none,mathescape,bgcolor=bg]{powershell} +param( [string] $str1, [string] $str2) +"Die erste Zeichenkette ist: " +"Die zweite Zeichenkette ist: " +\end{minted} +\\\\\\{\bf{Hinweise: }} Sie können ihre Lösung direkt in das Skript hineinschreiben. \\\\ + +\noindent{\bf{Aufgabe - 2d (2 Punkte)}} - Prozess abschiessen\\\\ +Folgender Pipelineausdruck findet den Prozess mit den Namen snippingtool. Sie möchten diesen Prozess abschiessen (kill). Ergänzen sie den Ausdruck, so dass der Prozess abgeschossen wird. \\\\ +\begin{minted}[frame=none,mathescape,bgcolor=bg]{powershell} +Get-Process | Where-Object { $_.Name -eq "snippingtool" } +\end{minted} +\\\\{\bf{Hinweise: }} Sie können ihre Lösung direkt in den Ausdruck hineinschreiben. Es gibt mehrere korrekte Lösungen.\\\\ + +\noindent {\Large{\bf{Teil 3 - Programmieraufgaben}}}\\ + +\noindent{\bf{Aufgabe - 3a (3 Punkte)}} - Exe Dateien finden\\\\ +Formulieren sie einen Pipelineausdruck, welcher alle exe Dateien im Ordner \verb|C:\windows| (inkl. aller Unterordner) findet und die Suchresultate in der Datei \verb|C:\windows\resultate.txt| abspeichert.\\\\ +Lösung:\\ + \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ + + \noindent{\bf{Aufgabe - 3b (2 Punkte)}} - Prozesse finden\\\\ +Finden sie alle laufenden Prozesse, welche mit dem Buchstaben s beginnen und aus insgesamt 6 Zeichen bestehen (Geben sie den Befehl an).\\\\ +Lösung:\\ + \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} + + \noindent{\bf{Aufgabe - 3c (13 Punkte)}} - Skript Zahlen\\\\ + Schreiben sie ein Skript, welches folgende Punkte erfüllt: + \begin{itemize} + \item Drei Zahlen können über Parameter eingegeben werden. Die Parameter heissen \verb|z1|, \verb|z2| und \verb|z3| (2 Punkte) + \item Das Skript überprüft, ob \verb|z1| grösser, kleiner oder gleich gross ist wie \verb|z2| und gibt eine entsprechende Information aus (\emph{z1 ist grösser als z2}, usw.). (4 Punkte) + \item Das Skript berechnet den Durchschnitt aller drei Zahlen und gibt diesen aus (Durchschnitt = Summe aller Zahlen / Anzahl Zahlen) (2 Punkte) + \item Das Skript beinhaltet einen Array \verb|$infoArray| (5 Punkte) . Dieser Array soll 4 Werte abspeichern: + \begin{enumerate} + \item Summe der drei Zahlen (1P) + \item Summe der drei Zahlen negiert (alle Zahlen negativ machen und aufsummieren) (1P) + \item Durchschnitt (siehe vorherige Teilaufgabe) (1P) + \item Den Wert 1 falls \verb|z1| grösser als \verb|z2| ist, 0 falls gleich gross und -1 falls kleiner (Siehe auch 2. Teilaufgabe) (2P) + \end{enumerate} + Die Werte sollen in der angegebenen Reihenfolge abgespeichert werden. D.h. an der Stelle \verb|$infoArray[0]| befindet sich die Summe der drei Zahlen, usw. + \end{itemize} + Lösung (ganzes Skript hier aufschreiben) : + + +\end{document} + + + + + diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/5DD22A1A5652D6E04340A7A95A1BACE77002DCB6831DA42CF0A9FCC0342ED10B.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/5DD22A1A5652D6E04340A7A95A1BACE77002DCB6831DA42CF0A9FCC0342ED10B.pygtex new file mode 100644 index 0000000..49bdfc1 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/5DD22A1A5652D6E04340A7A95A1BACE77002DCB6831DA42CF0A9FCC0342ED10B.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k}{param}\PYGdefault{p}{(} \PYGdefault{n+no}{[string]} \PYGdefault{n+nv}{\PYGdefaultZdl{}str1}\PYGdefault{p}{,} \PYGdefault{n+no}{[string]} \PYGdefault{n+nv}{\PYGdefaultZdl{}str2}\PYGdefault{p}{)} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die erste Zeichenkette ist: \PYGdefaultZdq{}} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die zweite Zeichenkette ist: \PYGdefaultZdq{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/7192A4B91D11E3DD7C87FDD7B6DD75CC7002DCB6831DA42CF0A9FCC0342ED10B.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/7192A4B91D11E3DD7C87FDD7B6DD75CC7002DCB6831DA42CF0A9FCC0342ED10B.pygtex new file mode 100644 index 0000000..c84fcac --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/7192A4B91D11E3DD7C87FDD7B6DD75CC7002DCB6831DA42CF0A9FCC0342ED10B.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}ChildItem} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}C:\PYGdefaultZbs{}\PYGdefaultZdq{}} \PYGdefault{n}{\PYGdefaultZhy{}r} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Name} \PYGdefault{o}{\PYGdefaultZhy{}like} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}*alt*\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Select\PYGdefaultZhy{}Object} \PYGdefault{n}{Name}\PYGdefault{p}{,} \PYGdefault{n}{Length} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Sort\PYGdefaultZhy{}Object} \PYGdefault{n}{Name} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/C98DBC539B50DFB1FD92385A35B4275EE9E1622E0A3AEF2D774603039155CE44.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/C98DBC539B50DFB1FD92385A35B4275EE9E1622E0A3AEF2D774603039155CE44.pygtex new file mode 100644 index 0000000..fecfd57 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/C98DBC539B50DFB1FD92385A35B4275EE9E1622E0A3AEF2D774603039155CE44.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n}{Get}\PYGdefault{o}{\PYGdefaultZhy{}}\PYGdefault{n}{Process} \PYGdefault{n}{t}\PYGdefault{o}{*}\PYGdefault{n}{e} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/CADF3792B19D3A65301B3A0E9431A5467002DCB6831DA42CF0A9FCC0342ED10B.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/CADF3792B19D3A65301B3A0E9431A5467002DCB6831DA42CF0A9FCC0342ED10B.pygtex new file mode 100644 index 0000000..1033b2e --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/CADF3792B19D3A65301B3A0E9431A5467002DCB6831DA42CF0A9FCC0342ED10B.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Id} \PYGdefault{o}{\PYGdefaultZhy{}lt} \PYGdefault{n}{2000} \PYGdefault{o}{\PYGdefaultZhy{}and} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{ws} \PYGdefault{o}{\PYGdefaultZhy{}lt} \PYGdefault{n}{100MB}\PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/FEDB9265A66E29A96781397D86DBE3367002DCB6831DA42CF0A9FCC0342ED10B.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/FEDB9265A66E29A96781397D86DBE3367002DCB6831DA42CF0A9FCC0342ED10B.pygtex new file mode 100644 index 0000000..04efeeb --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/FEDB9265A66E29A96781397D86DBE3367002DCB6831DA42CF0A9FCC0342ED10B.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Name} \PYGdefault{o}{\PYGdefaultZhy{}eq} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}snippingtool\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-Pruefung1b/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..63e07b8 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,10 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{int} \PYGdefault{o}{[]} \PYGdefault{n}{fourNumbers} \PYGdefault{o}{=} \PYGdefault{k}{new} \PYGdefault{k+kt}{int}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{4}\PYGdefault{o}{];} +\PYGdefault{k+kt}{int} \PYGdefault{n}{ende} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{4}\PYGdefault{o}{;} +\PYGdefault{k+kt}{int} \PYGdefault{n}{index} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{;} + +\PYGdefault{k}{do}\PYGdefault{o}{\PYGdefaultZob{}} + \PYGdefault{n}{fourNumbers}\PYGdefault{o}{[}\PYGdefault{n}{index}\PYGdefault{o}{]} \PYGdefault{o}{=} \PYGdefault{n}{index}\PYGdefault{o}{;} + \PYGdefault{n}{index}\PYGdefault{o}{++;} +\PYGdefault{o}{\PYGdefaultZcb{}}\PYGdefault{k}{while}\PYGdefault{o}{(}\PYGdefault{n}{index} \PYGdefault{o}{!=} \PYGdefault{n}{ende}\PYGdefault{o}{)} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..bebacdd --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kd}{public} \PYGdefault{k+kd}{static} \PYGdefault{k+kt}{void} \PYGdefault{n+nf}{main}\PYGdefault{o}{(}\PYGdefault{n}{String}\PYGdefault{o}{[]} \PYGdefault{n}{args}\PYGdefault{o}{)} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..ab55f5c --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{double}\PYGdefault{o}{[][]} \PYGdefault{n}{coordinates} \PYGdefault{o}{=} +\PYGdefault{o}{\PYGdefaultZob{}\PYGdefaultZob{}}\PYGdefault{l+s}{\PYGdefaultZdq{}34.3433 \PYGdefaultZdq{}}\PYGdefault{o}{,} \PYGdefault{l+s}{\PYGdefaultZdq{}56.34534\PYGdefaultZdq{}}\PYGdefault{o}{\PYGdefaultZcb{},} + \PYGdefault{o}{\PYGdefaultZob{}}\PYGdefault{l+s}{\PYGdefaultZdq{}33.2342\PYGdefaultZdq{}}\PYGdefault{o}{,} \PYGdefault{l+s}{\PYGdefaultZdq{}60.34544\PYGdefaultZdq{}}\PYGdefault{o}{\PYGdefaultZcb{}\PYGdefaultZcb{};} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..288e390 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,7 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{int} \PYGdefault{o}{[]} \PYGdefault{n}{noten} \PYGdefault{o}{=} \PYGdefault{o}{\PYGdefaultZob{}}\PYGdefault{l+m+mf}{6.0}\PYGdefault{o}{,} \PYGdefault{l+m+mi}{3}\PYGdefault{o}{,} \PYGdefault{l+m+mf}{5.5}\PYGdefault{o}{,} \PYGdefault{l+m+mf}{4.5}\PYGdefault{o}{,} \PYGdefault{l+m+mi}{5}\PYGdefault{o}{\PYGdefaultZcb{};} +\PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{i} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{\PYGdefaultZlt{}=}\PYGdefault{n}{noten}\PYGdefault{o}{.}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{n}{durchschnitt} \PYGdefault{o}{+=} \PYGdefault{n}{noten}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{];} +\PYGdefault{o}{\PYGdefaultZcb{}} +\PYGdefault{n}{System}\PYGdefault{o}{.}\PYGdefault{n+na}{out}\PYGdefault{o}{.}\PYGdefault{n+na}{println}\PYGdefault{o}{(}\PYGdefault{l+s}{\PYGdefaultZdq{}Notendurchschnitt: \PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{durchschnitt} \PYGdefault{o}{/} \PYGdefault{o}{(}\PYGdefault{n}{noten}\PYGdefault{o}{.}\PYGdefault{n+na}{length} \PYGdefault{o}{\PYGdefaultZhy{}} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{));} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..1c16192 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,13 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{double} \PYGdefault{o}{[][]} \PYGdefault{n}{coordinates} \PYGdefault{o}{=} \PYGdefault{k}{new} \PYGdefault{k+kt}{double}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{10}\PYGdefault{o}{][}\PYGdefault{l+m+mi}{2}\PYGdefault{o}{];} +\PYGdefault{c+cm}{/**} +\PYGdefault{c+cm}{** Array wird mit zufaelligen Koordinaten gefuellt, zB.} +\PYGdefault{c+cm}{** 34.53434 und 56.9345 Laengen\PYGdefaultZhy{} und Breitengrad} +\PYGdefault{c+cm}{**/} +\PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{i} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{0}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{\PYGdefaultZlt{}}\PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{0}\PYGdefault{o}{].}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{y} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{0}\PYGdefault{o}{;} \PYGdefault{n}{y} \PYGdefault{o}{\PYGdefaultZlt{}} \PYGdefault{n}{coordinates}\PYGdefault{o}{.}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{y}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{n}{System}\PYGdefault{o}{.}\PYGdefault{n+na}{out}\PYGdefault{o}{.}\PYGdefault{n+na}{println}\PYGdefault{o}{(}\PYGdefault{l+s}{\PYGdefaultZdq{}Die coordinaten Nr.\PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{i} \PYGdefault{o}{+} \PYGdefault{l+s}{\PYGdefaultZdq{} lauten: \PYGdefaultZdq{}} + \PYGdefault{o}{+} \PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{][}\PYGdefault{n}{y}\PYGdefault{o}{]} \PYGdefault{o}{+} \PYGdefault{l+s}{\PYGdefaultZdq{} und: \PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{][}\PYGdefault{n}{y}\PYGdefault{o}{]);} + \PYGdefault{o}{\PYGdefaultZcb{}} +\PYGdefault{o}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1b/_minted-PruefungITeil1/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/.DS_Store b/m122/M122/Pruefungen/Prüfung 1b/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/bfsulogo.jpg b/m122/M122/Pruefungen/Prüfung 1b/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/bfsulogo.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/bzulogo.png b/m122/M122/Pruefungen/Prüfung 1b/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/bzulogo.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/calvin.jpg b/m122/M122/Pruefungen/Prüfung 1b/img/calvin.jpg new file mode 100644 index 0000000..d65f5b2 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/calvin.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/s1.png b/m122/M122/Pruefungen/Prüfung 1b/img/s1.png new file mode 100644 index 0000000..b571d27 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/s1.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/s2.png b/m122/M122/Pruefungen/Prüfung 1b/img/s2.png new file mode 100644 index 0000000..4a20a52 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/s2.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/s3.png b/m122/M122/Pruefungen/Prüfung 1b/img/s3.png new file mode 100644 index 0000000..f49451a Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/s3.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/s4.png b/m122/M122/Pruefungen/Prüfung 1b/img/s4.png new file mode 100644 index 0000000..7a9dcc6 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/s4.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/s5.png b/m122/M122/Pruefungen/Prüfung 1b/img/s5.png new file mode 100644 index 0000000..496bc72 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/s5.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/s6.png b/m122/M122/Pruefungen/Prüfung 1b/img/s6.png new file mode 100644 index 0000000..a7a80dd Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/s6.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1b/img/s7.png b/m122/M122/Pruefungen/Prüfung 1b/img/s7.png new file mode 100644 index 0000000..19504cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1b/img/s7.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/.DS_Store b/m122/M122/Pruefungen/Prüfung 1c/.DS_Store new file mode 100644 index 0000000..c2141cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/Pruefung1c.pdf b/m122/M122/Pruefungen/Prüfung 1c/Pruefung1c.pdf new file mode 100644 index 0000000..aef6bd4 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/Pruefung1c.pdf differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/Pruefung1c.tex b/m122/M122/Pruefungen/Prüfung 1c/Pruefung1c.tex new file mode 100644 index 0000000..34ca8e5 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/Pruefung1c.tex @@ -0,0 +1,346 @@ +\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{amssymb} + + +%\usepackage[ngerman]{babel, translator} + + +%\usepackage[utf8x]{inputenc} +\usepackage[left=2.5cm,top=2cm,right=2cm,bottom=4cm]{geometry} + +%Code listings +\usepackage{listings} +\usepackage{minted} +\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} \\M122 - Prüfung 1\\ M.Bischof\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} +M122 - Powershell - Prüfung 1 Serie c +\end{huge} +\vspace{10pt}\\ +\begin{quote} +\end{quote} + +\vspace{20pt} +{\bf{Erlaubte Hilfsmittel :}} +\begin{itemize} +\item Alle Hilfsmittel ausser Netzwerkkommunikation ({\bf{LAN-Kabel entfernen!}}) +\end{itemize} +{\bf{Generell nicht erlaubt ist:}} +\begin{itemize} +\item Abschreiben von der Nachbarprüfung oder Weitergeben von Prüfungen/Prüfungsresultaten innerhalb der Klasse. Kommunikation über Handy oder Computernetzwerk. +\end{itemize} +Jeglicher Verstoss gegen diese Regeln führt umgehend zum Ausschluss aus der Prüfung und der Note 1. +\vspace{30pt} +\\ +Name: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\hspace{30pt} +Klasse: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_} +\vspace{50pt} +Datum: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +\begin{tabular}{||p{3 cm}@{}|c|r||} + & & \\ +Aufgabe & max. Punkte & erreichte Punkte \\ + & & \\ + +1a & 1 & \\ +1b & 1 & \\ +1c & 1 & \\ +1d & 1 & \\ +1e & 1 & \\ + +2a & 4 & \\ +2b & 2 & \\ +2c & 2 & \\ +2d & 4 & \\ + +3a & 2 & \\ +3b & 3 & \\ +3c & 8 & \\ +3d & 7 & \\ + + + & & \\ + Total & 37 & \\ + +\end{tabular} +\end{center} + +\newpage + +\noindent {\Large{\bf{Teil 1 - Kurzaufgaben}}}\\ + +\noindent{\bf{Aufgabe - 1a (1 Punkt)}} Verzeichnisinhalt auflisten - +Kreuzen sie {\bf{alle richtigen Aussagen}} an.\\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Mit welchen Befehlen können sie den Inhalt eines Verzeichnisses auflisten? \\ +\begin{itemize} +\item \verb|Get-ChildItem| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|Get-Children| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|Get-Child| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|dir| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +\vspace{9pt} +{\bf{Aufgabe - 1b (1 Punkt)}} Wildcards - +Kreuzen sie {\bf{die richtige Aussage}} an \\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Wofür steht das \verb|?|-Zeichen in Verbindung mit einem Commandlet? +\begin{itemize} +\item Beliebige viele Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item 0 oder beliebig viele Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item genau 1 beliebiges Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Dieses Zeichen kann man mit Commandlets nicht verwenden \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +\vspace{9pt} +\noindent{\bf{Aufgabe - 1c (1 Punkt)}} [abc]* - +Kreuzen sie {\bf{die richtige Aussage}} an \\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Was bedeutet [abc]* in der Verwendung mit einem Commandlet?\begin{itemize} +\item Es muss zu Beginn {\bf{genau}} der Zeichenfolge \verb|abc| entsprechen, danach dürfen beliebig viele Zeichen kommen. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Dies ist eine Auswahl. Es dürfen zu Beginn die Zeichen \verb|a, b| oder \verb|c| vorkommen, aber jeweils nur eines davon. Danach dürfen beliebig viele Zeichen kommen. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Es dürfen beliebig viele Kombinationen aus den Zeichen \verb|a, b| und \verb|c| kommen, also zB. \verb|ab|, \verb|bac|, \verb|aaa|, usw. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +\vspace{9pt} +\noindent{\bf{Aufgabe - 1d (1 Punkt)}} - Get-Process - +Was macht folgendes Commandlet? +\definecolor{bg}{rgb}{0.95,0.95,0.95} +\begin{minted}[frame=none,mathescape]{java} +Get-Process s*e +\end{minted} +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\newpage +\noindent{\bf{Aufgabe - 1e (1 Punkt)}} - Alias - +Geben sie den Befehl an, welcher ein Alias \verb|editor| auf das Programm \verb|notepad.exe| erstellt.\\\\ +\definecolor{bg}{rgb}{0.95,0.95,0.95} +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\vspace{20pt} + +\noindent {\Large{\bf{Teil 2 - Codestücke}}}\\ + + +\noindent{\bf{Aufgabe - 2a (4 Punkte, 1 Punkt pro Zeile)}} - Pipelineausdruck\\\\ +Nachfolgend ist eine Pipelineausdruck gegeben. Geben sie bei jeder Zeile an, was genau gemacht wird.\\\\ +\vspace{9pt} +\begin{minted}[linenos=true,frame=none,mathescape,bgcolor=bg]{powershell} +Get-ChildItem "C:\" -r + | Where-Object { $_.Name -like "*pic*" } + | Select-Object Name, Length + | Sort-Object Length +\end{minted} +\\ +{\bf{Hinweise: }} Aus Platzgründen und zur Vereinfachung der Aufgabenstellung ist der Ausdruck auf mehrere Zeilen verteilt. Es versteht sich aber von selbst, dass dieser bei der Ausführung auf eine zusammenhängende Zeile gehört. Erklären sie exakt (auch Parameter beachten, usw.) und unmissverständlich.\\\\ +Antwort: \\\\ +1: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +2: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +3: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +4: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\\\ +\noindent{\bf{Aufgabe - 2b (2 Punkte)}} - Pipelineausdruck\\\\ +Erklären sie in Ihren eigenen Worten, was folgeder Pipelineausdruck macht:\\\\ +\begin{minted}[frame=none,mathescape,bgcolor=bg]{powershell} +Get-Process | Where-Object { $_.Id -gt 500 -and $_.ws -gt 50MB} +\end{minted} +\\\\Antwort: \\ +\texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +\newpage +\noindent{\bf{Aufgabe - 2c (2 Punkte)}} - Prozess abschiessen\\\\ +Folgender Pipelineausdruck findet den Prozess mit der Id 1234. Sie möchten diesen Prozess abschiessen (kill). Ergänzen sie den Ausdruck, so dass der Prozess abgeschossen wird. \\\\ +\begin{minted}[frame=none,mathescape,bgcolor=bg]{powershell} +Get-Process | Where-Object { $_.Id -eq "1234" } +\end{minted} +\\\\{\bf{Hinweise: }} Sie können ihre Lösung direkt in den Ausdruck hineinschreiben. Es gibt mehrere korrekte Lösungen.\\\\ + +\noindent{\bf{Aufgabe - 2d (4 Punkte, Zeile 1 = 2 Punkte, Zeile 2 und 3 je 1 Punkt)}} - Parameter validieren\\\\ +Nachfolgen haben sie ein kleines Skript. Sie sollen den Skriptinhalt nun ergänzen, so dass folgende Punkte gewährleistet sind: +\begin{itemize} +\item \verb|zahl1| kann nur Werte von 10 bis 1000 annehmen +\item \verb|zahl2| kann nur Werte von -1000 bis 10 annehmen +\item Auf den Zeilen 2 und 3 soll nach der Ausgabe (\emph{Die ... Zahl ist: }) auch noch der Wert der entsprechenden Variable ausgegeben werden +\end{itemize} +\begin{minted}[linenos=true,frame=none,mathescape,bgcolor=bg]{powershell} +param( [int] $zahl1, [int] $zahl2) +"Die erste Zahl ist: " +"Die zweite Zahl ist: " +\end{minted} +\\\\\\{\bf{Hinweise: }} Sie können ihre Lösung direkt in das Skript hineinschreiben. \\\\ + + + +\noindent {\Large{\bf{Teil 3 - Programmieraufgaben}}}\\ + + \noindent{\bf{Aufgabe - 3a (2 Punkte)}} - Prozesse finden\\\\ +Finden sie alle laufenden Prozesse, welche mit dem Buchstaben e enden und aus insgesamt exakt 8 Zeichen bestehen (Geben sie den Befehl an).\\\\ +Lösung:\\ + \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\\\ +\noindent{\bf{Aufgabe - 3b (3 Punkte)}} - dll Dateien finden\\\\ +Formulieren sie einen Pipelineausdruck, welcher alle .dll Dateien im Ordner \verb|C:\windows| (inkl. aller Unterordner) findet und die Suchresultate in der Datei \verb|C:\windows\resultate.txt| abspeichert.\\\\ +Lösung:\\ + \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} + + + + \noindent{\bf{Aufgabe - 3c (8 Punkte)}} - Skript Zahlen\\\\ + Schreiben sie ein Skript, welches folgende Punkte erfüllt: + \begin{itemize} + \item Drei Zahlen können über Parameter eingegeben werden. Die Parameter heissen \verb|z1|, \verb|z2| und \verb|z3| (2 Punkte) + \item Das Skript überprüft, ob \verb|z1| grösser, kleiner oder gleich gross ist wie \verb|z2| und gibt eine entsprechende Information aus (\emph{z1 ist grösser als z2}, usw.). (4 Punkte) + \item Das Skript berechnet den Durchschnitt aller drei Zahlen und gibt diesen aus (Durchschnitt = Summe aller Zahlen / Anzahl Zahlen) (2 Punkte) + \end{itemize} + Lösung (ganzes Skript hier aufschreiben) : + +\newpage + \noindent{\bf{Aufgabe - 3d (7 Punkte)}} - Skript Schleife\\\\ + Schreiben sie ein Skript, welches folgende Punkte erfüllt: + \begin{itemize} + \item Eine Zahl kann via Parameter eingegeben werden. Der Parameter heisst \verb|zahl| (1 Punkt) + \item Das Skript beinhaltet eine for-Schleife. Die for-schleife läuft von 0 bis \verb|zahl1 - 1|, die Schrittweite ist 1 (3 Punkte) + \item Innerhalb der Schleife wird jeweils die aktuelle Uhrzeit angezeigt und eine Sekunde lang gewartet (3 Punkte) + \end{itemize} + Lösung (ganzes Skript hier aufschreiben) : + + + + + + +\end{document} + + + + + diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/00585512A4515FEA332F6CB0CE165B7136D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/00585512A4515FEA332F6CB0CE165B7136D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..34f8c9a --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/00585512A4515FEA332F6CB0CE165B7136D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}ChildItem} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}C:\PYGdefaultZbs{}\PYGdefaultZdq{}} \PYGdefault{n}{\PYGdefaultZhy{}r} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Name} \PYGdefault{o}{\PYGdefaultZhy{}like} \PYGdefault{p}{*}\PYGdefault{n}{pic}\PYGdefault{p}{*} \PYGdefault{p}{\PYGdefaultZcb{}} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Select\PYGdefaultZhy{}Object} \PYGdefault{n}{Name}\PYGdefault{p}{,} \PYGdefault{n}{Length} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Sort\PYGdefaultZhy{}Object} \PYGdefault{n}{Length} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/0FDC86AE8E127F390BBE262C800FCC3536D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/0FDC86AE8E127F390BBE262C800FCC3536D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..dd3d215 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/0FDC86AE8E127F390BBE262C800FCC3536D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}ChildItem} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}C:\PYGdefaultZbs{}Program Files\PYGdefaultZbs{}\PYGdefaultZdq{}} \PYGdefault{n}{\PYGdefaultZhy{}r} \PYGdefault{n}{\PYGdefaultZhy{}filter} \PYGdefault{p}{*.}\PYGdefault{n}{jpg} \PYGdefault{err}{‘} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Length} \PYGdefault{o}{\PYGdefaultZhy{}lt} \PYGdefault{n}{30000} \PYGdefault{p}{\PYGdefaultZcb{}} \PYGdefault{err}{‘} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Select\PYGdefaultZhy{}Object} \PYGdefault{n}{Name}\PYGdefault{p}{,} \PYGdefault{n}{Length} \PYGdefault{err}{‘} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Sort\PYGdefaultZhy{}Object} \PYGdefault{n}{Name} \PYGdefault{err}{‘} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/4149661F3394967FB586A0BDCECAD5EC36D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/4149661F3394967FB586A0BDCECAD5EC36D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..1743602 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/4149661F3394967FB586A0BDCECAD5EC36D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Id} \PYGdefault{o}{\PYGdefaultZhy{}gt} \PYGdefault{n}{500} \PYGdefault{o}{\PYGdefaultZhy{}and} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{ws} \PYGdefault{o}{\PYGdefaultZhy{}gt} \PYGdefault{n}{50MB}\PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/514945E3C48AEE9B3EAC3B07E9F42D1120DAA0FDE0B47C2EF3C517CE8CB99F7E.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/514945E3C48AEE9B3EAC3B07E9F42D1120DAA0FDE0B47C2EF3C517CE8CB99F7E.pygtex new file mode 100644 index 0000000..48172aa --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/514945E3C48AEE9B3EAC3B07E9F42D1120DAA0FDE0B47C2EF3C517CE8CB99F7E.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n}{Get}\PYGdefault{o}{\PYGdefaultZhy{}}\PYGdefault{n}{Process} \PYGdefault{n}{s}\PYGdefault{o}{*}\PYGdefault{n}{e} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/A4F18345FA82A326ED5BBCB4F1779B3436D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/A4F18345FA82A326ED5BBCB4F1779B3436D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..888a71d --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/A4F18345FA82A326ED5BBCB4F1779B3436D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Id} \PYGdefault{o}{\PYGdefaultZhy{}eq} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}1234\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/C735146A9856B990FB389FF33DDC174136D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/C735146A9856B990FB389FF33DDC174136D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..f0c7c69 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/C735146A9856B990FB389FF33DDC174136D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k}{param}\PYGdefault{p}{(} \PYGdefault{n+no}{[int]} \PYGdefault{n+nv}{\PYGdefaultZdl{}zahl1}\PYGdefault{p}{,} \PYGdefault{n+no}{[int]} \PYGdefault{n+nv}{\PYGdefaultZdl{}zahl2}\PYGdefault{p}{)} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die erste Zahl ist: \PYGdefaultZdq{}} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die zweite Zahl ist: \PYGdefaultZdq{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/D41D8CD98F00B204E9800998ECF8427E36D79739317AB1BF52FF70D1BB782BC1.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/D41D8CD98F00B204E9800998ECF8427E36D79739317AB1BF52FF70D1BB782BC1.pygtex new file mode 100644 index 0000000..ed2442b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/D41D8CD98F00B204E9800998ECF8427E36D79739317AB1BF52FF70D1BB782BC1.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] + +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1a/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/0657EEB91C8B4AB2F9976CEEF52B87D6FDC1A18C5C792428865C0C376180BF44.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/0657EEB91C8B4AB2F9976CEEF52B87D6FDC1A18C5C792428865C0C376180BF44.pygtex new file mode 100644 index 0000000..21779df --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/0657EEB91C8B4AB2F9976CEEF52B87D6FDC1A18C5C792428865C0C376180BF44.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}ChildItem} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}C:\PYGdefaultZbs{}\PYGdefaultZdq{}} \PYGdefault{n}{\PYGdefaultZhy{}r} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Name} \PYGdefault{o}{\PYGdefaultZhy{}like} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}*pic*\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Select\PYGdefaultZhy{}Object} \PYGdefault{n}{Name}\PYGdefault{p}{,} \PYGdefault{n}{Length} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Sort\PYGdefaultZhy{}Object} \PYGdefault{n}{Length} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/4149661F3394967FB586A0BDCECAD5ECFDC1A18C5C792428865C0C376180BF44.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/4149661F3394967FB586A0BDCECAD5ECFDC1A18C5C792428865C0C376180BF44.pygtex new file mode 100644 index 0000000..1743602 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/4149661F3394967FB586A0BDCECAD5ECFDC1A18C5C792428865C0C376180BF44.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Id} \PYGdefault{o}{\PYGdefaultZhy{}gt} \PYGdefault{n}{500} \PYGdefault{o}{\PYGdefaultZhy{}and} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{ws} \PYGdefault{o}{\PYGdefaultZhy{}gt} \PYGdefault{n}{50MB}\PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/514945E3C48AEE9B3EAC3B07E9F42D112BE11DAF6FB8B8EFEF36B2A148B372EA.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/514945E3C48AEE9B3EAC3B07E9F42D112BE11DAF6FB8B8EFEF36B2A148B372EA.pygtex new file mode 100644 index 0000000..48172aa --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/514945E3C48AEE9B3EAC3B07E9F42D112BE11DAF6FB8B8EFEF36B2A148B372EA.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n}{Get}\PYGdefault{o}{\PYGdefaultZhy{}}\PYGdefault{n}{Process} \PYGdefault{n}{s}\PYGdefault{o}{*}\PYGdefault{n}{e} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/A4F18345FA82A326ED5BBCB4F1779B34FDC1A18C5C792428865C0C376180BF44.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/A4F18345FA82A326ED5BBCB4F1779B34FDC1A18C5C792428865C0C376180BF44.pygtex new file mode 100644 index 0000000..888a71d --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/A4F18345FA82A326ED5BBCB4F1779B34FDC1A18C5C792428865C0C376180BF44.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Id} \PYGdefault{o}{\PYGdefaultZhy{}eq} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}1234\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/C735146A9856B990FB389FF33DDC1741FDC1A18C5C792428865C0C376180BF44.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/C735146A9856B990FB389FF33DDC1741FDC1A18C5C792428865C0C376180BF44.pygtex new file mode 100644 index 0000000..f0c7c69 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/C735146A9856B990FB389FF33DDC1741FDC1A18C5C792428865C0C376180BF44.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k}{param}\PYGdefault{p}{(} \PYGdefault{n+no}{[int]} \PYGdefault{n+nv}{\PYGdefaultZdl{}zahl1}\PYGdefault{p}{,} \PYGdefault{n+no}{[int]} \PYGdefault{n+nv}{\PYGdefaultZdl{}zahl2}\PYGdefault{p}{)} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die erste Zahl ist: \PYGdefaultZdq{}} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die zweite Zahl ist: \PYGdefaultZdq{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-Pruefung1c/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..63e07b8 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,10 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{int} \PYGdefault{o}{[]} \PYGdefault{n}{fourNumbers} \PYGdefault{o}{=} \PYGdefault{k}{new} \PYGdefault{k+kt}{int}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{4}\PYGdefault{o}{];} +\PYGdefault{k+kt}{int} \PYGdefault{n}{ende} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{4}\PYGdefault{o}{;} +\PYGdefault{k+kt}{int} \PYGdefault{n}{index} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{;} + +\PYGdefault{k}{do}\PYGdefault{o}{\PYGdefaultZob{}} + \PYGdefault{n}{fourNumbers}\PYGdefault{o}{[}\PYGdefault{n}{index}\PYGdefault{o}{]} \PYGdefault{o}{=} \PYGdefault{n}{index}\PYGdefault{o}{;} + \PYGdefault{n}{index}\PYGdefault{o}{++;} +\PYGdefault{o}{\PYGdefaultZcb{}}\PYGdefault{k}{while}\PYGdefault{o}{(}\PYGdefault{n}{index} \PYGdefault{o}{!=} \PYGdefault{n}{ende}\PYGdefault{o}{)} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..bebacdd --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kd}{public} \PYGdefault{k+kd}{static} \PYGdefault{k+kt}{void} \PYGdefault{n+nf}{main}\PYGdefault{o}{(}\PYGdefault{n}{String}\PYGdefault{o}{[]} \PYGdefault{n}{args}\PYGdefault{o}{)} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..ab55f5c --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{double}\PYGdefault{o}{[][]} \PYGdefault{n}{coordinates} \PYGdefault{o}{=} +\PYGdefault{o}{\PYGdefaultZob{}\PYGdefaultZob{}}\PYGdefault{l+s}{\PYGdefaultZdq{}34.3433 \PYGdefaultZdq{}}\PYGdefault{o}{,} \PYGdefault{l+s}{\PYGdefaultZdq{}56.34534\PYGdefaultZdq{}}\PYGdefault{o}{\PYGdefaultZcb{},} + \PYGdefault{o}{\PYGdefaultZob{}}\PYGdefault{l+s}{\PYGdefaultZdq{}33.2342\PYGdefaultZdq{}}\PYGdefault{o}{,} \PYGdefault{l+s}{\PYGdefaultZdq{}60.34544\PYGdefaultZdq{}}\PYGdefault{o}{\PYGdefaultZcb{}\PYGdefaultZcb{};} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..288e390 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,7 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{int} \PYGdefault{o}{[]} \PYGdefault{n}{noten} \PYGdefault{o}{=} \PYGdefault{o}{\PYGdefaultZob{}}\PYGdefault{l+m+mf}{6.0}\PYGdefault{o}{,} \PYGdefault{l+m+mi}{3}\PYGdefault{o}{,} \PYGdefault{l+m+mf}{5.5}\PYGdefault{o}{,} \PYGdefault{l+m+mf}{4.5}\PYGdefault{o}{,} \PYGdefault{l+m+mi}{5}\PYGdefault{o}{\PYGdefaultZcb{};} +\PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{i} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{\PYGdefaultZlt{}=}\PYGdefault{n}{noten}\PYGdefault{o}{.}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{n}{durchschnitt} \PYGdefault{o}{+=} \PYGdefault{n}{noten}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{];} +\PYGdefault{o}{\PYGdefaultZcb{}} +\PYGdefault{n}{System}\PYGdefault{o}{.}\PYGdefault{n+na}{out}\PYGdefault{o}{.}\PYGdefault{n+na}{println}\PYGdefault{o}{(}\PYGdefault{l+s}{\PYGdefaultZdq{}Notendurchschnitt: \PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{durchschnitt} \PYGdefault{o}{/} \PYGdefault{o}{(}\PYGdefault{n}{noten}\PYGdefault{o}{.}\PYGdefault{n+na}{length} \PYGdefault{o}{\PYGdefaultZhy{}} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{));} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..1c16192 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,13 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{double} \PYGdefault{o}{[][]} \PYGdefault{n}{coordinates} \PYGdefault{o}{=} \PYGdefault{k}{new} \PYGdefault{k+kt}{double}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{10}\PYGdefault{o}{][}\PYGdefault{l+m+mi}{2}\PYGdefault{o}{];} +\PYGdefault{c+cm}{/**} +\PYGdefault{c+cm}{** Array wird mit zufaelligen Koordinaten gefuellt, zB.} +\PYGdefault{c+cm}{** 34.53434 und 56.9345 Laengen\PYGdefaultZhy{} und Breitengrad} +\PYGdefault{c+cm}{**/} +\PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{i} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{0}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{\PYGdefaultZlt{}}\PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{0}\PYGdefault{o}{].}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{y} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{0}\PYGdefault{o}{;} \PYGdefault{n}{y} \PYGdefault{o}{\PYGdefaultZlt{}} \PYGdefault{n}{coordinates}\PYGdefault{o}{.}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{y}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{n}{System}\PYGdefault{o}{.}\PYGdefault{n+na}{out}\PYGdefault{o}{.}\PYGdefault{n+na}{println}\PYGdefault{o}{(}\PYGdefault{l+s}{\PYGdefaultZdq{}Die coordinaten Nr.\PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{i} \PYGdefault{o}{+} \PYGdefault{l+s}{\PYGdefaultZdq{} lauten: \PYGdefaultZdq{}} + \PYGdefault{o}{+} \PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{][}\PYGdefault{n}{y}\PYGdefault{o}{]} \PYGdefault{o}{+} \PYGdefault{l+s}{\PYGdefaultZdq{} und: \PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{][}\PYGdefault{n}{y}\PYGdefault{o}{]);} + \PYGdefault{o}{\PYGdefaultZcb{}} +\PYGdefault{o}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1c/_minted-PruefungITeil1/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/.DS_Store b/m122/M122/Pruefungen/Prüfung 1c/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/bfsulogo.jpg b/m122/M122/Pruefungen/Prüfung 1c/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/bfsulogo.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/bzulogo.png b/m122/M122/Pruefungen/Prüfung 1c/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/bzulogo.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/calvin.jpg b/m122/M122/Pruefungen/Prüfung 1c/img/calvin.jpg new file mode 100644 index 0000000..d65f5b2 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/calvin.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/s1.png b/m122/M122/Pruefungen/Prüfung 1c/img/s1.png new file mode 100644 index 0000000..b571d27 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/s1.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/s2.png b/m122/M122/Pruefungen/Prüfung 1c/img/s2.png new file mode 100644 index 0000000..4a20a52 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/s2.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/s3.png b/m122/M122/Pruefungen/Prüfung 1c/img/s3.png new file mode 100644 index 0000000..f49451a Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/s3.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/s4.png b/m122/M122/Pruefungen/Prüfung 1c/img/s4.png new file mode 100644 index 0000000..7a9dcc6 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/s4.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/s5.png b/m122/M122/Pruefungen/Prüfung 1c/img/s5.png new file mode 100644 index 0000000..496bc72 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/s5.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/s6.png b/m122/M122/Pruefungen/Prüfung 1c/img/s6.png new file mode 100644 index 0000000..a7a80dd Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/s6.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1c/img/s7.png b/m122/M122/Pruefungen/Prüfung 1c/img/s7.png new file mode 100644 index 0000000..19504cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1c/img/s7.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/.DS_Store b/m122/M122/Pruefungen/Prüfung 1d/.DS_Store new file mode 100644 index 0000000..c2141cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/Pruefung1d.pdf b/m122/M122/Pruefungen/Prüfung 1d/Pruefung1d.pdf new file mode 100644 index 0000000..7f1d94f Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/Pruefung1d.pdf differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/Pruefung1d.tex b/m122/M122/Pruefungen/Prüfung 1d/Pruefung1d.tex new file mode 100644 index 0000000..2719c95 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/Pruefung1d.tex @@ -0,0 +1,342 @@ +\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{amssymb} + + +%\usepackage[ngerman]{babel, translator} + + +%\usepackage[utf8x]{inputenc} +\usepackage[left=2.5cm,top=2cm,right=2cm,bottom=4cm]{geometry} + +%Code listings +\usepackage{listings} +\usepackage{minted} +\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} \\M122 - Prüfung 1\\ M.Bischof\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} +M122 - Powershell - Prüfung 1 Serie d +\end{huge} +\vspace{10pt}\\ + +\vspace{20pt} +{\bf{Erlaubte Hilfsmittel :}} +\begin{itemize} +\item Alle Hilfsmittel ausser Netzwerkkommunikation ({\bf{LAN-Kabel entfernen!}}) +\end{itemize} +{\bf{Generell nicht erlaubt ist:}} +\begin{itemize} +\item Abschreiben von der Nachbarprüfung oder Weitergeben von Prüfungen/Prüfungsresultaten innerhalb der Klasse. Kommunikation über Handy oder Computernetzwerk. +\end{itemize} +Jeglicher Verstoss gegen diese Regeln führt umgehend zum Ausschluss aus der Prüfung und der Note 1. +\vspace{30pt} +\\ +Name: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\hspace{30pt} +Klasse: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_} +\vspace{50pt} +Datum: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +\begin{tabular}{||p{3 cm}@{}|c|r||} + & & \\ +Aufgabe & max. Punkte & erreichte Punkte \\ + & & \\ + +1a & 1 & \\ +1b & 1 & \\ +1c & 1 & \\ +1d & 1 & \\ +1e & 1 & \\ + +2a & 2 & \\ +2b & 4 & \\ +2c & 4 & \\ +2d & 2 & \\ + +3a & 3 & \\ +3b & 2 & \\ +3c & 8 & \\ +3d & 7 & \\ + + + & & \\ + Total & 37 & \\ + +\end{tabular} +\end{center} + +\newpage + +\noindent {\Large{\bf{Teil 1 - Kurzaufgaben}}}\\ +{\bf{Aufgabe - 1a (1 Punkt)}} Wildcards - +Kreuzen sie {\bf{die richtige Aussage}} an \\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Wofür steht das \verb|?|-Zeichen in Verbindung mit einem Commandlet? +\begin{itemize} +\item genau 1 beliebiges Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Dieses Zeichen kann man mit Commandlets nicht verwenden \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Beliebige viele Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item 0 oder beliebig viele Zeichen \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +\vspace{9pt} +\noindent{\bf{Aufgabe - 1b (1 Punkt)}} Verzeichnisinhalt auflisten - +Kreuzen sie {\bf{alle richtigen Aussagen}} an.\\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Mit welchen Befehlen können sie den Inhalt eines Verzeichnisses auflisten? \\ +\begin{itemize} +\item \verb|Get-Child| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|dir| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|Get-Children| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|Get-ChildItem| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} + +\vspace{9pt} +\noindent{\bf{Aufgabe - 1c (1 Punkt)}} [cde]* - +Kreuzen sie {\bf{die richtige Aussage}} an \\ {\small(pro fehlende richtige oder falsche angekreuzte Aussage 1 Punkt Abzug)} \\\\ Was bedeutet [cde]* in der Verwendung mit einem Commandlet?\begin{itemize} +\item Dies ist eine Auswahl. Es dürfen zu Beginn die Zeichen \verb|c, d| oder \verb|e| vorkommen, aber jeweils nur eines davon. Danach dürfen beliebig viele Zeichen kommen. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Es dürfen beliebig viele Kombinationen aus den Zeichen \verb|c, d| und \verb|e| kommen, also zB. \verb|cd|, \verb|dec|, \verb|ccc|, usw. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item Es muss zu Beginn {\bf{genau}} der Zeichenfolge \verb|cde| entsprechen, danach dürfen beliebig viele Zeichen kommen. \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} + +\end{itemize} +\vspace{9pt} +\noindent{\bf{Aufgabe - 1d (1 Punkt)}} - Alias - +Geben sie den Befehl an, welcher ein Alias \verb|ed| auf das Programm \verb|notepad.exe| erstellt.\\\\ +\definecolor{bg}{rgb}{0.95,0.95,0.95} +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\newpage +\noindent{\bf{Aufgabe - 1e (1 Punkt)}} - Get-Process - +Was macht folgendes Commandlet? +\definecolor{bg}{rgb}{0.95,0.95,0.95} +\begin{minted}[frame=none,mathescape]{java} +Get-Process t*e +\end{minted} +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\\\ +\noindent {\Large{\bf{Teil 2 - Codestücke}}}\\ + +\noindent{\bf{Aufgabe - 2a (2 Punkte)}} - Pipelineausdruck\\\\ +Erklären sie in Ihren eigenen Worten, was folgeder Pipelineausdruck macht:\\\\ +\begin{minted}[frame=none,mathescape,bgcolor=bg]{powershell} +Get-Process | Where-Object { $_.Id -lt 2000 -and $_.ws -lt 100MB} +\end{minted} +\\\\Antwort: \\ +\texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ + +\noindent{\bf{Aufgabe - 2b (4 Punkte, 1 Punkt pro Zeile)}} - Pipelineausdruck\\\\ +Nachfolgend ist eine Pipelineausdruck gegeben. Geben sie bei jeder Zeile an, was genau gemacht wird.\\\\ +\vspace{9pt} +\begin{minted}[linenos=true,frame=none,mathescape,bgcolor=bg]{powershell} +Get-ChildItem "C:\" -r + | Where-Object { $_.Name -like "*alt*" } + | Select-Object Name, Length + | Sort-Object Name +\end{minted} +\\ +{\bf{Hinweise: }} Aus Platzgründen und zur Vereinfachung der Aufgabenstellung ist der Ausdruck auf mehrere Zeilen verteilt. Es versteht sich aber von selbst, dass dieser bei der Ausführung auf eine zusammenhängende Zeile gehört. Erklären sie exakt (auch Parameter beachten, usw.) und unmissverständlich.\\\\ +Antwort: \\\\ +1: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +2: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +3: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +4: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\\\ + +\newpage + +\noindent{\bf{Aufgabe - 2c (4 Punkte, Zeile 1 = 2 Punkte, Zeile 2 und 3 je 1 Punkt)}} - Parameter validieren\\\\ +Nachfolgen haben sie ein kleines Skript. Sie sollen den Skriptinhalt nun ergänzen, so dass folgende Punkte gewährleistet sind: +\begin{itemize} +\item \verb|str1| darf nur 2 bis 10 Zeichen lang sein +\item \verb|str2| darf nur 11 bis 20 Zeichen lang sein +\item Auf den Zeilen 2 und 3 soll nach der Ausgabe (\emph{Die ... Zeichenkette ist: }) auch noch der Wert der entsprechenden Variable ausgegeben werden. +\end{itemize} +\begin{minted}[linenos=true,frame=none,mathescape,bgcolor=bg]{powershell} +param( [string] $str1, [string] $str2) +"Die erste Zeichenkette ist: " +"Die zweite Zeichenkette ist: " +\end{minted} +\\\\\\{\bf{Hinweise: }} Sie können ihre Lösung direkt in das Skript hineinschreiben. \\\\ + +\noindent{\bf{Aufgabe - 2d (2 Punkte)}} - Prozess abschiessen\\\\ +Folgender Pipelineausdruck findet den Prozess mit den Namen snippingtool. Sie möchten diesen Prozess abschiessen (kill). Ergänzen sie den Ausdruck, so dass der Prozess abgeschossen wird. \\\\ +\begin{minted}[frame=none,mathescape,bgcolor=bg]{powershell} +Get-Process | Where-Object { $_.Name -eq "snippingtool" } +\end{minted} +\\\\{\bf{Hinweise: }} Sie können ihre Lösung direkt in den Ausdruck hineinschreiben. Es gibt mehrere korrekte Lösungen.\\\\ + +\noindent {\Large{\bf{Teil 3 - Programmieraufgaben}}}\\ + +\noindent{\bf{Aufgabe - 3a (3 Punkte)}} - Exe Dateien finden\\\\ +Formulieren sie einen Pipelineausdruck, welcher alle exe Dateien im Ordner \verb|C:\windows| (inkl. aller Unterordner) findet und die Suchresultate in der Datei \verb|C:\windows\resultate.txt| abspeichert.\\\\ +Lösung:\\ + \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ + + \noindent{\bf{Aufgabe - 3b (2 Punkte)}} - Prozesse finden\\\\ +Finden sie alle laufenden Prozesse, welche mit dem Buchstaben s beginnen und aus insgesamt 6 Zeichen bestehen (Geben sie den Befehl an).\\\\ +Lösung:\\ + \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} + + \noindent{\bf{Aufgabe - 3c (8 Punkte)}} - Skript Zahlen\\\\ + Schreiben sie ein Skript, welches folgende Punkte erfüllt: + \begin{itemize} + \item Drei Zahlen können über Parameter eingegeben werden. Die Parameter heissen \verb|z1|, \verb|z2| und \verb|z3| (2 Punkte) + \item Das Skript überprüft, ob \verb|z1| grösser, kleiner oder gleich gross ist wie \verb|z2| und gibt eine entsprechende Information aus (\emph{z1 ist grösser als z2}, usw.). (4 Punkte) + \item Das Skript berechnet den Durchschnitt aller drei Zahlen und gibt diesen aus (Durchschnitt = Summe aller Zahlen / Anzahl Zahlen) (2 Punkte) + \end{itemize} + Lösung (ganzes Skript hier aufschreiben) : + +\newpage + \noindent{\bf{Aufgabe - 3d (7 Punkte)}} - Skript Schleife\\\\ + Schreiben sie ein Skript, welches folgende Punkte erfüllt: + \begin{itemize} + \item Eine Zahl kann via Parameter eingegeben werden. Der Parameter heisst \verb|zahl| (1 Punkt) + \item Das Skript beinhaltet eine for-Schleife. Die for-schleife läuft von 0 bis \verb|zahl1 - 1|, die Schrittweite ist 1 (3 Punkte) + \item Innerhalb der Schleife wird jeweils die aktuelle Uhrzeit angezeigt und eine Sekunde lang gewartet (3 Punkte) + \end{itemize} + Lösung (ganzes Skript hier aufschreiben) : + + + +\newpage + + +\end{document} + + + + + diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/473A29D1A75143B23D1F986680F7E0EF7002DCB6831DA42CF0A9FCC0342ED10B.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/473A29D1A75143B23D1F986680F7E0EF7002DCB6831DA42CF0A9FCC0342ED10B.pygtex new file mode 100644 index 0000000..aa7752a --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/473A29D1A75143B23D1F986680F7E0EF7002DCB6831DA42CF0A9FCC0342ED10B.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}ChildItem} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}C:\PYGdefaultZbs{}\PYGdefaultZdq{}} \PYGdefault{n}{\PYGdefaultZhy{}r} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Name} \PYGdefault{o}{\PYGdefaultZhy{}like} \PYGdefault{p}{*}\PYGdefault{n}{alt}\PYGdefault{p}{*} \PYGdefault{p}{\PYGdefaultZcb{}} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Select\PYGdefaultZhy{}Object} \PYGdefault{n}{Name}\PYGdefault{p}{,} \PYGdefault{n}{Length} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Sort\PYGdefaultZhy{}Object} \PYGdefault{n}{Name} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/5DD22A1A5652D6E04340A7A95A1BACE77002DCB6831DA42CF0A9FCC0342ED10B.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/5DD22A1A5652D6E04340A7A95A1BACE77002DCB6831DA42CF0A9FCC0342ED10B.pygtex new file mode 100644 index 0000000..49bdfc1 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/5DD22A1A5652D6E04340A7A95A1BACE77002DCB6831DA42CF0A9FCC0342ED10B.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k}{param}\PYGdefault{p}{(} \PYGdefault{n+no}{[string]} \PYGdefault{n+nv}{\PYGdefaultZdl{}str1}\PYGdefault{p}{,} \PYGdefault{n+no}{[string]} \PYGdefault{n+nv}{\PYGdefaultZdl{}str2}\PYGdefault{p}{)} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die erste Zeichenkette ist: \PYGdefaultZdq{}} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die zweite Zeichenkette ist: \PYGdefaultZdq{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/C98DBC539B50DFB1FD92385A35B4275EE9E1622E0A3AEF2D774603039155CE44.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/C98DBC539B50DFB1FD92385A35B4275EE9E1622E0A3AEF2D774603039155CE44.pygtex new file mode 100644 index 0000000..fecfd57 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/C98DBC539B50DFB1FD92385A35B4275EE9E1622E0A3AEF2D774603039155CE44.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n}{Get}\PYGdefault{o}{\PYGdefaultZhy{}}\PYGdefault{n}{Process} \PYGdefault{n}{t}\PYGdefault{o}{*}\PYGdefault{n}{e} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/CADF3792B19D3A65301B3A0E9431A5467002DCB6831DA42CF0A9FCC0342ED10B.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/CADF3792B19D3A65301B3A0E9431A5467002DCB6831DA42CF0A9FCC0342ED10B.pygtex new file mode 100644 index 0000000..1033b2e --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/CADF3792B19D3A65301B3A0E9431A5467002DCB6831DA42CF0A9FCC0342ED10B.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Id} \PYGdefault{o}{\PYGdefaultZhy{}lt} \PYGdefault{n}{2000} \PYGdefault{o}{\PYGdefaultZhy{}and} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{ws} \PYGdefault{o}{\PYGdefaultZhy{}lt} \PYGdefault{n}{100MB}\PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/FEDB9265A66E29A96781397D86DBE3367002DCB6831DA42CF0A9FCC0342ED10B.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/FEDB9265A66E29A96781397D86DBE3367002DCB6831DA42CF0A9FCC0342ED10B.pygtex new file mode 100644 index 0000000..04efeeb --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/FEDB9265A66E29A96781397D86DBE3367002DCB6831DA42CF0A9FCC0342ED10B.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Name} \PYGdefault{o}{\PYGdefaultZhy{}eq} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}snippingtool\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1b/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/5DD22A1A5652D6E04340A7A95A1BACE7B6A255A043FCA7F2A725933A59D0AE3E.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/5DD22A1A5652D6E04340A7A95A1BACE7B6A255A043FCA7F2A725933A59D0AE3E.pygtex new file mode 100644 index 0000000..49bdfc1 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/5DD22A1A5652D6E04340A7A95A1BACE7B6A255A043FCA7F2A725933A59D0AE3E.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k}{param}\PYGdefault{p}{(} \PYGdefault{n+no}{[string]} \PYGdefault{n+nv}{\PYGdefaultZdl{}str1}\PYGdefault{p}{,} \PYGdefault{n+no}{[string]} \PYGdefault{n+nv}{\PYGdefaultZdl{}str2}\PYGdefault{p}{)} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die erste Zeichenkette ist: \PYGdefaultZdq{}} +\PYGdefault{l+s+s2}{\PYGdefaultZdq{}Die zweite Zeichenkette ist: \PYGdefaultZdq{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/7192A4B91D11E3DD7C87FDD7B6DD75CCB6A255A043FCA7F2A725933A59D0AE3E.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/7192A4B91D11E3DD7C87FDD7B6DD75CCB6A255A043FCA7F2A725933A59D0AE3E.pygtex new file mode 100644 index 0000000..c84fcac --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/7192A4B91D11E3DD7C87FDD7B6DD75CCB6A255A043FCA7F2A725933A59D0AE3E.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}ChildItem} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}C:\PYGdefaultZbs{}\PYGdefaultZdq{}} \PYGdefault{n}{\PYGdefaultZhy{}r} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Name} \PYGdefault{o}{\PYGdefaultZhy{}like} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}*alt*\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Select\PYGdefaultZhy{}Object} \PYGdefault{n}{Name}\PYGdefault{p}{,} \PYGdefault{n}{Length} + \PYGdefault{p}{|} \PYGdefault{n+nb}{Sort\PYGdefaultZhy{}Object} \PYGdefault{n}{Name} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/C98DBC539B50DFB1FD92385A35B4275EF9D973693C290B9A2C03DDB71F028732.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/C98DBC539B50DFB1FD92385A35B4275EF9D973693C290B9A2C03DDB71F028732.pygtex new file mode 100644 index 0000000..fecfd57 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/C98DBC539B50DFB1FD92385A35B4275EF9D973693C290B9A2C03DDB71F028732.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n}{Get}\PYGdefault{o}{\PYGdefaultZhy{}}\PYGdefault{n}{Process} \PYGdefault{n}{t}\PYGdefault{o}{*}\PYGdefault{n}{e} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/CADF3792B19D3A65301B3A0E9431A546B6A255A043FCA7F2A725933A59D0AE3E.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/CADF3792B19D3A65301B3A0E9431A546B6A255A043FCA7F2A725933A59D0AE3E.pygtex new file mode 100644 index 0000000..1033b2e --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/CADF3792B19D3A65301B3A0E9431A546B6A255A043FCA7F2A725933A59D0AE3E.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Id} \PYGdefault{o}{\PYGdefaultZhy{}lt} \PYGdefault{n}{2000} \PYGdefault{o}{\PYGdefaultZhy{}and} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{ws} \PYGdefault{o}{\PYGdefaultZhy{}lt} \PYGdefault{n}{100MB}\PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/FEDB9265A66E29A96781397D86DBE336B6A255A043FCA7F2A725933A59D0AE3E.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/FEDB9265A66E29A96781397D86DBE336B6A255A043FCA7F2A725933A59D0AE3E.pygtex new file mode 100644 index 0000000..04efeeb --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/FEDB9265A66E29A96781397D86DBE336B6A255A043FCA7F2A725933A59D0AE3E.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{Get\PYGdefaultZhy{}Process} \PYGdefault{p}{|} \PYGdefault{n+nb}{Where\PYGdefaultZhy{}Object} \PYGdefault{p}{\PYGdefaultZob{}} \PYGdefault{n+nv}{\PYGdefaultZdl{}\PYGdefaultZus{}}\PYGdefault{p}{.}\PYGdefault{n}{Name} \PYGdefault{o}{\PYGdefaultZhy{}eq} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}snippingtool\PYGdefaultZdq{}} \PYGdefault{p}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-Pruefung1d/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..63e07b8 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/154ED74DA6E3F1C9E0C924FC4B8360CA9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,10 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{int} \PYGdefault{o}{[]} \PYGdefault{n}{fourNumbers} \PYGdefault{o}{=} \PYGdefault{k}{new} \PYGdefault{k+kt}{int}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{4}\PYGdefault{o}{];} +\PYGdefault{k+kt}{int} \PYGdefault{n}{ende} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{4}\PYGdefault{o}{;} +\PYGdefault{k+kt}{int} \PYGdefault{n}{index} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{;} + +\PYGdefault{k}{do}\PYGdefault{o}{\PYGdefaultZob{}} + \PYGdefault{n}{fourNumbers}\PYGdefault{o}{[}\PYGdefault{n}{index}\PYGdefault{o}{]} \PYGdefault{o}{=} \PYGdefault{n}{index}\PYGdefault{o}{;} + \PYGdefault{n}{index}\PYGdefault{o}{++;} +\PYGdefault{o}{\PYGdefaultZcb{}}\PYGdefault{k}{while}\PYGdefault{o}{(}\PYGdefault{n}{index} \PYGdefault{o}{!=} \PYGdefault{n}{ende}\PYGdefault{o}{)} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..bebacdd --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/39AF26AAEDDA4B85BEBA955071B361469DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kd}{public} \PYGdefault{k+kd}{static} \PYGdefault{k+kt}{void} \PYGdefault{n+nf}{main}\PYGdefault{o}{(}\PYGdefault{n}{String}\PYGdefault{o}{[]} \PYGdefault{n}{args}\PYGdefault{o}{)} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..ab55f5c --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/8742162A7F7A33E581F8AC69BAC854319DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,5 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{double}\PYGdefault{o}{[][]} \PYGdefault{n}{coordinates} \PYGdefault{o}{=} +\PYGdefault{o}{\PYGdefaultZob{}\PYGdefaultZob{}}\PYGdefault{l+s}{\PYGdefaultZdq{}34.3433 \PYGdefaultZdq{}}\PYGdefault{o}{,} \PYGdefault{l+s}{\PYGdefaultZdq{}56.34534\PYGdefaultZdq{}}\PYGdefault{o}{\PYGdefaultZcb{},} + \PYGdefault{o}{\PYGdefaultZob{}}\PYGdefault{l+s}{\PYGdefaultZdq{}33.2342\PYGdefaultZdq{}}\PYGdefault{o}{,} \PYGdefault{l+s}{\PYGdefaultZdq{}60.34544\PYGdefaultZdq{}}\PYGdefault{o}{\PYGdefaultZcb{}\PYGdefaultZcb{};} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..288e390 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/B7393C45FC1A3DB0118A7D4C5BCA41CD9DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,7 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{int} \PYGdefault{o}{[]} \PYGdefault{n}{noten} \PYGdefault{o}{=} \PYGdefault{o}{\PYGdefaultZob{}}\PYGdefault{l+m+mf}{6.0}\PYGdefault{o}{,} \PYGdefault{l+m+mi}{3}\PYGdefault{o}{,} \PYGdefault{l+m+mf}{5.5}\PYGdefault{o}{,} \PYGdefault{l+m+mf}{4.5}\PYGdefault{o}{,} \PYGdefault{l+m+mi}{5}\PYGdefault{o}{\PYGdefaultZcb{};} +\PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{i} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{\PYGdefaultZlt{}=}\PYGdefault{n}{noten}\PYGdefault{o}{.}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{n}{durchschnitt} \PYGdefault{o}{+=} \PYGdefault{n}{noten}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{];} +\PYGdefault{o}{\PYGdefaultZcb{}} +\PYGdefault{n}{System}\PYGdefault{o}{.}\PYGdefault{n+na}{out}\PYGdefault{o}{.}\PYGdefault{n+na}{println}\PYGdefault{o}{(}\PYGdefault{l+s}{\PYGdefaultZdq{}Notendurchschnitt: \PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{durchschnitt} \PYGdefault{o}{/} \PYGdefault{o}{(}\PYGdefault{n}{noten}\PYGdefault{o}{.}\PYGdefault{n+na}{length} \PYGdefault{o}{\PYGdefaultZhy{}} \PYGdefault{l+m+mi}{1}\PYGdefault{o}{));} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex new file mode 100644 index 0000000..1c16192 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/C6EFD68F85E5732FDF8277BEEA4EAC339DBA7C3AEC3DCDAC3E9A99B8F0743740.pygtex @@ -0,0 +1,13 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{k+kt}{double} \PYGdefault{o}{[][]} \PYGdefault{n}{coordinates} \PYGdefault{o}{=} \PYGdefault{k}{new} \PYGdefault{k+kt}{double}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{10}\PYGdefault{o}{][}\PYGdefault{l+m+mi}{2}\PYGdefault{o}{];} +\PYGdefault{c+cm}{/**} +\PYGdefault{c+cm}{** Array wird mit zufaelligen Koordinaten gefuellt, zB.} +\PYGdefault{c+cm}{** 34.53434 und 56.9345 Laengen\PYGdefaultZhy{} und Breitengrad} +\PYGdefault{c+cm}{**/} +\PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{i} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{0}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{\PYGdefaultZlt{}}\PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{l+m+mi}{0}\PYGdefault{o}{].}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{i}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{k}{for}\PYGdefault{o}{(}\PYGdefault{k+kt}{int} \PYGdefault{n}{y} \PYGdefault{o}{=} \PYGdefault{l+m+mi}{0}\PYGdefault{o}{;} \PYGdefault{n}{y} \PYGdefault{o}{\PYGdefaultZlt{}} \PYGdefault{n}{coordinates}\PYGdefault{o}{.}\PYGdefault{n+na}{length}\PYGdefault{o}{;} \PYGdefault{n}{y}\PYGdefault{o}{++)\PYGdefaultZob{}} + \PYGdefault{n}{System}\PYGdefault{o}{.}\PYGdefault{n+na}{out}\PYGdefault{o}{.}\PYGdefault{n+na}{println}\PYGdefault{o}{(}\PYGdefault{l+s}{\PYGdefaultZdq{}Die coordinaten Nr.\PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{i} \PYGdefault{o}{+} \PYGdefault{l+s}{\PYGdefaultZdq{} lauten: \PYGdefaultZdq{}} + \PYGdefault{o}{+} \PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{][}\PYGdefault{n}{y}\PYGdefault{o}{]} \PYGdefault{o}{+} \PYGdefault{l+s}{\PYGdefaultZdq{} und: \PYGdefaultZdq{}} \PYGdefault{o}{+} \PYGdefault{n}{coordinates}\PYGdefault{o}{[}\PYGdefault{n}{i}\PYGdefault{o}{][}\PYGdefault{n}{y}\PYGdefault{o}{]);} + \PYGdefault{o}{\PYGdefaultZcb{}} +\PYGdefault{o}{\PYGdefaultZcb{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/default.pygstyle b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 1d/_minted-PruefungITeil1/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/.DS_Store b/m122/M122/Pruefungen/Prüfung 1d/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/bfsulogo.jpg b/m122/M122/Pruefungen/Prüfung 1d/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/bfsulogo.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/bzulogo.png b/m122/M122/Pruefungen/Prüfung 1d/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/bzulogo.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/calvin.jpg b/m122/M122/Pruefungen/Prüfung 1d/img/calvin.jpg new file mode 100644 index 0000000..d65f5b2 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/calvin.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/s1.png b/m122/M122/Pruefungen/Prüfung 1d/img/s1.png new file mode 100644 index 0000000..b571d27 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/s1.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/s2.png b/m122/M122/Pruefungen/Prüfung 1d/img/s2.png new file mode 100644 index 0000000..4a20a52 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/s2.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/s3.png b/m122/M122/Pruefungen/Prüfung 1d/img/s3.png new file mode 100644 index 0000000..f49451a Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/s3.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/s4.png b/m122/M122/Pruefungen/Prüfung 1d/img/s4.png new file mode 100644 index 0000000..7a9dcc6 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/s4.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/s5.png b/m122/M122/Pruefungen/Prüfung 1d/img/s5.png new file mode 100644 index 0000000..496bc72 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/s5.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/s6.png b/m122/M122/Pruefungen/Prüfung 1d/img/s6.png new file mode 100644 index 0000000..a7a80dd Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/s6.png differ diff --git a/m122/M122/Pruefungen/Prüfung 1d/img/s7.png b/m122/M122/Pruefungen/Prüfung 1d/img/s7.png new file mode 100644 index 0000000..19504cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 1d/img/s7.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/.DS_Store b/m122/M122/Pruefungen/Prüfung 2a/.DS_Store new file mode 100644 index 0000000..c2141cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/Pruefung2a.pdf b/m122/M122/Pruefungen/Prüfung 2a/Pruefung2a.pdf new file mode 100644 index 0000000..9e4fac4 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/Pruefung2a.pdf differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/Pruefung2a.tex b/m122/M122/Pruefungen/Prüfung 2a/Pruefung2a.tex new file mode 100644 index 0000000..0e3ca1d --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/Pruefung2a.tex @@ -0,0 +1,348 @@ +\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{amssymb} + + +%\usepackage[ngerman]{babel, translator} + + +%\usepackage[utf8x]{inputenc} +\usepackage[left=2.5cm,top=2cm,right=2cm,bottom=4cm]{geometry} + +%Code listings +\usepackage{listings} +\usepackage{minted} +\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} \\M122 - Prüfung 2\\ M.Bischof\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} +M122 - Bash - Prüfung 2 Serie a +\end{huge} +\vspace{10pt}\\ +\begin{quote} +\end{quote} + +\vspace{20pt} +{\bf{Erlaubte Hilfsmittel :}} +\begin{itemize} +\item Alle Hilfsmittel ausser Netzwerkkommunikation ({\bf{LAN-Kabel entfernen!}}) +\end{itemize} +{\bf{Generell nicht erlaubt ist:}} +\begin{itemize} +\item Abschreiben von der Nachbarprüfung oder Weitergeben von Prüfungen/Prüfungsresultaten innerhalb der Klasse. Kommunikation über Handy oder Computernetzwerk. +\end{itemize} +Jeglicher Verstoss gegen diese Regeln führt umgehend zum Ausschluss aus der Prüfung und der Note 1. +\vspace{30pt} +\\ +Name: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\hspace{30pt} +Klasse: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_} +\vspace{50pt} +Datum: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +\begin{tabular}{||p{3 cm}@{}|c|r||} + & & \\ +Aufgabe & max. Punkte & erreichte Punkte \\ + & & \\ + +1a & 1 & \\ +1b & 1 & \\ +1c & 1 & \\ +1d & 1 & \\ +1e & 1 & \\ + +2a & 2 & \\ +2b & 2 & \\ +2c & 2 & \\ +2d & 2 & \\ + +3a & 5 & \\ +3b & 3 & \\ + + + & & \\ + Total & 21 & \\ + +\end{tabular} +\end{center} + +\newpage + +\noindent {\Large{\bf{Teil 1 - Kurzaufgaben}}}\\ + +\noindent{\bf{Aufgabe - 1a (1 Punkt)}} Cronjob - +Sie wollen eines Ihre Bashskripte mit crontab automatisieren, dazu haben sie einen cronjob eingerichtet welcher nach nachfolgendem Muster ausgelöst wird: +\begin{minted}[frame=none,mathescape]{bash} +0 4 * * 1 +\end{minted} +Wann wird das Skript jeweils ausgeführt?\\\\ +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ +\vspace{9pt} +{\bf{Aufgabe - 1b (1 Punkt)}} Wildcards - +Sie führen folgendes Kommando aus: +\begin{minted}[frame=none,mathescape]{bash} +touch {a..c}file +\end{minted} +Erklären sie, was das Kommando genau macht:\\\\ +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ +\vspace{9pt} +\noindent{\bf{Aufgabe - 1c (1 Punkt)}} grep - +Gegeben ist folgendes Kommando: +\begin{minted}[frame=none,mathescape]{bash} +cat /etc/passwd | grep -v root +\end{minted} +Erklären sie, was dieses Kommando genau macht (berücksichtigen sie auch die Option \verb|-v|):\\\\ +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ +\noindent{\bf{Aufgabe - 1d (1 Punkt, 1/2 Punkt pro Pfadangabe)}} - Verzeichnisse wechseln \\ +Angenommen, sie befinden sich auf Ihre Linuxsystem unter \verb|/root/|, geben sie die {\bf{realtive}} und die {\bf{absolute}} Pfadangabe an, um in das Verzeichnis \verb|/tmp| zu wechseln: +\\\\Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ +\noindent{\bf{Aufgabe - 1e (1 Punkt pro richtige, 1 Punkt pro falsche oder fehlende richtige Antwort)}} - Welches Dateirecht muss zusätzlich auf einer Skriptdatei gesetzt werden, damit diese ausgeführt werden kann? + +\begin{itemize} +\item \verb|0| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|x| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|w| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|t| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|s| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} + +\newpage +\noindent {\Large{\bf{Teil 2 - Codestücke}}}\\ +\noindent{\bf{Aufgabe - 2a (2 Punkte, 1 Punkt pro Zeile)}} - If - else\\\\ +Nachfolgend sehen sie ein unvollständiges Skript. Sie sollen das Skript nun so ergänzen (Zeilen 3 und 5), dass dieses, falls das 1. Argument den Wert \verb|passw0rd| hat, den Text \emph{Passwort korrekt, Zutritt erlaubt} ausgibt und falls nicht den Text \emph{Zutritt verweigert!}. +\vspace{9pt} +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +#!/bin/bash +if [ $1 = "passw0rd" ]; then + _____________________ +else + _____________________ +fi +\end{minted} + + +\noindent{\bf{Aufgabe - 2b (2 Punkte)}} - for in \\\\ +Nachfolgend sehen sie ein unvollständiges Skript. Sie sollten das Skript so ergänzen, dass es den Inhalt des Verzeichnisses \verb|/etc/| ausgibt und zwar unter der Verwendung der abgebildeten \verb|for in| Schleife. +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +#!/bin/bash +for i in ______________ ; do + echo $i +done +\end{minted} + +\noindent{\bf{Aufgabe - 2c (2 Punkte, 1 Punkt pro Zeile)}} - while \\\\ +Nachfolgend sehen sie ein unvollständiges Skript. Sie sollen das Skript so ergänzen, dass die Schleife solange läuft, wie \verb|zahler| grösser als 10 ist (Zeile 3) und der \verb|zaehler| zum Schluss jedes Schleifendurchlaufs um 1 reduziert wird (Zeile 5). +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +#!/bin/bash +zaehler=20 +while [ $zaehler _________ ]; do + echo der zaehler ist $zaehler + ____________ +done +\end{minted} + +\noindent{\bf{Aufgabe - 2d (2 Punkte)}} - Backup Skript\\\\ +Nachfolgend sehen sie ein unvollständiges Backupskript. Die wichtigsten Informationen, um mit \verb|tar| ein Backup durchzuführen, werden in den Variablen \verb|source|, \verb|target| und \verb|outputFile| zwischengespeichert. Vervollständigen sie das Skript so, dass ein Backup vom Ordner \verb|home| gemacht wird und zB. in der Datei \verb|/var/backups/home-20151214.tgz| abgelegt wird. Benutzen sie dazu die bereits definierten Variablen. +\begin{minted}[frame=none,mathescape]{powershell} +#!/bin/bash +source="/home/" +target="/var/backups/" +outputFile=home-$(date +%Y%m%d).tgz +tar -cZf ________________ __________ +\end{minted} + +\newpage + +\noindent {\Large{\bf{Teil 3 - Programmieraufgaben}}}\\ + + \noindent{\bf{Aufgabe - 3a (5 Punkte)}} - IP-Adressen von Nameservern\\\\ +In der Datei \verb|/etc/resolv.conf| sind die IPs der von Ihrem Linuxsystem verwendeten Nameserver eingetragen. Der Inhalt dieser Datei kann zB. so aussehen: +\begin{verbatim} +search example.com +nameserver 10.0.3.4 +nameserver 10.0.3.5 +\end{verbatim} +Schreiben sie ein kleines Skript, welches alle IP's der Nameserver ausgibt. Mit dem obigen Beispiel sollte Ihr Skript also folgende Ausgabe erzeugen: +\begin{verbatim} +10.0.3.4 +10.0.3.5 +\end{verbatim} +Verwenden sie dazu \verb|cat|, \verb|grep| und \verb|cut|. \\\\ +\noindent{\bf{Aufgabe - 3b (3 Punkte, 1 Punkt pro Zeile)}} - Rechnerskript\\\\ +Im nachfolgenden sehen sie ein Taschenrechnerskript, welches zwei Zahlen und eine Operation einliest und dann die beiden Zahlen mit dieser Operation verrechnet (zB. addiert) und ausgibt: +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +echo "Geben sie die erste Nummer ein:" +read a +echo "Geben sie die zweite Nummer ein:" +read b +echo "Geben sie die gewünschte Opertaion +, - , / oder x ein" + read opr +if [ $opr = "+" ] + then + op=`expr $a + $b` + echo "$op" +_______________ + _______________ + _______________ + _______________ +elif [ $opr = "/" ] + then + op=`expr $a / $b` + echo "$op" +elif [ $opr = "x" ] +then + op=`expr $a \* $b` + echo "$op" +fi +\end{minted} +Der Code einer Operation fehlt (Subtraktion). Ergänzen sie den Code an der hervorgehobenen Stelle so, dass auch die Subtraktion funktioniert. + +\end{document} + + + + + diff --git a/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/082EF0BE247BFF2BA74097DA4C28EAC8172007D4E4E01D3AF0D0312D005ECB76.pygtex b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/082EF0BE247BFF2BA74097DA4C28EAC8172007D4E4E01D3AF0D0312D005ECB76.pygtex new file mode 100644 index 0000000..9b5d98a --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/082EF0BE247BFF2BA74097DA4C28EAC8172007D4E4E01D3AF0D0312D005ECB76.pygtex @@ -0,0 +1,8 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{k}{if} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}1} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}passw0rd\PYGdefaultZdq{}} \PYGdefault{o}{]}\PYGdefault{p}{;} \PYGdefault{k}{then} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{else} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{fi} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/18FE3D82468BB7EA1F5C56676DF313AC172007D4E4E01D3AF0D0312D005ECB76.pygtex b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/18FE3D82468BB7EA1F5C56676DF313AC172007D4E4E01D3AF0D0312D005ECB76.pygtex new file mode 100644 index 0000000..3287653 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/18FE3D82468BB7EA1F5C56676DF313AC172007D4E4E01D3AF0D0312D005ECB76.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +touch \PYGdefault{o}{\PYGdefaultZob{}}a..c\PYGdefault{o}{\PYGdefaultZcb{}}file +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/23491001CED836949DEE9E7FFC71540B172007D4E4E01D3AF0D0312D005ECB76.pygtex b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/23491001CED836949DEE9E7FFC71540B172007D4E4E01D3AF0D0312D005ECB76.pygtex new file mode 100644 index 0000000..fe50447 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/23491001CED836949DEE9E7FFC71540B172007D4E4E01D3AF0D0312D005ECB76.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{k}{for} i in \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} \PYGdefault{p}{;} \PYGdefault{k}{do} + \PYGdefault{n+nb}{echo} \PYGdefault{n+nv}{\PYGdefaultZdl{}i} +\PYGdefault{k}{done} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/2C574EAAA94F536F8D55FECE277AD2EE172007D4E4E01D3AF0D0312D005ECB76.pygtex b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/2C574EAAA94F536F8D55FECE277AD2EE172007D4E4E01D3AF0D0312D005ECB76.pygtex new file mode 100644 index 0000000..86f071c --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/2C574EAAA94F536F8D55FECE277AD2EE172007D4E4E01D3AF0D0312D005ECB76.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +cat /etc/passwd \PYGdefault{p}{|} grep \PYGdefaultZhy{}v root +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/40D9EB614201EDBDA95222DC380F8C8B172007D4E4E01D3AF0D0312D005ECB76.pygtex b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/40D9EB614201EDBDA95222DC380F8C8B172007D4E4E01D3AF0D0312D005ECB76.pygtex new file mode 100644 index 0000000..2c3eddb --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/40D9EB614201EDBDA95222DC380F8C8B172007D4E4E01D3AF0D0312D005ECB76.pygtex @@ -0,0 +1,25 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}Geben sie die erste Nummer ein:\PYGdefaultZdq{}} +\PYGdefault{n+nb}{read }a +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}Geben sie die zweite Nummer ein:\PYGdefaultZdq{}} +\PYGdefault{n+nb}{read }b +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}Geben sie die gewünschte Opertaion +, \PYGdefaultZhy{} , / oder x ein\PYGdefaultZdq{}} + \PYGdefault{n+nb}{read }opr +\PYGdefault{k}{if} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}opr} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}+\PYGdefaultZdq{}} \PYGdefault{o}{]} + \PYGdefault{k}{then} + \PYGdefault{n+nv}{op}\PYGdefault{o}{=}\PYGdefault{l+s+sb}{`}expr \PYGdefault{n+nv}{\PYGdefaultZdl{}a} + \PYGdefault{n+nv}{\PYGdefaultZdl{}b}\PYGdefault{l+s+sb}{`} + \PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}}\PYGdefault{n+nv}{\PYGdefaultZdl{}op}\PYGdefault{l+s+s2}{\PYGdefaultZdq{}} +\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{elif} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}opr} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}/\PYGdefaultZdq{}} \PYGdefault{o}{]} + \PYGdefault{k}{then} + \PYGdefault{n+nv}{op}\PYGdefault{o}{=}\PYGdefault{l+s+sb}{`}expr \PYGdefault{n+nv}{\PYGdefaultZdl{}a} / \PYGdefault{n+nv}{\PYGdefaultZdl{}b}\PYGdefault{l+s+sb}{`} + \PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}}\PYGdefault{n+nv}{\PYGdefaultZdl{}op}\PYGdefault{l+s+s2}{\PYGdefaultZdq{}} +\PYGdefault{k}{elif} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}opr} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}x\PYGdefaultZdq{}} \PYGdefault{o}{]} +\PYGdefault{k}{then} + \PYGdefault{n+nv}{op}\PYGdefault{o}{=}\PYGdefault{l+s+sb}{`}expr \PYGdefault{n+nv}{\PYGdefaultZdl{}a} \PYGdefault{l+s+se}{\PYGdefaultZbs{}*} \PYGdefault{n+nv}{\PYGdefaultZdl{}b}\PYGdefault{l+s+sb}{`} + \PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}}\PYGdefault{n+nv}{\PYGdefaultZdl{}op}\PYGdefault{l+s+s2}{\PYGdefaultZdq{}} +\PYGdefault{k}{fi} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/4424A982453D7A9B59F923C0FA6ABD1C172007D4E4E01D3AF0D0312D005ECB76.pygtex b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/4424A982453D7A9B59F923C0FA6ABD1C172007D4E4E01D3AF0D0312D005ECB76.pygtex new file mode 100644 index 0000000..906e9f8 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/4424A982453D7A9B59F923C0FA6ABD1C172007D4E4E01D3AF0D0312D005ECB76.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{l+m}{0} \PYGdefault{l+m}{4} * * 1 +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/659024A608483C34BD2C2381F646029CCC7A76A48DE0DA0765CC2C4B2FC50735.pygtex b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/659024A608483C34BD2C2381F646029CCC7A76A48DE0DA0765CC2C4B2FC50735.pygtex new file mode 100644 index 0000000..933d056 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/659024A608483C34BD2C2381F646029CCC7A76A48DE0DA0765CC2C4B2FC50735.pygtex @@ -0,0 +1,7 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{n}{source}\PYGdefault{p}{=}\PYGdefault{l+s+s2}{\PYGdefaultZdq{}/home/\PYGdefaultZdq{}} +\PYGdefault{n}{target}\PYGdefault{p}{=}\PYGdefault{l+s+s2}{\PYGdefaultZdq{}/var/backups/\PYGdefaultZdq{}} +\PYGdefault{n}{outputFile}\PYGdefault{p}{=}\PYGdefault{n}{home}\PYGdefault{p}{\PYGdefaultZhy{}\PYGdefaultZdl{}(}\PYGdefault{n}{date} \PYGdefault{p}{+}\PYGdefault{k}{\PYGdefaultZpc{}}\PYGdefault{n}{Y}\PYGdefault{k}{\PYGdefaultZpc{}}\PYGdefault{n}{m}\PYGdefault{k}{\PYGdefaultZpc{}}\PYGdefault{n}{d}\PYGdefault{p}{).}\PYGdefault{n}{tgz} +\PYGdefault{n}{tar} \PYGdefault{n}{\PYGdefaultZhy{}cZf} \PYGdefault{n}{\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}} \PYGdefault{n}{\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/E5453D55CD6E553A36576185862C45FB172007D4E4E01D3AF0D0312D005ECB76.pygtex b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/E5453D55CD6E553A36576185862C45FB172007D4E4E01D3AF0D0312D005ECB76.pygtex new file mode 100644 index 0000000..1ca4967 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/E5453D55CD6E553A36576185862C45FB172007D4E4E01D3AF0D0312D005ECB76.pygtex @@ -0,0 +1,8 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{n+nv}{zaehler}\PYGdefault{o}{=}20 +\PYGdefault{k}{while} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}zaehler} \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} \PYGdefault{o}{]}\PYGdefault{p}{;} \PYGdefault{k}{do} + \PYGdefault{n+nb}{echo }der zaehler ist \PYGdefault{n+nv}{\PYGdefaultZdl{}zaehler} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{done} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/default.pygstyle b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2a/_minted-Pruefung2a/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/.DS_Store b/m122/M122/Pruefungen/Prüfung 2a/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/bfsulogo.jpg b/m122/M122/Pruefungen/Prüfung 2a/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/bfsulogo.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/bzulogo.png b/m122/M122/Pruefungen/Prüfung 2a/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/bzulogo.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/calvin.jpg b/m122/M122/Pruefungen/Prüfung 2a/img/calvin.jpg new file mode 100644 index 0000000..d65f5b2 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/calvin.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/s1.png b/m122/M122/Pruefungen/Prüfung 2a/img/s1.png new file mode 100644 index 0000000..b571d27 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/s1.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/s2.png b/m122/M122/Pruefungen/Prüfung 2a/img/s2.png new file mode 100644 index 0000000..4a20a52 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/s2.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/s3.png b/m122/M122/Pruefungen/Prüfung 2a/img/s3.png new file mode 100644 index 0000000..f49451a Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/s3.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/s4.png b/m122/M122/Pruefungen/Prüfung 2a/img/s4.png new file mode 100644 index 0000000..7a9dcc6 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/s4.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/s5.png b/m122/M122/Pruefungen/Prüfung 2a/img/s5.png new file mode 100644 index 0000000..496bc72 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/s5.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/s6.png b/m122/M122/Pruefungen/Prüfung 2a/img/s6.png new file mode 100644 index 0000000..a7a80dd Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/s6.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2a/img/s7.png b/m122/M122/Pruefungen/Prüfung 2a/img/s7.png new file mode 100644 index 0000000..19504cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2a/img/s7.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/.DS_Store b/m122/M122/Pruefungen/Prüfung 2b/.DS_Store new file mode 100644 index 0000000..c2141cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/Pruefung2b.pdf b/m122/M122/Pruefungen/Prüfung 2b/Pruefung2b.pdf new file mode 100644 index 0000000..4ddffa5 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/Pruefung2b.pdf differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/Pruefung2b.tex b/m122/M122/Pruefungen/Prüfung 2b/Pruefung2b.tex new file mode 100644 index 0000000..13a4134 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/Pruefung2b.tex @@ -0,0 +1,354 @@ +\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{amssymb} + + +%\usepackage[ngerman]{babel, translator} + + +%\usepackage[utf8x]{inputenc} +\usepackage[left=2.5cm,top=2cm,right=2cm,bottom=4cm]{geometry} + +%Code listings +\usepackage{listings} +\usepackage{minted} +\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} \\M122 - Prüfung 2\\ M.Bischof\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} +M122 - Bash - Prüfung 2 Serie b +\end{huge} +\vspace{10pt}\\ +\begin{quote} +\end{quote} + +\vspace{20pt} +{\bf{Erlaubte Hilfsmittel :}} +\begin{itemize} +\item Alle Hilfsmittel ausser Netzwerkkommunikation ({\bf{LAN-Kabel entfernen!}}) +\end{itemize} +{\bf{Generell nicht erlaubt ist:}} +\begin{itemize} +\item Abschreiben von der Nachbarprüfung oder Weitergeben von Prüfungen/Prüfungsresultaten innerhalb der Klasse. Kommunikation über Handy oder Computernetzwerk. +\end{itemize} +Jeglicher Verstoss gegen diese Regeln führt umgehend zum Ausschluss aus der Prüfung und der Note 1. +\vspace{30pt} +\\ +Name: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\hspace{30pt} +Klasse: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_} +\vspace{50pt} +Datum: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +\begin{tabular}{||p{3 cm}@{}|c|r||} + & & \\ +Aufgabe & max. Punkte & erreichte Punkte \\ + & & \\ + +1a & 1 & \\ +1b & 1 & \\ +1c & 1 & \\ +1d & 1 & \\ +1e & 1 & \\ + +2a & 2 & \\ +2b & 2 & \\ +2c & 2 & \\ +2d & 2 & \\ + +3a & 3 & \\ +3b & 5 & \\ + + + & & \\ + Total & 21 & \\ + +\end{tabular} +\end{center} + +\newpage + +\noindent {\Large{\bf{Teil 1 - Kurzaufgaben}}}\\ + +\noindent{\bf{Aufgabe - 1a (1 Punkt)}} grep - +Gegeben ist folgendes Kommando: +\begin{minted}[frame=none,mathescape]{bash} +cat /etc/passwd | grep -v ssh +\end{minted} +Erklären sie, was dieses Kommando genau macht (berücksichtigen sie auch die Option \verb|-v|):\\\\ +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ +\noindent{\bf{Aufgabe - 1b (1 Punkt, 1/2 Punkt pro Pfadangabe)}} - Verzeichnisse wechseln \\ +Angenommen, sie befinden sich auf Ihre Linuxsystem unter \verb|/home/user1/|, geben sie die {\bf{realtive}} und die {\bf{absolute}} Pfadangabe an, um in das Verzeichnis \verb|/tmp| zu wechseln: +\\\\Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ + +\noindent{\bf{Aufgabe - 1c (1 Punkt)}} Cronjob - +Sie wollen eines Ihre Bashskripte mit crontab automatisieren, dazu haben sie einen cronjob eingerichtet welcher nach nachfolgendem Muster ausgelöst wird: +\begin{minted}[frame=none,mathescape]{bash} +0 2 * * 3 +\end{minted} +Wann wird das Skript jeweils ausgeführt?\\\\ +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ +\noindent{\bf{Aufgabe - 1d (1 Punkt pro richtige, 1 Punkt pro falsche oder fehlende richtige Antwort)}} - Welches Dateirecht muss zusätzlich auf einer Skriptdatei gesetzt werden, damit diese ausgeführt werden kann? + +\begin{itemize} +\item \verb|0| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|x| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|w| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|t| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|s| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +{\bf{Aufgabe - 1e (1 Punkt)}} Wildcards - +Sie führen folgendes Kommando aus: +\begin{minted}[frame=none,mathescape]{bash} +touch {d..f}file +\end{minted} +Erklären sie, was das Kommando genau macht:\\\\ +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ + + + + +\newpage +\noindent {\Large{\bf{Teil 2 - Codestücke}}}\\ + +\noindent{\bf{Aufgabe - 2a (2 Punkte)}} - Backup Skript\\\\ +Nachfolgend sehen sie ein unvollständiges Backupskript. Die wichtigsten Informationen, um mit \verb|tar| ein Backup durchzuführen, werden in den Variablen \verb|quelle|, \verb|ziel| und \verb|outputFile| zwischengespeichert. Vervollständigen sie das Skript so, dass ein Backup vom Ordner \verb|home| gemacht wird und zB. in der Datei \verb|/var/backups/home-20151214.tgz| abgelegt wird. Benutzen sie dazu die bereits definierten Variablen. +\begin{minted}[frame=none,mathescape]{bash} +#!/bin/bash +outputFile=home-$(date +%Y%m%d).tgz +quelle="/home/" +ziel="/var/backups/" +tar -cZf ________________ __________ +\end{minted} + + +\noindent{\bf{Aufgabe - 2b (2 Punkte)}} - for in \\\\ +Nachfolgend sehen sie ein unvollständiges Skript. Sie sollten das Skript so ergänzen, dass es den Inhalt des Verzeichnisses \verb|/home/| ausgibt und zwar unter der Verwendung der abgebildeten \verb|for in| Schleife. +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +#!/bin/bash +for i in ______________ ; do + echo $i +done +\end{minted} + +\noindent{\bf{Aufgabe - 2c (2 Punkte, 1 Punkt pro Zeile)}} - If - else\\\\ +Nachfolgend sehen sie ein unvollständiges Skript. Sie sollen das Skript nun so ergänzen (Zeilen 3 und 5), dass dieses, falls das 1. Argument den Wert \verb|keyw0rd| hat, den Text \emph{sie dürfen passieren} ausgibt und falls nicht den Text \emph{nicht erlaubt!}. +\vspace{9pt} +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +#!/bin/bash +if [ $1 = "keyw0rd" ]; then + _____________________ +else + _____________________ +fi +\end{minted} + + +\noindent{\bf{Aufgabe - 2d (2 Punkte, 1 Punkt pro Zeile)}} - while \\\\ +Nachfolgend sehen sie ein unvollständiges Skript. Sie sollen das Skript so ergänzen, dass die Schleife solange läuft, wie \verb|zahler| kleiner als 10 ist (Zeile 3) und der \verb|zaehler| zum Schluss jedes Schleifendurchlaufs um 1 erhöht wird (Zeile 5). +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +#!/bin/bash +zaehler=0 +while [ $zaehler _________ ]; do + echo der zaehler ist $zaehler + ____________ +done +\end{minted} +\newpage + +\noindent {\Large{\bf{Teil 3 - Programmieraufgaben}}}\\ + + +\noindent{\bf{Aufgabe - 3a (3 Punkte, 1 Punkt pro Zeile)}} - Rechnerskript\\\\ +Im nachfolgenden sehen sie ein Taschenrechnerskript, welches zwei Zahlen und eine Operation einliest und dann die beiden Zahlen mit dieser Operation verrechnet (zB. addiert) und ausgibt: +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +echo "bitte gebe eine Nummer ein" +read n1 +echo "bitte wähle eine Operation" +echo "1. addieren" +echo "2. subtrahieren" +echo "3. dividieren" +echo "4. multiplizieren" +read opr +echo "bitte gebe eine zweite Nummer ein" +read n2 + +if [ $opr = "1" ] + then + echo $((n1+n2)) +___________ + ___________ + ________________ +elif [ $opr = "3" ] + then + echo $((n1/n2)) +elif [ $opr = "4" ] + then + echo $((n1*n2)) +fi +\end{minted} +Der Code einer Operation fehlt (Subtraktion). Ergänzen sie den Code an der hervorgehobenen Stelle so, dass auch die Subtraktion funktioniert.\\\\ + +\noindent{\bf{Aufgabe - 3b (5 Punkte)}} - IP-Adressen von Nameservern\\\\ +In der Datei \verb|/etc/resolv.conf| sind die IPs der von Ihrem Linuxsystem verwendeten Nameserver eingetragen. Der Inhalt dieser Datei kann zB. so aussehen: +\begin{verbatim} +search example.com +nameserver 10.0.1.6 +nameserver 10.0.1.7 +\end{verbatim} +Schreiben sie ein kleines Skript, welches alle IP's der Nameserver ausgibt. Mit dem obigen Beispiel sollte Ihr Skript also folgende Ausgabe erzeugen: +\begin{verbatim} +10.0.1.6 +10.0.1.7 +\end{verbatim} +Verwenden sie dazu \verb|cat|, \verb|grep| und \verb|cut|. + +\end{document} + + + + + diff --git a/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/23491001CED836949DEE9E7FFC71540BA2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/23491001CED836949DEE9E7FFC71540BA2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex new file mode 100644 index 0000000..fe50447 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/23491001CED836949DEE9E7FFC71540BA2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{k}{for} i in \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} \PYGdefault{p}{;} \PYGdefault{k}{do} + \PYGdefault{n+nb}{echo} \PYGdefault{n+nv}{\PYGdefaultZdl{}i} +\PYGdefault{k}{done} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/543A5D3DC62A865E52AD96A856B89805A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/543A5D3DC62A865E52AD96A856B89805A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex new file mode 100644 index 0000000..90a9446 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/543A5D3DC62A865E52AD96A856B89805A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex @@ -0,0 +1,7 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{n+nv}{outputFile}\PYGdefault{o}{=}home\PYGdefaultZhy{}\PYGdefault{k}{\PYGdefaultZdl{}(}date +\PYGdefaultZpc{}Y\PYGdefaultZpc{}m\PYGdefaultZpc{}d\PYGdefault{k}{)}.tgz +\PYGdefault{n+nv}{quelle}\PYGdefault{o}{=}\PYGdefault{l+s+s2}{\PYGdefaultZdq{}/home/\PYGdefaultZdq{}} +\PYGdefault{n+nv}{ziel}\PYGdefault{o}{=}\PYGdefault{l+s+s2}{\PYGdefaultZdq{}/var/backups/\PYGdefaultZdq{}} +tar \PYGdefaultZhy{}cZf \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/663E14A4E0B537A73D255F986B4FA983A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/663E14A4E0B537A73D255F986B4FA983A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex new file mode 100644 index 0000000..ef454d9 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/663E14A4E0B537A73D255F986B4FA983A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +touch \PYGdefault{o}{\PYGdefaultZob{}}d..f\PYGdefault{o}{\PYGdefaultZcb{}}file +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/75961968EDABA0AEF4B95E95A2BBDC15A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/75961968EDABA0AEF4B95E95A2BBDC15A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex new file mode 100644 index 0000000..2a2a12e --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/75961968EDABA0AEF4B95E95A2BBDC15A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex @@ -0,0 +1,8 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{n+nv}{zaehler}\PYGdefault{o}{=}0 +\PYGdefault{k}{while} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}zaehler} \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} \PYGdefault{o}{]}\PYGdefault{p}{;} \PYGdefault{k}{do} + \PYGdefault{n+nb}{echo }der zaehler ist \PYGdefault{n+nv}{\PYGdefaultZdl{}zaehler} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{done} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/7C59611A92334E4FD4815A0C96985158A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/7C59611A92334E4FD4815A0C96985158A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex new file mode 100644 index 0000000..263bf98 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/7C59611A92334E4FD4815A0C96985158A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{l+m}{0} \PYGdefault{l+m}{2} * * 3 +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/874F103EDEDEB4C08A6CA61842264E8FA2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/874F103EDEDEB4C08A6CA61842264E8FA2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex new file mode 100644 index 0000000..fdbcde5 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/874F103EDEDEB4C08A6CA61842264E8FA2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex @@ -0,0 +1,8 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{k}{if} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}1} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}keyw0rd\PYGdefaultZdq{}} \PYGdefault{o}{]}\PYGdefault{p}{;} \PYGdefault{k}{then} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{else} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{fi} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/97D2B268E7C63D0191C49FEDB60B31A4A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/97D2B268E7C63D0191C49FEDB60B31A4A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex new file mode 100644 index 0000000..c470a8b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/97D2B268E7C63D0191C49FEDB60B31A4A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex @@ -0,0 +1,26 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}bitte gebe eine Nummer ein\PYGdefaultZdq{}} +\PYGdefault{n+nb}{read }n1 +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}bitte wähle eine Operation\PYGdefaultZdq{}} +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}1. addieren\PYGdefaultZdq{}} +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}2. subtrahieren\PYGdefaultZdq{}} +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}3. dividieren\PYGdefaultZdq{}} +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}4. multiplizieren\PYGdefaultZdq{}} +\PYGdefault{n+nb}{read }opr +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}bitte gebe eine zweite Nummer ein\PYGdefaultZdq{}} +\PYGdefault{n+nb}{read }n2 + +\PYGdefault{k}{if} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}opr} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}1\PYGdefaultZdq{}} \PYGdefault{o}{]} + \PYGdefault{k}{then} + \PYGdefault{n+nb}{echo} \PYGdefault{k}{\PYGdefaultZdl{}((}n1+n2\PYGdefault{k}{))} +\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{elif} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}opr} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}3\PYGdefaultZdq{}} \PYGdefault{o}{]} + \PYGdefault{k}{then} + \PYGdefault{n+nb}{echo} \PYGdefault{k}{\PYGdefaultZdl{}((}n1/n2\PYGdefault{k}{))} +\PYGdefault{k}{elif} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}opr} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}4\PYGdefaultZdq{}} \PYGdefault{o}{]} + \PYGdefault{k}{then} + \PYGdefault{n+nb}{echo} \PYGdefault{k}{\PYGdefaultZdl{}((}n1*n2\PYGdefault{k}{))} +\PYGdefault{k}{fi} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/B4E2FBFB9A4F2C0547E06DA98D8B6460A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/B4E2FBFB9A4F2C0547E06DA98D8B6460A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex new file mode 100644 index 0000000..d3e484e --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/B4E2FBFB9A4F2C0547E06DA98D8B6460A2CE9E9248DA1DFFCC167C43B21FD6D8.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +cat /etc/passwd \PYGdefault{p}{|} grep \PYGdefaultZhy{}v ssh +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/default.pygstyle b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2b/_minted-Pruefung2b/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/.DS_Store b/m122/M122/Pruefungen/Prüfung 2b/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/bfsulogo.jpg b/m122/M122/Pruefungen/Prüfung 2b/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/bfsulogo.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/bzulogo.png b/m122/M122/Pruefungen/Prüfung 2b/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/bzulogo.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/calvin.jpg b/m122/M122/Pruefungen/Prüfung 2b/img/calvin.jpg new file mode 100644 index 0000000..d65f5b2 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/calvin.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/s1.png b/m122/M122/Pruefungen/Prüfung 2b/img/s1.png new file mode 100644 index 0000000..b571d27 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/s1.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/s2.png b/m122/M122/Pruefungen/Prüfung 2b/img/s2.png new file mode 100644 index 0000000..4a20a52 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/s2.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/s3.png b/m122/M122/Pruefungen/Prüfung 2b/img/s3.png new file mode 100644 index 0000000..f49451a Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/s3.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/s4.png b/m122/M122/Pruefungen/Prüfung 2b/img/s4.png new file mode 100644 index 0000000..7a9dcc6 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/s4.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/s5.png b/m122/M122/Pruefungen/Prüfung 2b/img/s5.png new file mode 100644 index 0000000..496bc72 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/s5.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/s6.png b/m122/M122/Pruefungen/Prüfung 2b/img/s6.png new file mode 100644 index 0000000..a7a80dd Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/s6.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2b/img/s7.png b/m122/M122/Pruefungen/Prüfung 2b/img/s7.png new file mode 100644 index 0000000..19504cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2b/img/s7.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/.DS_Store b/m122/M122/Pruefungen/Prüfung 2c/.DS_Store new file mode 100644 index 0000000..c2141cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/Pruefung2c.pdf b/m122/M122/Pruefungen/Prüfung 2c/Pruefung2c.pdf new file mode 100644 index 0000000..c4ae3c9 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/Pruefung2c.pdf differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/Pruefung2c.tex b/m122/M122/Pruefungen/Prüfung 2c/Pruefung2c.tex new file mode 100644 index 0000000..b7339d1 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/Pruefung2c.tex @@ -0,0 +1,353 @@ +\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{amssymb} + + +%\usepackage[ngerman]{babel, translator} + + +%\usepackage[utf8x]{inputenc} +\usepackage[left=2.5cm,top=2cm,right=2cm,bottom=4cm]{geometry} + +%Code listings +\usepackage{listings} +\usepackage{minted} +\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} \\M122 - Prüfung 2\\ M.Bischof\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} +M122 - Bash - Prüfung 2 Serie c - Nachprüfung +\end{huge} +\vspace{10pt}\\ +\begin{quote} +\end{quote} + +\vspace{20pt} +{\bf{Erlaubte Hilfsmittel :}} +\begin{itemize} +\item Alle Hilfsmittel ausser Netzwerkkommunikation ({\bf{LAN-Kabel entfernen!}}) +\end{itemize} +{\bf{Generell nicht erlaubt ist:}} +\begin{itemize} +\item Abschreiben von der Nachbarprüfung oder Weitergeben von Prüfungen/Prüfungsresultaten innerhalb der Klasse. Kommunikation über Handy oder Computernetzwerk. +\end{itemize} +Jeglicher Verstoss gegen diese Regeln führt umgehend zum Ausschluss aus der Prüfung und der Note 1. +\vspace{30pt} +\\ +Name: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_} +\hspace{30pt} +Klasse: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_} +\vspace{50pt} +Datum: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_}\\ +\begin{tabular}{||p{3 cm}@{}|c|r||} + & & \\ +Aufgabe & max. Punkte & erreichte Punkte \\ + & & \\ + +1a & 1 & \\ +1b & 1 & \\ +1c & 1 & \\ +1d & 1 & \\ +1e & 1 & \\ + +2a & 2 & \\ +2b & 2 & \\ +2c & 2 & \\ +2d & 2 & \\ + +3a & 4.5 & \\ +3b & 5 & \\ + + + & & \\ + Total & 22.5 & \\ + +\end{tabular} +\end{center} + +\newpage + +\noindent {\Large{\bf{Teil 1 - Kurzaufgaben}}}\\ + +\noindent{\bf{Aufgabe - 1a (1 Punkt)}} grep - +Gegeben ist folgendes Kommando: +\begin{minted}[frame=none,mathescape]{bash} +cat /etc/passwd | grep root | cut -d ':' -f 1 +\end{minted} +Erklären sie, was dieses Kommando genau macht:\\\\ +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ +\noindent{\bf{Aufgabe - 1b (1 Punkt, 1/2 Punkt pro Pfadangabe)}} - Verzeichnisse wechseln \\ +Angenommen, sie befinden sich auf Ihre Linuxsystem unter \verb|/usr/bin/|, geben sie die {\bf{relative}} und die {\bf{absolute}} Pfadangabe an, um in das Verzeichnis \verb|/home/user1/| zu wechseln: +\\\\Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ + +\noindent{\bf{Aufgabe - 1c (1 Punkt)}} Cronjob - +Sie wollen eines Ihre Bashskripte mit crontab automatisieren, dazu haben sie einen cronjob eingerichtet welcher nach nachfolgendem Muster ausgelöst wird: +\begin{minted}[frame=none,mathescape]{bash} +30 4 * * 5 +\end{minted} +Wann wird das Skript jeweils ausgeführt?\\\\ +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ +\noindent{\bf{Aufgabe - 1d (1 Punkt pro richtige, 1 Punkt pro falsche oder fehlende richtige Antwort)}} - Welches Dateirecht muss auf einer Datei gesetzt werden, damit in diese geschrieben werden kann? + +\begin{itemize} +\item \verb|0| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|x| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|w| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|t| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\item \verb|s| \makebox[4pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$ $} +\end{itemize} +{\bf{Aufgabe - 1e (1 Punkt)}} Wildcards - +Sie führen folgendes Kommando aus: +\begin{minted}[frame=none,mathescape]{bash} +touch {backuped{1,2},restored{1,2}}.zip +\end{minted} +Erklären sie, was das Kommando genau macht:\\\\ +Antwort: \texttt{\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\ +\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\\\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_}\\\\ + + + + +\newpage +\noindent {\Large{\bf{Teil 2 - Codestücke}}}\\ + +\noindent{\bf{Aufgabe - 2a (2 Punkte)}} - Backup Skript\\\\ +Nachfolgend sehen sie ein unvollständiges Backupskript. Die wichtigsten Informationen, um mit \verb|tar| ein Backup durchzuführen, werden in den Variablen \verb|quelle|, \verb|ziel| und \verb|outputFile| zwischengespeichert. Vervollständigen sie das Skript so, dass ein Backup vom Ordner \verb|home| gemacht wird und zB. in der Datei \verb|/var/backups/home-20151214.tgz| abgelegt wird. Benutzen sie dazu die bereits definierten Variablen. +\begin{minted}[frame=none,mathescape]{bash} +#!/bin/bash +outputFile=home-$(date +%Y%m%d).tgz +quelle="/home/" +ziel="/var/backups/" +tar -cZf ________________ __________ +\end{minted} + + +\noindent{\bf{Aufgabe - 2b (2 Punkte)}} - for in \\\\ +Nachfolgend sehen sie ein unvollständiges Skript. Sie sollten das Skript so ergänzen, dass es den Inhalt des Verzeichnisses \verb|/home/| ausgibt und zwar unter der Verwendung der abgebildeten \verb|for in| Schleife. +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +#!/bin/bash +for i in ______________ ; do + echo $i +done +\end{minted} + +\noindent{\bf{Aufgabe - 2c (2 Punkte, 1 Punkt pro Zeile)}} - If - else\\\\ +Nachfolgend sehen sie ein unvollständiges Skript. Sie sollen das Skript nun so ergänzen (Zeilen 3 und 5), dass dieses, falls das 1. Argument den Wert \verb|keyw0rd| hat, den Text \emph{sie dürfen passieren} ausgibt und falls nicht den Text \emph{nicht erlaubt!}. +\vspace{9pt} +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +#!/bin/bash +if [ $1 = "keyw0rd" ]; then + _____________________ +else + _____________________ +fi +\end{minted} + + +\noindent{\bf{Aufgabe - 2d (2 Punkte, 1 Punkt pro Zeile)}} - while \\\\ +Nachfolgend sehen sie ein unvollständiges Skript. Sie sollen das Skript so ergänzen, dass die Schleife solange läuft, wie \verb|zaehler| kleiner als 8 ist (Zeile 3) und der \verb|zaehler| zum Schluss jedes Schleifendurchlaufs um 2 erhöht wird (Zeile 5). +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +#!/bin/bash +zaehler=2 +while [ $zaehler _________ ]; do + echo der zaehler ist $zaehler + ____________ +done +\end{minted} +\newpage + +\noindent {\Large{\bf{Teil 3 - Programmieraufgaben}}}\\ + + +\noindent{\bf{Aufgabe - 3a (4.5 Punkte, 0.75 Punkt pro Zeile)}} - Rechnerskript\\\\ +Im nachfolgenden sehen sie ein Taschenrechnerskript, welches zwei Zahlen und eine Operation einliest und dann die beiden Zahlen mit dieser Operation verrechnet (zB. addiert) und ausgibt: +\begin{minted}[linenos=true,frame=none,mathescape]{bash} +echo "bitte gebe eine Nummer ein" +read n1 +echo "bitte wähle eine Operation" +echo "1. addieren" +echo "2. subtrahieren" +echo "3. dividieren" +echo "4. multiplizieren" +read opr +echo "bitte gebe eine zweite Nummer ein" +read n2 + +if [ $opr = "1" ] + then + echo $((n1+n2)) +___________ + ___________ + ________________ +elif [ $opr = "3" ] + then + echo $((n1/n2)) +___________ + ___________ + ________________ +fi +\end{minted} +Der Code der Operationen Subtraktion und Multiplikation fehlt. Ergänzen sie den Code an den hervorgehobenen Stellen so, dass auch die Subtraktion und Multiplikation funktionieren.\\\\ + +\noindent{\bf{Aufgabe - 3b (5 Punkte)}} - resolv.conf\\\\ +In der Datei \verb|/etc/resolv.conf| kommen Domänennamen der lokalen Domains vor, zB.: +\begin{verbatim} +search example.com +nameserver 10.0.1.6 +nameserver 10.0.1.7 +\end{verbatim} +Schreiben sie ein kleines Skript, welches alle Domänennamen findet und ausgibt. Mit dem obigen Inhalt sollte Ihr Skript also folgende Ausgabe erzeugen: +\begin{verbatim} +example.com +\end{verbatim} +Verwenden sie dazu \verb|cat|, \verb|grep| und \verb|cut|. + +\end{document} + + + + + diff --git a/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/0A35B538685FDD11EBB427D5FCB58E8CB583005341A66AEA4B3359D95A2F909C.pygtex b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/0A35B538685FDD11EBB427D5FCB58E8CB583005341A66AEA4B3359D95A2F909C.pygtex new file mode 100644 index 0000000..48833ec --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/0A35B538685FDD11EBB427D5FCB58E8CB583005341A66AEA4B3359D95A2F909C.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +touch \PYGdefault{o}{\PYGdefaultZob{}}backuped\PYGdefault{o}{\PYGdefaultZob{}}1,2\PYGdefault{o}{\PYGdefaultZcb{}},restored\PYGdefault{o}{\PYGdefaultZob{}}1,2\PYGdefault{o}{\PYGdefaultZcb{}\PYGdefaultZcb{}}.zip +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/1BDC7CDF8362E9D615174FFAE01165D3B583005341A66AEA4B3359D95A2F909C.pygtex b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/1BDC7CDF8362E9D615174FFAE01165D3B583005341A66AEA4B3359D95A2F909C.pygtex new file mode 100644 index 0000000..edd9527 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/1BDC7CDF8362E9D615174FFAE01165D3B583005341A66AEA4B3359D95A2F909C.pygtex @@ -0,0 +1,26 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}bitte gebe eine Nummer ein\PYGdefaultZdq{}} +\PYGdefault{n+nb}{read }n1 +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}bitte wähle eine Operation\PYGdefaultZdq{}} +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}1. addieren\PYGdefaultZdq{}} +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}2. subtrahieren\PYGdefaultZdq{}} +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}3. dividieren\PYGdefaultZdq{}} +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}4. multiplizieren\PYGdefaultZdq{}} +\PYGdefault{n+nb}{read }opr +\PYGdefault{n+nb}{echo} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}bitte gebe eine zweite Nummer ein\PYGdefaultZdq{}} +\PYGdefault{n+nb}{read }n2 + +\PYGdefault{k}{if} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}opr} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}1\PYGdefaultZdq{}} \PYGdefault{o}{]} + \PYGdefault{k}{then} + \PYGdefault{n+nb}{echo} \PYGdefault{k}{\PYGdefaultZdl{}((}n1+n2\PYGdefault{k}{))} +\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{elif} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}opr} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}3\PYGdefaultZdq{}} \PYGdefault{o}{]} + \PYGdefault{k}{then} + \PYGdefault{n+nb}{echo} \PYGdefault{k}{\PYGdefaultZdl{}((}n1/n2\PYGdefault{k}{))} +\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{fi} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/1FC9FD45FFECD7A83FC06B32E5D50A2EB583005341A66AEA4B3359D95A2F909C.pygtex b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/1FC9FD45FFECD7A83FC06B32E5D50A2EB583005341A66AEA4B3359D95A2F909C.pygtex new file mode 100644 index 0000000..6eaacff --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/1FC9FD45FFECD7A83FC06B32E5D50A2EB583005341A66AEA4B3359D95A2F909C.pygtex @@ -0,0 +1,8 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{n+nv}{zaehler}\PYGdefault{o}{=}2 +\PYGdefault{k}{while} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}zaehler} \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} \PYGdefault{o}{]}\PYGdefault{p}{;} \PYGdefault{k}{do} + \PYGdefault{n+nb}{echo }der zaehler ist \PYGdefault{n+nv}{\PYGdefaultZdl{}zaehler} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{done} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/23491001CED836949DEE9E7FFC71540BB583005341A66AEA4B3359D95A2F909C.pygtex b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/23491001CED836949DEE9E7FFC71540BB583005341A66AEA4B3359D95A2F909C.pygtex new file mode 100644 index 0000000..fe50447 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/23491001CED836949DEE9E7FFC71540BB583005341A66AEA4B3359D95A2F909C.pygtex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{k}{for} i in \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} \PYGdefault{p}{;} \PYGdefault{k}{do} + \PYGdefault{n+nb}{echo} \PYGdefault{n+nv}{\PYGdefaultZdl{}i} +\PYGdefault{k}{done} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/543A5D3DC62A865E52AD96A856B89805B583005341A66AEA4B3359D95A2F909C.pygtex b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/543A5D3DC62A865E52AD96A856B89805B583005341A66AEA4B3359D95A2F909C.pygtex new file mode 100644 index 0000000..90a9446 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/543A5D3DC62A865E52AD96A856B89805B583005341A66AEA4B3359D95A2F909C.pygtex @@ -0,0 +1,7 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{n+nv}{outputFile}\PYGdefault{o}{=}home\PYGdefaultZhy{}\PYGdefault{k}{\PYGdefaultZdl{}(}date +\PYGdefaultZpc{}Y\PYGdefaultZpc{}m\PYGdefaultZpc{}d\PYGdefault{k}{)}.tgz +\PYGdefault{n+nv}{quelle}\PYGdefault{o}{=}\PYGdefault{l+s+s2}{\PYGdefaultZdq{}/home/\PYGdefaultZdq{}} +\PYGdefault{n+nv}{ziel}\PYGdefault{o}{=}\PYGdefault{l+s+s2}{\PYGdefaultZdq{}/var/backups/\PYGdefaultZdq{}} +tar \PYGdefaultZhy{}cZf \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/735AA1E1FCEB8B9B0D0E1C999A42B302B583005341A66AEA4B3359D95A2F909C.pygtex b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/735AA1E1FCEB8B9B0D0E1C999A42B302B583005341A66AEA4B3359D95A2F909C.pygtex new file mode 100644 index 0000000..289cf99 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/735AA1E1FCEB8B9B0D0E1C999A42B302B583005341A66AEA4B3359D95A2F909C.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{l+m}{30} \PYGdefault{l+m}{4} * * 5 +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/874F103EDEDEB4C08A6CA61842264E8FB583005341A66AEA4B3359D95A2F909C.pygtex b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/874F103EDEDEB4C08A6CA61842264E8FB583005341A66AEA4B3359D95A2F909C.pygtex new file mode 100644 index 0000000..fdbcde5 --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/874F103EDEDEB4C08A6CA61842264E8FB583005341A66AEA4B3359D95A2F909C.pygtex @@ -0,0 +1,8 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +\PYGdefault{c}{\PYGdefaultZsh{}!/bin/bash} +\PYGdefault{k}{if} \PYGdefault{o}{[} \PYGdefault{n+nv}{\PYGdefaultZdl{}1} \PYGdefault{o}{=} \PYGdefault{l+s+s2}{\PYGdefaultZdq{}keyw0rd\PYGdefaultZdq{}} \PYGdefault{o}{]}\PYGdefault{p}{;} \PYGdefault{k}{then} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{else} + \PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{}\PYGdefaultZus{} +\PYGdefault{k}{fi} +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/DA0634D3013EC502144F93C3432C8173B583005341A66AEA4B3359D95A2F909C.pygtex b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/DA0634D3013EC502144F93C3432C8173B583005341A66AEA4B3359D95A2F909C.pygtex new file mode 100644 index 0000000..65ca43e --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/DA0634D3013EC502144F93C3432C8173B583005341A66AEA4B3359D95A2F909C.pygtex @@ -0,0 +1,3 @@ +\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}] +cat /etc/passwd \PYGdefault{p}{|} grep root \PYGdefault{p}{|} cut \PYGdefaultZhy{}d \PYGdefault{l+s+s1}{\PYGdefaultZsq{}:\PYGdefaultZsq{}} \PYGdefaultZhy{}f 1 +\end{Verbatim} diff --git a/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/default.pygstyle b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/default.pygstyle new file mode 100644 index 0000000..e670c6b --- /dev/null +++ b/m122/M122/Pruefungen/Prüfung 2c/_minted-Pruefung2c/default.pygstyle @@ -0,0 +1,95 @@ + +\makeatletter +\def\PYGdefault@reset{\let\PYGdefault@it=\relax \let\PYGdefault@bf=\relax% + \let\PYGdefault@ul=\relax \let\PYGdefault@tc=\relax% + \let\PYGdefault@bc=\relax \let\PYGdefault@ff=\relax} +\def\PYGdefault@tok#1{\csname PYGdefault@tok@#1\endcsname} +\def\PYGdefault@toks#1+{\ifx\relax#1\empty\else% + \PYGdefault@tok{#1}\expandafter\PYGdefault@toks\fi} +\def\PYGdefault@do#1{\PYGdefault@bc{\PYGdefault@tc{\PYGdefault@ul{% + \PYGdefault@it{\PYGdefault@bf{\PYGdefault@ff{#1}}}}}}} +\def\PYGdefault#1#2{\PYGdefault@reset\PYGdefault@toks#1+\relax+\PYGdefault@do{#2}} + +\expandafter\def\csname PYGdefault@tok@gd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gu\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@gt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYGdefault@tok@gs\endcsname{\let\PYGdefault@bf=\textbf} +\expandafter\def\csname PYGdefault@tok@gr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@cm\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@vg\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@m\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@mh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@go\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@ge\endcsname{\let\PYGdefault@it=\textit} +\expandafter\def\csname PYGdefault@tok@vc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@il\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@cs\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@cp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@gh\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@ni\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PYGdefault@tok@nl\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@no\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@na\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PYGdefault@tok@nb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nd\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@ne\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PYGdefault@tok@nf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@si\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@s2\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@vi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@nt\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@nv\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@s1\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kd\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sh\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sc\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sx\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@bp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c1\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@kc\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@c\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@mf\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@err\endcsname{\def\PYGdefault@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYGdefault@tok@mb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@ss\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PYGdefault@tok@sr\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PYGdefault@tok@mo\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kn\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@mi\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@gp\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYGdefault@tok@o\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYGdefault@tok@kr\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@s\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@kp\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@w\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYGdefault@tok@kt\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PYGdefault@tok@ow\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@sb\endcsname{\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@k\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PYGdefault@tok@se\endcsname{\let\PYGdefault@bf=\textbf\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PYGdefault@tok@sd\endcsname{\let\PYGdefault@it=\textit\def\PYGdefault@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYGdefaultZbs{\char`\\} +\def\PYGdefaultZus{\char`\_} +\def\PYGdefaultZob{\char`\{} +\def\PYGdefaultZcb{\char`\}} +\def\PYGdefaultZca{\char`\^} +\def\PYGdefaultZam{\char`\&} +\def\PYGdefaultZlt{\char`\<} +\def\PYGdefaultZgt{\char`\>} +\def\PYGdefaultZsh{\char`\#} +\def\PYGdefaultZpc{\char`\%} +\def\PYGdefaultZdl{\char`\$} +\def\PYGdefaultZhy{\char`\-} +\def\PYGdefaultZsq{\char`\'} +\def\PYGdefaultZdq{\char`\"} +\def\PYGdefaultZti{\char`\~} +% for compatibility with earlier versions +\def\PYGdefaultZat{@} +\def\PYGdefaultZlb{[} +\def\PYGdefaultZrb{]} +\makeatother + diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/.DS_Store b/m122/M122/Pruefungen/Prüfung 2c/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/.DS_Store differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/bfsulogo.jpg b/m122/M122/Pruefungen/Prüfung 2c/img/bfsulogo.jpg new file mode 100644 index 0000000..b318a45 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/bfsulogo.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/bzulogo.png b/m122/M122/Pruefungen/Prüfung 2c/img/bzulogo.png new file mode 100644 index 0000000..237e696 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/bzulogo.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/calvin.jpg b/m122/M122/Pruefungen/Prüfung 2c/img/calvin.jpg new file mode 100644 index 0000000..d65f5b2 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/calvin.jpg differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/s1.png b/m122/M122/Pruefungen/Prüfung 2c/img/s1.png new file mode 100644 index 0000000..b571d27 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/s1.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/s2.png b/m122/M122/Pruefungen/Prüfung 2c/img/s2.png new file mode 100644 index 0000000..4a20a52 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/s2.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/s3.png b/m122/M122/Pruefungen/Prüfung 2c/img/s3.png new file mode 100644 index 0000000..f49451a Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/s3.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/s4.png b/m122/M122/Pruefungen/Prüfung 2c/img/s4.png new file mode 100644 index 0000000..7a9dcc6 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/s4.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/s5.png b/m122/M122/Pruefungen/Prüfung 2c/img/s5.png new file mode 100644 index 0000000..496bc72 Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/s5.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/s6.png b/m122/M122/Pruefungen/Prüfung 2c/img/s6.png new file mode 100644 index 0000000..a7a80dd Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/s6.png differ diff --git a/m122/M122/Pruefungen/Prüfung 2c/img/s7.png b/m122/M122/Pruefungen/Prüfung 2c/img/s7.png new file mode 100644 index 0000000..19504cf Binary files /dev/null and b/m122/M122/Pruefungen/Prüfung 2c/img/s7.png differ