mirror of
https://gitlab.com/harald.mueller/aktuelle.kurse.git
synced 2024-11-24 02:31:58 +01:00
311 lines
9.5 KiB
TeX
311 lines
9.5 KiB
TeX
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
% 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<presentation> {
|
||
|
||
% 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 <<fertig
|
||
> 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} |