Merge branch 'master' of git.scytec.de:danthefan/linuxkurs

This commit is contained in:
Daniel Schubert 2019-03-06 09:38:21 +01:00
commit cf8c24a14d
35 changed files with 2590 additions and 879 deletions

2
.gitignore vendored
View File

@ -1,2 +1,4 @@
node_modules/
bower_components/
*.m4v
*.wav

421
15.html
View File

@ -42,26 +42,15 @@
<section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
<h1>LINUX</h1>
<h3>Das universelle Betriebssystem</h3>
<p>Eine Einführung - Teil 14
<p>Eine Einführung - Teil 15
<p> <small>Deutsche Angestellten Akademie</small> </p>
<aside class="notes">
Frage: Fragen zur letzten Stunde?
</aside>
</section>
<section data-transition="slide" data-background="#b5533c" data-background-transition="convex"> <h3>lampp stack</h3> </section>
<section data-transition="slide" data-background="#b5533c" data-background-transition="convex"> <h3>lampp stack</h3> Linux & Apache & mysql & php</section>
<section>
<ul>
<li>mysql basics</li>
<li>wordpress tabellen ansehen</li>
<li>apache vhost</li>
<li>letsencrypt</li>
<li></li>
<li></li>
<li></li>
</ul>
</section>
<section>
<pre><code class="bash">~$ sudo apt install apache2 mysql-server phpmyadmin</code></pre>
@ -80,17 +69,409 @@ MariaDB [(none)]> \q
</ul>
</section>
<!--
<section>
<h3>mysql</h3>
</section>
<section>
mysql ist eine „relationale Datenbank”
<p><blockquote> Relationale Datenbanken versuchen, die Realität in einem Datenmodell abzubilden.</blockquote>
<ul>
<li class="fragment ">mysql</li>
<li class="fragment ">LAMP</li>
<li class="fragment ">Multimedia</li>
<li class="fragment ">Gimp</li>
<li>Jede Zeile einer Tabelle ist ein Datensatz</li>
<li>Jede Zeile ( Tupel ) besteht aus <strong>Attributen</strong> ( die Spalten )</li>
<li>Über <strong>Primärschlüssel</strong> werden Beziehungen hergestellt</li>
<li>Eine Datenbank kann viele Tabellen beinhalten</li>
<li>Die Tabellen stehen in Beziehung ( Relation )</li>
</ul>
</section>
-->
<section>
<img src="img/relationales_datenbankmodell_beispiel.jpg">
<p><small style="font-size:.4em">Quelle: http://www.datenbanken-verstehen.de/datenbank-grundlagen/datenbankmodell/relationales-datenbankmodell/</small>
</section>
<section>
<h4>Normalisierung</h4>
Aufteilung der Attribute (Spalten) in mehrere Relationen ( Tabellen ), so dass eine Form ohne Redundanzen entsteht.
</section>
<section>
<img src="img/Aufspaltung_einer_Tabelle_in_zwei_(Beispiel).svg">
</section>
<section>
<table style="font-size: .5em">
<tr>
<td>Rg Nr</td>
<td>Datum</td>
<td>Name</td>
<td>Straße</td>
<td>Ort</td>
<td>Artikel</td>
<td>Anzahl</td>
<td>Preis</td>
</tr>
<tr>
<td>143</td>
<td>01.04.2018</td>
<td>Max Müller</td>
<td>Trumstrasse 4</td>
<td>75179 Pforzheim</td>
<td>Bleistift</td>
<td>1001</td>
<td>1,00€</td>
</tr>
</table>
</section>
<section>
1. Normalform
<table style="font-size: .5em">
<tr>
<td>Rg Nr</td>
<td>Datum</td>
<td>Vor Name</td>
<td>Nach Name</td>
<td>Straße</td>
<td>Hausnr</td>
<td>PLZ</td>
<td>Ort</td>
<td>Artikel</td>
<td>Anzahl</td>
<td>Preis</td>
</tr>
<tr>
<td>143</td>
<td>01.04.2018</td>
<td>Max</td>
<td>Müller</td>
<td>Trumstrasse</td>
<td> 4</td>
<td>75179</td>
<td> Pforzheim</td>
<td>Bleistift</td>
<td>1001</td>
<td>1,00€</td>
</tr>
</table>
</section>
<section>
<table style="font-size: .5em">
<tr>
<td>Rg Nr</td>
<td>Datum</td>
<td>Vor Name</td>
<td>Nach Name</td>
<td>Straße</td>
<td>Hausnr</td>
<td>PLZ</td>
<td>Ort</td>
<td>Artikel</td>
<td>Anzahl</td>
<td>Preis</td>
</tr>
<tr>
<td>144</td>
<td>01.04.2018</td>
<td>Max</td>
<td>Müller</td>
<td>Trumstrasse</td>
<td> 4</td>
<td>75179</td>
<td> Pforzheim</td>
<td>Bleistift</td>
<td>1001</td>
<td>1,00€</td>
</tr>
<tr>
<td>145</td>
<td>01.04.2018</td>
<td>Max</td>
<td>Müller</td>
<td>Trumstrasse</td>
<td> 4</td>
<td>75179</td>
<td> Pforzheim</td>
<td>Tüte</td>
<td>1001</td>
<td>0,10€</td>
</tr>
<tr>
<td>146</td>
<td>01.04.2018</td>
<td>Max</td>
<td>Müller</td>
<td>Trumstrasse</td>
<td> 4</td>
<td>75179</td>
<td> Pforzheim</td>
<td>Ratzefummel</td>
<td>1001</td>
<td>1,50€</td>
</tr>
</table>
</section>
<section>
Kunden
<table style="font-size: .5em">
<tr>
<td>ID</td>
<td>Vor Name</td>
<td>Nach Name</td>
<td>Straße</td>
<td>Hausnr</td>
<td>PLZ</td>
<td>Ort</td>
</tr>
<tr>
<td>1234</td>
<td>Max</td>
<td>Müller</td>
<td>Trumstrasse</td>
<td> 4</td>
<td>75179</td>
<td> Pforzheim</td>
</tr>
</table>
<hr>
<div>
Rechnungen:
<table style="font-size: .5em">
<tr>
<td>Rg Nr</td>
<td>Datum</td>
<td>KundenID</td>
<td>Artikel</td>
<td>Anzahl</td>
<td>Preis</td>
</tr>
<tr>
<td>144</td>
<td>01.04.2018</td>
<td>1234</td>
<td>Bleistift</td>
<td>1001</td>
<td>1,00</td>
</tr>
<tr>
<td>145</td>
<td>01.04.2018</td>
<td>1234</td>
<td>Tüte</td>
<td>12</td>
<td>0,10</td>
</tr>
<tr>
<td>146</td>
<td>01.04.2018</td>
<td>1234</td>
<td>Ratzefummel</td>
<td>32</td>
<td>1,50</td>
</tr>
</table>
</div>
</section>
<section>
<img src="img/Wp_Normal_1_301208_165800.JPG">
</section>
<section>
Verbindung aufnehmen:
<pre><code class="bash">~$ sudo mysql
# oder:
~$ mysql -u BENUTZERNAME -p -h localhost
</code></pre>
<ul>
<li class="fragment ">-u : Username</li>
<li class="fragment ">-p : Passwort abfragen</li>
<li class="fragment ">-h : Host</li>
</ul>
</section>
<section>Datenbank erstellen
<pre style="font-size:.4em"><code class="sql">CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE IF NOT EXISTS books (
BookID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Title VARCHAR(100) NOT NULL,
SeriesID INT, AuthorID INT);
CREATE TABLE IF NOT EXISTS authors
(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT);
CREATE TABLE IF NOT EXISTS series
(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT);
INSERT INTO books (Title,SeriesID,AuthorID)
VALUES('The Fellowship of the Ring',1,1),
('The Two Towers',1,1), ('The Return of the King',1,1),
('The Sum of All Men',2,2), ('Brotherhood of the Wolf',2,2),
('Wizardborn',2,2), ('The Hobbbit',0,1);</code></pre>
</section>
<section>Tabellen anzeigen
<pre><code class="sql">
SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| authors |
| books |
| series |
+----------------+
3 rows in set (0.00 sec)
</code></pre>
</section>
<section>
<pre><code class="sql">DESCRIBE books;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| BookID | int(11) | NO | PRI | NULL | auto_increment |
| Title | varchar(100) | NO | | NULL | |
| SeriesID | int(11) | YES | | NULL | |
| AuthorID | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
</code></pre>
</section>
<section>
Daten anzeigen:
<pre><code class="sql">SELECT * FROM books;
+--------+----------------------------+----------+----------+
| BookID | Title | SeriesID | AuthorID |
+--------+----------------------------+----------+----------+
| 1 | The Fellowship of the Ring | 1 | 1 |
| 2 | The Two Towers | 1 | 1 |
| 3 | The Return of the King | 1 | 1 |
| 4 | The Sum of All Men | 2 | 2 |
| 5 | Brotherhood of the Wolf | 2 | 2 |
| 6 | Wizardborn | 2 | 2 |
| 7 | The Hobbbit | 0 | 1 |
+--------+----------------------------+----------+----------+
7 rows in set (0.00 sec)</code></pre></section>
<section>Daten einfügen:
<pre><code class="sql">INSERT INTO books (Title, SeriesID, AuthorID)
VALUES ("Lair of Bones", 2, 2);
Query OK, 1 row affected (0.00 sec)</code></pre>
<pre><code>SELECT * FROM books;</code></pre></section>
<section>
Daten modifizieren:
<pre><code class="sql">UPDATE books
SET Title = "The Hobbit"
WHERE BookID = 7;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0</code></pre>
</section>
<section>
Speicherort: <pre><code>/var/lib/mysql</code></pre>
Konfiguration <pre><code>/etc/mysql/my.cnf</code></pre>
</section>
<section>
Andere Datenbanken:
<p><ul>
<li class="fragment ">PostgreSql</li>
<li class="fragment ">SQLite</li>
<li class="fragment ">Redis</li>
<li class="fragment ">MongoDB</li>
</ul>
</section>
<section data-transition="slide" data-background="#b5533c" data-background-transition="convex"> <h3>Apache Webserver</h3></section>
<section>
<ul>
<li>Apache ist der meistgenutzte (?) Webserver</li>
<li class="fragment ">Apache beantwortet http Requests. </li>
<li class="fragment ">Punkt.</li>
<li class="fragment ">kennt Module -> Funtionserweiterung</li>
<li class="fragment ">interpretiert versch. Script-Sprachen über Module</li>
<li class="fragment "><a href="https://de.wikipedia.org/wiki/Apache_HTTP_Server#Module">Liste der Module</a></li>
<li class="fragment ">php, ruby, perl, lua, JavaScript, .net .....</li>
</ul>
</section>
<section>
<ul>
<li>aktuelle Version 2.3 ( deswegen apache2 )</li>
<li class="fragment ">Standard Speicherort f. Webseiten: /var/www/html</li>
<li class="fragment ">Aufruf per Browser : <br>http://localhost/ <br>http://SERVER-IP_ODER_NAME/</li>
<li class="fragment ">Standardmässig wird <code>index.html</code> ausgeliefert</li>
<li class="fragment ">wenn nicht vorhanden Liste des Verz. Inhalt</li>
<li class="fragment ">Steuerung über <br><code>systemctl start | stop | restart | reload | force-reload apache2</code> </li>
</ul>
</section>
<section>
<h4>Konfiguration</h4>
<ul>
<li class="fragment "><code>/etc/apache2/apache2.conf</code></li>
<li class="fragment ">Zusätzliche conf Files: <br><code>/etc/apache2/conf-available/</code></li>
<li class="fragment ">Einzelne Webseiten ( vhosts ) <br><code>/etc/apache2/sites-available/</code></li>
<li class="fragment ">per Verzeichnis: <code>.htaccess</code></li>
</ul>
</section>
<section>
De-/ Aktivieren einer Zusätzlichen Konfigurationsdatei <pre><code class="bash">~$ sudo a2enconf NAME_DER_DATEI.conf
~$ sudo a2disconf NAME_DER_DATEI.conf </code></pre>
De-/ Aktivieren einer Zusätzlichen Webseite <pre><code class="bash">~$ sudo a2ensite MEINE_WEBSEITE.conf
~$ sudo a2dissite MEINE_WEBSEITE.conf </code></pre>
<small>Diese beiden Befehle machen Symlinks in die Ordner <br><code>/etc/apache/[ conf | site ]-enabled</code></small>
<hr>
<p>Nach Änderungen in diesen Dateien: <pre><code class="bash">~$ sudo systemctl reload apache2</code></pre>
</section>
<section>
<h4>Virtual Hosts</h4>
<div>Es ist möglich, von einem Server verschiedene Domains auszuliefern mit sog. Virtual Hosts.</div>
<p>Beispiel:: <a href="beispiele/15/schubertdaniel.conf">beispiele/15/schubertdaniel.conf</a>
</section>
<section>
<span style="color: orange">Aufgabe:</span> <p>Erstellt eine Webseite namens omikron, die per <p><code>http://localhost/omikron</code> <br>aus dem Ordner <p><code>/var/www/html/omikron</code> <br>ausgeliefert wird.
</section>
<section><span style="color: orange">Aufgabe:</span> <p>Verlegt die Wordpress Installation nach <code>/home/NUTZERNAME/www/wordpress</code></section>
<!--
<section>

383
16.html Normal file
View File

@ -0,0 +1,383 @@
<!doctype html>
<html lang="de">
<meta charset="utf-8">
<title>Einführung in Linux</title>
<meta name="description" content="YALC - Yet Another Linux Course ">
<meta name="author" content="Daniel Schubert">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/league.css" id="theme">
<link rel="icon" href="img/openlogo-nd-25.png" type="img/png">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<style type="text/css">
.reveal img{ max-height: 60vh}
</style>
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
<section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
<h1>LINUX</h1>
<h3>Das universelle Betriebssystem</h3>
<p>Eine Einführung - Teil 16
<p> <small>Deutsche Angestellten Akademie</small> </p>
<aside class="notes">
Frage: Fragen zur letzten Stunde?
</aside>
</section>
<section data-transition="slide" data-background="#b5533c" data-background-transition="convex" ><h3 >Linux und Multimedia</h3></section>
<section data-transition="slide" data-background="img/trianglify.svg" data-background-transition="convex"> <h3 style="color: lightgrey; text-shadow: 1px 1px black">Bildbearbeitung</h3></section>
<section>
<h5>the Gimp</h5>
<p>GNU Image Manipulation Programm</p>
<img src="img/2019-03-02-124423_1366x768_scrot.png">
</section>
<section>
<h5>Darktable</h5>
<img src="img/2019-03-02-124938_1366x768_scrot.png">
</section>
<section>
<h5>Inkscape</h5>
<p>Vektorbilder </p>
<img src="img/2019-03-02-125227_1366x768_scrot.png">
</section>
<section>
<p><a href="https://imagemagick.org/index.php" target="_blank">ImageMagick</a>
<pre><code> sudo apt install imagemagick</code></pre>
<ul>
<li>convert / mogrify
</ul>
<pre><code class="bash">convert bild.jpg out.gif </code></pre>
<ul>
<li>montage</li>
</ul>
<pre><code>montage *.jpg out.jpg</code></pre>
<ul>
<li>import</li>
</ul>
<pre><code>import screen.jpg</code></pre>
</section>
<section>
<pre><code class="bash" contenteditable>
# komprimiert ein jpg ohne sichtbare Qualitätsverluste
# ( zb für Webseiten Deployment )
convert -strip -interlace Plane -sampling-factor 4:2:0 \
-quality 85% quelle.jpg result.jpg
# das selbe, aber rekursiv und destruktiv
find . -name "*.jpg" -exec mogrify -strip -interlace Plane \
-sampling-factor 4:2:0 -quality 85% {} \;
# Bild beschneiden und zentrieren
convert input.jpg -crop '1900x1400+0+0'\
-gravity Center output.jpg
</code></pre>
</section>
<section>
<pre style="width: 80vw; font-size: .5em"><code class="bash">convert -size 320x90 canvas:none -stroke snow4 -size 1x90 -tile gradient:white-snow4 \
-draw 'roundrectangle 16, 5, 304, 85 20,40' +tile -fill snow \
-draw 'roundrectangle 264, 5, 304, 85 20,40' -tile gradient:chartreuse-green \
-draw 'roundrectangle 16, 5, 180, 85 20,40' -tile gradient:chartreuse1-chartreuse3 \
-draw 'roundrectangle 140, 5, 180, 85 20,40' +tile -fill none \
-draw 'roundrectangle 264, 5, 304, 85 20,40' -strokewidth 2 \
-draw 'roundrectangle 16, 5, 304, 85 20,40' \( +clone -background snow4 \
-shadow 80x3+3+3 \) +swap -background none -layers merge \( +size -pointsize 90 \
-strokewidth 1 -fill red label:'50 %' -trim +repage \( +clone -background firebrick3 \
-shadow 80x3+3+3 \) +swap -background none -layers merge \) -insert 0 -gravity center \
-append -background white -gravity center -extent 320x200 cylinder_shaded.png</code></pre>
</section>
<section>Ein Bild verschlüsseln
<pre><code class="bash">convert rose.jpg -encipher passphrase.txt rose.png</code></pre>
<pre><code class="bash"># ein anders Bild als Passwort
convert rose.jpg -encipher smiley.gif rose.png</code></pre>
<pre><code class="bash"># entschlüsseln
convert rose.png -decipher smiley.gif rose.jpg</code></pre>
<a href="https://imagemagick.org/Usage/transform/#encipher">ImageMagick Hilfe Seite</a>
</section>
<section>
<span style="color: orange">Aufgabe:</span>
<ul>
<li>Bereitet <a href="https://www.schubertdaniel.de/linuxkurs/bilder.zip">diese Bilder</a> vor für eine Bildergallerie. </li>
<li>Die Bilder sollen nicht grösser als 1200x800px sein.</li>
<li>Die Bilder sollen nicht beschnitten werden.</li>
<li>Die Metadaten sollen entfernt werden.</li>
<li>Veröffentlicht die Bilder in einer Gallerie auf eurer Wordpress Seite.</li>
</ul>
Hinweis:
<pre><code>convert input.jpg -resize '1200x800' output.jpg</code></pre>
</section>
<section>
screenshots mit scrot
<pre><code class="bash">~$ scrot -d 5 '%Y-%m-%d_$wx$h.png'</code></pre>
</section>
<section data-transition="slide" data-background="img/trianglify.svg" data-background-transition="convex"> <h3 style="color: lightgrey; text-shadow: 1px 1px black">Video Editing / Transkodierung</h3></section>
<section>
<h4>Einfacher Videoschnitt</h4>
<ul>
<li class="fragment">OpenShot
<div><img src="img/openshot-screen.jpg"></div></li>
<li class="fragment">Pitivi</li>
<li class="fragment">KDEnlive</li>
</ul>
</section>
<section>
<h4 class="fragment">Anspruchsvoller Videoschnitt</h4>
<ul>
<li class="fragment">Blender - eigentl. 3D-Rendering <ul><li><a href="https://www.youtube.com/watch?v=YE7VzlLtp-4">Big Buck Bunny bei YouTube</a></li>
<li><a href="https://www.blenderguru.com/articles/27-inspiring-blender-animations-that-will-make-your-jaw-drop">Blender Videos</a></li></ul>
<li class="fragment">Lightworks</li>
</ul>
</section>
<section>
<h3>Ausflug</h3>
Video Container
</section>
<section>
Ein Video Container beinhält
<ul>
<li class="fragment ">Eine Videospur</li>
<li class="fragment ">eine oder mehrere Audiospuren</li>
<li class="fragment ">Untertitel</li>
</ul>
</section>
<section>
Die Videospur ist meist kodiert mit
<ul>
<li class="fragment ">mpeg-1</li>
<li class="fragment ">mpeg-4</li>
<li class="fragment ">mpeg4-part10: h264 / h265</li>
<li class="fragment ">vp8 / vp9 </li>
<li class="fragment ">theora</li>
</ul>
</section>
<section>
Die Audiospur ist meist kodiert mit
<p>
<ul>
<li class="fragment ">mp3</li>
<li class="fragment ">aac</li>
<li class="fragment ">ogg vorbis</li>
<li class="fragment ">opus</li>
</ul>
</section>
<section>
Zusammengesetzt ergeben sich Container
<ul>
<li class="fragment ">mp4 : h264 + mp3 ( <a href="https://de.wikipedia.org/wiki/MP4">Wikipedia</a> )</li>
<li class="fragment ">webm : vp9 + opus ( <a href="https://de.wikipedia.org/wiki/WebM">Wikipedia</a> )</li>
<li class="fragment ">ogv : theora + ogg ( <a href="https://de.wikipedia.org/wiki/Ogg">Wikipedia</a> )</li>
<li class="fragment ">mehr <a href="https://de.wikipedia.org/wiki/Containerformat">Wikipedia</a></li>
</ul>
</section>
<section>
<h4>ffmpeg</h4>
<h5>Das Schweizer Taschenmesser der Audio / Video Konvertierung</h5>
<pre><code class="bash"># einfache Transkodierung
ffmpeg -i videoi.avi video.mpg
# DVD Rip
ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k \
-g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.mpg
# h264 kodiertes mp4 zur Darstellung im Browser
ffmpeg -i infile.avi -vf scale=1200:800 -b:v 600k \
-b:a 128k -c:v libx264 -preset medium outfile.mp4
# mp3 aus wav
ffmpeg -i infile.wav -b:a 192k outfile.mp3
</code></pre>
</section>
<section>
<pre><code class="bash" contenteditable>
# produziert 3 Videos; benötigt für Webseiten
# damit alle Browser d. Video abspielen
# video: h264; audio: aac ( default )
ffmpeg -i infile -b:v 600k -b:a 128k -c:v libx264 out.mp4
# video: vp9; audio: opus ( default )
ffmpeg -i infile -b:v 600k -b:a 128k out.webm
# video: theora; audio: ogg vorbis
ffmpeg -i infile -codec:v libtheora -qscale:v 7 \
-codec:a libvorbis -qscale:a 5 out.ogv
</code></pre>
</section>
<section>
<ul>
<li>Handbrake</li>
<li>libdvdcss</li>
</ul>
</section>
<section>
<span style="color: orange">Aufgabe:</span>
<ul>
<li>installiert ffmpeg</li>
<li>erstellt aus <a href="/beispiele/16/infile.m4v">DIESEM</a> Video einen 10sec langen mp4 Video-Snippet.</li>
<li>erstellt aus <a href="/beispiele/16/wav-file.zip">DIESEM</a> Wav ein MP3 mit 192kB Bitrate.</li>
<li>erstellt aus der Wav-Datei eine flac Datei.</li>
<li>vergleicht die Grössen.</li>
<li>Warum ist es nicht sinnvoll aus einem mp3 ein wav zu machen?</li>
</ul>
Hinweis:
<pre><code class="bash" contenteditable># 10sec langes video:
ffmpeg -t 10 -i ..... </code></pre>
</section>
<section data-transition="slide" data-background="img/Jaromir-Chalabala1.jpg" data-background-transition="convex"> <h3 style="color: lightgrey; text-shadow: 1px 1px black">Audio Production</h3></section>
<section>
Audio unter Linux ist .... interessant.
<p>Meist Kombination aus Pulseaudio / ALSA
<p>PulseAudio -> Middleware
<p>ALSA -> Treiber
<p>Für Echtzeit-Audio-Verarbeitung ( möglichst geringe Latenzen ) muss die Kombination Jack / ALsa konfiguriert werden
<aside class="notes">alsamixer</aside>
</section>
<section>Audacity
<div><img src="img/audacity.png"></div></section>
<section>
Ardour - Professionelles Recording
<div><img src="img/ardour.jpg"></div>
</section>
<section>
Guitarix - Virtueller Gitarrenamp
<div><img src="img/guitarix.jpg"></div>
</section>
<section>
<p><a href="http://kxstudio.linuxaudio.org/index.php">Plugins und andere Tools</a>
</section>
<section>
Jack
<div><img src="img/QjackctlConnectionsForm.png"></div>
</section>
<section>
<h4>Abspielprgramme</h4>
<ul>
<li class="fragment">VLC</li>
<li class="fragment">Mplayer</li>
<li class="fragment">Rhythmbox</li>
<li class="fragment">mocp</li>
</ul>
</section>
<section>
<h4>Multimedia Distributionen</h4>
<ul>
<li><a href="http://www.bandshed.net/avlinux/">avlinux</a></li>
<li><a href="http://ubuntustudio.org">UbuntuStudio</a></li>
</ul>
</section>
<section>
<h4>Gaming</h4>
<ul>
<li class="fragment ">Steam</li>
<li class="fragment ">GOG</li>
<li class="fragment ">viele Open Source Spiele
<ul>
<li>Sauerbraten</li>
<li>Assault Cube</li>
<li>Zero-K</li>
<li>0 A.D.</li>
<li>Flightgear</li>
</ul>
</li>
</ul>
</section>
</div>
</div>
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
<script>
// More info https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
transition: 'slide', // none/fade/slide/convex/concave/zoom
// More info https://github.com/hakimel/reveal.js#dependencies
dependencies: [
{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'plugin/search/search.js', async: true },
{ src: 'plugin/zoom-js/zoom.js', async: true },
{ src: 'plugin/notes/notes.js', async: true }
]
});
</script>
</body>
</html>

130
17.html Normal file
View File

@ -0,0 +1,130 @@
<!doctype html>
<html lang="de">
<meta charset="utf-8">
<title>Einführung in Linux</title>
<meta name="description" content="YALC - Yet Another Linux Course ">
<meta name="author" content="Daniel Schubert">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/league.css" id="theme">
<link rel="icon" href="img/openlogo-nd-25.png" type="img/png">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<style type="text/css">
.reveal img{ max-height: 60vh}
</style>
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
<section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
<h1>LINUX</h1>
<h3>Das universelle Betriebssystem</h3>
<p>Übungen
<p> <small>Deutsche Angestellten Akademie</small> </p>
<aside class="notes">
Frage: Fragen zur letzten Stunde?
</aside>
</section>
<section style="font-size: .6em">
<span style="color: orange">Experimente mit versch. Kompressionsprogrammen ( gzip, bzip2, xz ):</span>
<ul>
<li>Besorgen Sie sich eine geeignete Datei (etwa ein größeres tar -Archiv zB den Linux Kernel) und komprimieren Sie sie jeweils mit gzip , bzip2 und xz . Messen Sie dabei die Ausführungszeit durch ein vorgesetztes time . Wie verhalten die Laufzeiten und die Komprimierungsraten sich zueinander?</li>
<li>Experimentieren Sie mit der Datei aus der vorigen Aufgabe und vergleichen Sie die Laufzeit und die Größe des Resultats für xz mit verschiedenen Effizienz-Optionen. Was ist der Unterschied zwischen -1 und -6 und zwischen -6 und -9 ?</li>
<li></li>
</ul>
<p>Hinweise:
</section>
<section style="font-size: .65em">
<h4>Übungen mit grep / reguläre Ausdrücke</h4>
<ul>
<li>
Sind die Operatoren ? und + in regulären Ausdrücken wirklich nötig?
</li>
<li>
Finden Sie in <a href="/beispiele/17/frosch.txt">frosch.txt</a> alle Zeilen, in denen das Wort »Tochter« oder »Königstochter« vorkommt.
</li>
<li>
In der Datei /etc/passwd stehen die Benutzer des Rechners (meistens jedenfalls). Jede Zeile der Datei besteht aus einer Reihe von durch Doppelpunkten getrennten Feldern. Das letzte Feld jeder Zeile gibt die Login-Shell eines Benutzers an. Geben Sie eine grep-Kommandozeile an, mit der Sie alle Benutzer finden können, die die Bash als Login-Shell verwenden.
</li>
<li>
Suchen Sie in /usr/share/dict/words nach allen Wörtern, die die genau die fünf Vokale »a«, »e«, »i«, »o« und »u« in dieser Reihenfolge enthalten (möglicherweise mit Konsonanten davor, dazwischen und dahinter).
</li>
<li>
Geben Sie ein Kommando an, das im »Froschkönig« alle Zeilen sucht und ausgibt, in denen irgendein mindestens vierbuchstabiges Wort zweimal auftritt.
</li>
</ul>
<p>Quelle: <a href="/pdf/Linux-Kurs/lxes-de-manual.pdf">lxes-de-manual.pdf</a>
</section>
<section>
Übungen
C8.7 [2] Wie können Sie prüfen, ob in einem Verzeichnis Dateien mit »merkwürdigen« Namen enthalten sind, etwa solche mit Leerzeichen am Schluss
oder mit unsichtbaren Steuerzeichen in der Mitte?
</section>
</div>
</div>
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
<script>
// More info https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
transition: 'slide', // none/fade/slide/convex/concave/zoom
// More info https://github.com/hakimel/reveal.js#dependencies
dependencies: [
{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'plugin/search/search.js', async: true },
{ src: 'plugin/zoom-js/zoom.js', async: true },
{ src: 'plugin/notes/notes.js', async: true }
]
});
</script>
</body>
</html>

View File

@ -0,0 +1,21 @@
<VirtualHost 144.76.58.9:80 [2a01:4f8:191:6204:0:0:0:2]:80 >
ServerName www.schubertdaniel.de
ServerAlias schubertdaniel.de
DocumentRoot /home/dany/www/schubertdaniel
DirectoryIndex index.php index.html
CustomLog /home/dany/www/log/schubertdaniel.log common
Header set Content-Language: de
<Directory /home/dany/www/schubertdaniel>
AllowOverride All # ermöglicht .htaccess
Require all granted # öffentlich zugänglich
Options -Indexes # kein Inhaltslisting
</Directory>
</VirtualHost>

34
beispiele/15/wp-backup.sh Normal file
View File

@ -0,0 +1,34 @@
#!/bin/bash
function db_backup {
# Vars
host=localhost
user=XXXXXXX
pass=XXXXXXX
db=wordpress
echo 'DB Export ------> '
mysqldump --opt --add-drop-table -h$host -u$user -p$pass $db | gzip > wp-db.sql.gz
}
function file_backup {
backupfile="wordpress-backup.tar"
echo 'File Backup --- building tar File...'
tar -cf $backupfile ~/wp*
echo '+DONE'
}
echo '-------------------------------------------'
echo 'Tolles Backup Script'
echo '-------------------------------------------'
backupdir=backup
cd ~ ; mkdir $backupdir && cd $backupdir || { echo "FEHLER!!!!"; exit 1 }
# Funktionsaufrufe
db_backup
file_backup

BIN
beispiele/16/bild.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

View File

@ -0,0 +1,6 @@
#!/bin/bash
ffmpeg -t 5 -i infile out-def.mp4
ffmpeg -t 5 -i infile out-def.webm
ffmpeg -t 5 -i infile out-def.ogv

View File

@ -0,0 +1,6 @@
#!/bin/bash
# 5 sec langes Video
ffmpeg -t 5 -i infile -b:v 600k -b:a 128k -c:v libx264 out.mp4
ffmpeg -t 5 -i infile -b:v 600k -b:a 128k out.webm
ffmpeg -t 5 -i infile -codec:v libtheora -qscale:v 5 -codec:a libvorbis -qscale:a 5 out.ogv

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -0,0 +1,20 @@
#!/usr/bin/env ruby
def convert(file,filebase)
#`ffmpeg -i '#{file}' -ab 192k '#{filebase}'.mp3`
`lame -q 0 -b 192 '#{file}' '#{filebase}'.mp3`
end
dir = Dir.new(".")
while file = dir.read do
reg = /(m4a|ogg|wav)/i
puts reg
if file.match(reg)
filebase = File.basename(file, "." + file.match(reg).to_s)
convert(file, filebase)
else
puts "Keine passende Datei gefunden: m4a, ogg, wav. "
end
end

BIN
beispiele/16/wav-file.zip Normal file

Binary file not shown.

View File

@ -0,0 +1,91 @@
#!/usr/bin/env ruby
require "date"
require "fileutils"
$NOW = Date.today.strftime("%d-%m-%Y_%H:%M:%S")
# borg repository
$REPO = "/home/dany/backups/borg"
# websites folder
$WEBSITESDIR = "/home/dany/www"
# local backup folder for db files
$BACKUPDIR = "/home/dany/backups"
unless File.exist?( $BACKUPDIR )
FileUtils.mkdir_p( $BACKUPDIR )
end
# Unterverzeichnisse von www die gebackuppt werden sollen
liste = [
"conf",
"danletard.de",
"papier-restaurierung",
"schubertdaniel",
"x2ero",
"conworx",
"rvv/wp-content",
"rvv/shop"
]
# websites
def websites( liste )
Dir.chdir( $WEBSITESDIR )
liste.each do |elem|
if File.exist?( elem )
`borg create -C zlib,8 #{$REPO}::#{elem}-{now:%d-%m-%Y_%H:%M:%S} #{elem} --exclude '*mpeg'`
else
puts "File or Directory \"#{elem}\" not found!\n"
end
end
end
# davical db backup
def calendar_db_backup
Dir.chdir( $BACKUPDIR )
`pg_dump -U davical_app davical | gzip > kalender-#{$NOW}.psql.gz`
end
# wordpress db backup
def wp_db_backup
host= "localhost"
user= "rvv"
pass= "owUy9JTWLHQ0"
#db= "rvv0rettung"
db= "rvv_dev"
do_sql_backup(host,user,pass,db)
end
# oxid db backup
def oxid_db_backup
host= "localhost"
user= "rvv"
pass= "owUy9JTWLHQ0"
db= "rvv_shop"
do_sql_backup(host,user,pass,db)
end
#
# Helper function
#
def do_sql_backup(host,user,pass,db)
Dir.chdir( $BACKUPDIR )
`mysqldump --opt --add-drop-table -h#{host} -u#{user} -p#{pass} #{db} | gzip > #{db}-#{$NOW}.sql.gz`
end
websites( liste )
wp_db_backup
oxid_db_backup
calendar_db_backup
FileUtils.chown_R( 1000, 1000, $BACKUPDIR)

158
beispiele/17/frosch.txt Normal file
View File

@ -0,0 +1,158 @@
Der Froschkönig oder der eiserne Heinrich
In alten Zeiten, als das Wünschen noch geholfen hat, lebte einmal ein
König, der hatte wunderschöne Töchter. Die jüngste von ihnen war so
schön, daß die Sonne selber, die doch so vieles schon gesehen hat,
sich verwunderte, sooft sie ihr ins Gesicht schien.
Nahe bei dem Schlosse war ein großer, dunkler Wald, und mitten darin,
unter einer alten Linde, war ein Brunnen. Wenn nun der Tag recht heiß war,
ging die jüngste Prinzessin hinaus in den Wald und setzte sich an den Rand
des kühlen Brunnens. Und wenn sie Langeweile hatte, nahm sie eine
goldene Kugel, warf sie in die Höhe und fing sie wieder auf. Das war
ihr liebstes Spiel.
Nun trug es sich einmal zu, daß die goldene Kugel der Königstochter
nicht in die Händchen fiel, sondern auf die Erde schlug und gerade in
den Brunnen hineinrollte. Die Königstochter folgte ihr mit den Augen
nach, aber die Kugel verschwand, und der Brunnen war tief, so tief,
daß man keinen Grund sah.
Da fing die Prinzessin an zu weinen und weinte immer lauter und konnte
sich gar nicht trösten. Als sie so klagte, rief ihr plötzlich jemand
zu: »Was hast du nur, Königstochter? Du schreist ja, daß sich ein
Stein erbarmen möchte.«
Sie sah sich um, woher die Stimme käme, da erblickte sie einen Frosch,
der seinen dicken, häßlichen Kopf aus dem Wasser streckte. »Ach, du
bist's, alter Wasserpatscher«, sagte sie. »Ich weine über meine
goldene Kugel, die mir in den Brunnen hinabgefallen ist.«
»Sei still und weine nicht«, antwortete der Frosch, »ich kann wohl Rat
schaffen. Aber was gibst du mir, wenn ich dein Spielzeug wieder
heraufhole?«
»Was du haben willst, lieber Frosch«, sagte sie, »meine Kleider, meine
Perlen und Edelsteine, auch noch die goldene Krone, die ich trage.«
Der Frosch antwortete: »Deine Kleider, deine Perlen und Edelsteine und
deine goldene Krone, die mag ich nicht. Aber wenn du mich liebhaben
willst und ich dein Geselle und Spielkamerad sein darf, wenn ich an
deinem Tischlein neben dir sitzen, von deinem goldenen Tellerlein
essen, aus deinem Becherlein trinken, in deinem Bettlein schlafen
darf, dann will ich hinuntersteigen und dir die goldene Kugel
heraufholen.«
»Ach, ja«, sagte sie, »ich verspreche dir alles, was du willst, wenn
du mir nur die Kugel wiederbringst.« Sie dachte aber, der einfältige
Frosch mag schwätzen, was er will, der sitzt doch im Wasser bei
seinesgleichen und quakt und kann keines Menschen Geselle sein!
Als der Frosch das Versprechen der Königstochter erhalten hatte,
tauchte er seinen Kopf unter, sank hinab, und über ein Weilchen kam er
wieder heraufgerudert, hatte die Kugel im Maul und warf sie ins
Gras. Die Königstochter war voll Freude, als sie ihr schönes Spielzeug
wiedererblickte, hob es auf und sprang damit fort.
»Warte, warte!« rief der Frosch. »Nimm mich mit, ich kann nicht so
laufen wie du!« Aber was half es ihm, daß er ihr sein Quak-quak so
laut nachschrie, wie er nur konnte! Sie hörte nicht darauf, eilte nach
Hause und hatte den Frosch bald vergessen.
Am andern Tag, als sie sich mit dem König und allen Hofleuten zur
Tafel gesetzt hatte und eben von ihrem goldenen Tellerlein aß, da kam,
plitsch platsch, plitsch platsch, etwas die Marmortreppe
heraufgekrochen. Als es oben angelangt war, klopfte es an die Tür und
rief. »Königstochter, jüngste, mach mir auf«
Sie lief und wollte sehen, wer draußen wäre. Als sie aber aufmachte,
saß der Frosch vor der Tür. Da warf sie die Tür hastig zu, setzte sich
wieder an den Tisch, und es war ihr ganz ängstlich zumute.
Der König sah wohl, daß ihr das Herz gewaltig klopfte, und sprach:
»Mein Kind, was fürchtest du dich? Steht etwa ein Riese vor der Tür
und will dich holen?«
»Ach, nein«, antwortete sie, »es ist kein Riese, sondern ein garstiger
Frosch.«
»Was will der Frosch von dir?«
»Ach, lieber Vater, als ich gestern im Wald bei dem Brunnen saß und
spielte, fiel meine goldene Kugel ins Wasser. Als ich deshalb weinte,
hat sie mir der Frosch heraufgeholt. Und weil er es durchaus
verlangte, versprach ich ihm, er sollte mein Spielgefährte werden. Ich
dachte aber nimmermehr, daß er aus seinem Wasser käme. Nun ist er
draußen und will zu mir herein.«
Da klopfte es zum zweiten Mal, und eine Stimme rief:
»Königstochter, jüngste,
Mach mir auf!
Weißt du nicht, was gestern
Du zu mir gesagt
Bei dem kühlen Brunnenwasser?
Königstochter, jüngste,
Mach mir auf!«
Da sagte der König: »Was du versprochen hast, das mußt du auch halten!
Geh nur und mach ihm auf!«
Sie ging und öffnete die Tür. Da hüpfte der Frosch herein und hüpfte
ihr immer nach bis zu ihrem Stuhl. Dort blieb er sitzen und rief: »Heb
mich hinauf zu dir!« Sie zauderte, bis es endlich der König
befahl. Als der Frosch auf dem Stuhl war, wollte er auf den Tisch, und
als er da saß, sprach er: »Nun schieb mir dein goldenes Tellerlein
näher, damit wir mitsammen essen können.« Der Frosch ließ sich's gut
schmecken, ihr aber blieb fast jeder Bissen im Halse stecken.
Endlich sprach der Frosch: »Ich habe mich satt gegessen und bin
müde. Nun trag mich in dein Kämmerlein und mach dein seidenes Bettlein
zurecht!« Die Königstochter fing an zu weinen und fürchtete sich vor
dem kalten Frosch, den sie sich nicht anzurühren getraute und der nun
in ihrem schönen, reinen Bettlein schlafen sollte.
Der König aber wurde zornig und sprach: »Wer dir geholfen hat, als du
in Not warst, den sollst du hernach nicht verachten!«
Da packte sie den Frosch mit zwei Fingern, trug ihn hinauf in ihr
Kämmerlein und setzte ihn dort in eine Ecke. Als sie aber im Bette
lag, kam er gekrochen und sprach: »Ich will schlafen so gut wie
du. Heb mich hinauf, oder ich sag's deinem Vater!«
Da wurde sie bitterböse, holte ihn herauf und warf ihn gegen die
Wand. »Nun wirst du Ruhe geben«, sagte sie, »du garstiger Frosch!« Als
er aber herabfiel, war er kein Frosch mehr, sondern ein Königssohn mit
schönen freundlichen Augen. Der war nun nach ihres Vaters Willen ihr
lieber Geselle und Gemahl. Er erzählte ihr, er wäre von einer bösen
Hexe verwünscht worden, und niemand hätte ihn aus dem Brunnen erlösen
können als sie allein, und morgen wollten sie mitsammen in sein Reich
gehen.
Und wirklich, am anderen Morgen kam ein Wagen herangefahren, mit acht
weißen Pferden bespannt, die hatten weiße Straußfedern auf dem Kopf
und gingen in goldenen Ketten. Hinten auf dem Wagen aber stand der
Diener des jungen Königs, das war der treue Heinrich.
Der treue Heinrich hatte sich so gekränkt, als sein Herr in einen
Frosch verwandelt worden war, daß er drei eiserne Bänder um sein Herz
hatte legen lassen, damit es ihm nicht vor Weh und Traurigkeit
zerspränge.
Der Wagen sollte nun den jungen König in sein Reich holen. Der treue
Heinrich hob ihn und seine junge Gemahlin hinein, stellte sich wieder
hinten hinauf und war voll Freude über die Erlösung seines Herrn. Als
sie ein Stück des Weges gefahren waren, hörte der Königssohn, daß es
hinter ihm krachte, als ob etwas zerbrochen wäre. Da drehte er sich um
und rief:
»Heinrich, der Wagen bricht!«
»Nein, Herr, der Wagen nicht,
Es ist ein Band von meinem Herzen,
Das da lag in großen Schmerzen,
Als Ihr in dem Brunnen saßt
Und in einen Frosch verzaubert wart.«
Noch einmal und noch einmal krachte es auf dem Weg, und der Königssohn
meinte immer, der Wagen bräche. Doch es waren nur die Bänder, die vom
Herzen des treuen Heinrich absprangen, weil sein Herr nun erlöst und
glücklich war.

View File

@ -0,0 +1,158 @@
Der Froschkönig oder der eiserne Heinrich
In alten Zeiten, als das Wünschen noch geholfen hat, lebte einmal ein
König, der hatte wunderschöne Töchter. Die jüngste von ihnen war so
schön, daß die Sonne selber, die doch so vieles schon gesehen hat,
sich verwunderte, sooft sie ihr ins Gesicht schien.
Nahe bei dem Schlosse war ein großer, dunkler Wald, und mitten darin,
unter einer alten Linde, war ein Brunnen. Wenn nun der Tag recht heiß war,
ging die jüngste Prinzessin hinaus in den Wald und setzte sich an den Rand
des kühlen Brunnens. Und wenn sie Langeweile hatte, nahm sie eine
goldene Kugel, warf sie in die Höhe und fing sie wieder auf. Das war
ihr liebstes Spiel.
Nun trug es sich einmal zu, daß die goldene Kugel der Königstochter
nicht in die Händchen fiel, sondern auf die Erde schlug und gerade in
den Brunnen hineinrollte. Die Königstochter folgte ihr mit den Augen
nach, aber die Kugel verschwand, und der Brunnen war tief, so tief,
daß man keinen Grund sah.
Da fing die Prinzessin an zu weinen und weinte immer lauter und konnte
sich gar nicht trösten. Als sie so klagte, rief ihr plötzlich jemand
zu: »Was hast du nur, Königstochter? Du schreist ja, daß sich ein
Stein erbarmen möchte.«
Sie sah sich um, woher die Stimme käme, da erblickte sie einen Frosch,
der seinen dicken, häßlichen Kopf aus dem Wasser streckte. »Ach, du
bist's, alter Wasserpatscher«, sagte sie. »Ich weine über meine
goldene Kugel, die mir in den Brunnen hinabgefallen ist.«
»Sei still und weine nicht«, antwortete der Frosch, »ich kann wohl Rat
schaffen. Aber was gibst du mir, wenn ich dein Spielzeug wieder
heraufhole?«
»Was du haben willst, lieber Frosch«, sagte sie, »meine Kleider, meine
Perlen und Edelsteine, auch noch die goldene Krone, die ich trage.«
Der Frosch antwortete: »Deine Kleider, deine Perlen und Edelsteine und
deine goldene Krone, die mag ich nicht. Aber wenn du mich liebhaben
willst und ich dein Geselle und Spielkamerad sein darf, wenn ich an
deinem Tischlein neben dir sitzen, von deinem goldenen Tellerlein
essen, aus deinem Becherlein trinken, in deinem Bettlein schlafen
darf, dann will ich hinuntersteigen und dir die goldene Kugel
heraufholen.«
»Ach, ja«, sagte sie, »ich verspreche dir alles, was du willst, wenn
du mir nur die Kugel wiederbringst.« Sie dachte aber, der einfältige
Frosch mag schwätzen, was er will, der sitzt doch im Wasser bei
seinesgleichen und quakt und kann keines Menschen Geselle sein!
Als der Frosch das Versprechen der Königstochter erhalten hatte,
tauchte er seinen Kopf unter, sank hinab, und über ein Weilchen kam er
wieder heraufgerudert, hatte die Kugel im Maul und warf sie ins
Gras. Die Königstochter war voll Freude, als sie ihr schönes Spielzeug
wiedererblickte, hob es auf und sprang damit fort.
»Warte, warte!« rief der Frosch. »Nimm mich mit, ich kann nicht so
laufen wie du!« Aber was half es ihm, daß er ihr sein Quak-quak so
laut nachschrie, wie er nur konnte! Sie hörte nicht darauf, eilte nach
Hause und hatte den Frosch bald vergessen.
Am andern Tag, als sie sich mit dem König und allen Hofleuten zur
Tafel gesetzt hatte und eben von ihrem goldenen Tellerlein aß, da kam,
plitsch platsch, plitsch platsch, etwas die Marmortreppe
heraufgekrochen. Als es oben angelangt war, klopfte es an die Tür und
rief. »Königstochter, jüngste, mach mir auf«
Sie lief und wollte sehen, wer draußen wäre. Als sie aber aufmachte,
saß der Frosch vor der Tür. Da warf sie die Tür hastig zu, setzte sich
wieder an den Tisch, und es war ihr ganz ängstlich zumute.
Der König sah wohl, daß ihr das Herz gewaltig klopfte, und sprach:
»Mein Kind, was fürchtest du dich? Steht etwa ein Riese vor der Tür
und will dich holen?«
»Ach, nein«, antwortete sie, »es ist kein Riese, sondern ein garstiger
Frosch.«
»Was will der Frosch von dir?«
»Ach, lieber Vater, als ich gestern im Wald bei dem Brunnen saß und
spielte, fiel meine goldene Kugel ins Wasser. Als ich deshalb weinte,
hat sie mir der Frosch heraufgeholt. Und weil er es durchaus
verlangte, versprach ich ihm, er sollte mein Spielgefährte werden. Ich
dachte aber nimmermehr, daß er aus seinem Wasser käme. Nun ist er
draußen und will zu mir herein.«
Da klopfte es zum zweiten Mal, und eine Stimme rief:
»Königstochter, jüngste,
Mach mir auf!
Weißt du nicht, was gestern
Du zu mir gesagt
Bei dem kühlen Brunnenwasser?
Königstochter, jüngste,
Mach mir auf!«
Da sagte der König: »Was du versprochen hast, das mußt du auch halten!
Geh nur und mach ihm auf!«
Sie ging und öffnete die Tür. Da hüpfte der Frosch herein und hüpfte
ihr immer nach bis zu ihrem Stuhl. Dort blieb er sitzen und rief: »Heb
mich hinauf zu dir!« Sie zauderte, bis es endlich der König
befahl. Als der Frosch auf dem Stuhl war, wollte er auf den Tisch, und
als er da saß, sprach er: »Nun schieb mir dein goldenes Tellerlein
näher, damit wir mitsammen essen können.« Der Frosch ließ sich's gut
schmecken, ihr aber blieb fast jeder Bissen im Halse stecken.
Endlich sprach der Frosch: »Ich habe mich satt gegessen und bin
müde. Nun trag mich in dein Kämmerlein und mach dein seidenes Bettlein
zurecht!« Die Königstochter fing an zu weinen und fürchtete sich vor
dem kalten Frosch, den sie sich nicht anzurühren getraute und der nun
in ihrem schönen, reinen Bettlein schlafen sollte.
Der König aber wurde zornig und sprach: »Wer dir geholfen hat, als du
in Not warst, den sollst du hernach nicht verachten!«
Da packte sie den Frosch mit zwei Fingern, trug ihn hinauf in ihr
Kämmerlein und setzte ihn dort in eine Ecke. Als sie aber im Bette
lag, kam er gekrochen und sprach: »Ich will schlafen so gut wie
du. Heb mich hinauf, oder ich sag's deinem Vater!«
Da wurde sie bitterböse, holte ihn herauf und warf ihn gegen die
Wand. »Nun wirst du Ruhe geben«, sagte sie, »du garstiger Frosch!« Als
er aber herabfiel, war er kein Frosch mehr, sondern ein Königssohn mit
schönen freundlichen Augen. Der war nun nach ihres Vaters Willen ihr
lieber Geselle und Gemahl. Er erzählte ihr, er wäre von einer bösen
Hexe verwünscht worden, und niemand hätte ihn aus dem Brunnen erlösen
können als sie allein, und morgen wollten sie mitsammen in sein Reich
gehen.
Und wirklich, am anderen Morgen kam ein Wagen herangefahren, mit acht
weißen Pferden bespannt, die hatten weiße Straußfedern auf dem Kopf
und gingen in goldenen Ketten. Hinten auf dem Wagen aber stand der
Diener des jungen Königs, das war der treue Heinrich.
Der treue Heinrich hatte sich so gekränkt, als sein Herr in einen
Frosch verwandelt worden war, daß er drei eiserne Bänder um sein Herz
hatte legen lassen, damit es ihm nicht vor Weh und Traurigkeit
zerspränge.
Der Wagen sollte nun den jungen König in sein Reich holen. Der treue
Heinrich hob ihn und seine junge Gemahlin hinein, stellte sich wieder
hinten hinauf und war voll Freude über die Erlösung seines Herrn. Als
sie ein Stück des Weges gefahren waren, hörte der Königssohn, daß es
hinter ihm krachte, als ob etwas zerbrochen wäre. Da drehte er sich um
und rief:
»Heinrich, der Wagen bricht!«
»Nein, Herr, der Wagen nicht,
Es ist ein Band von meinem Herzen,
Das da lag in großen Schmerzen,
Als Ihr in dem Brunnen saßt
Und in einen Frosch verzaubert wart.«
Noch einmal und noch einmal krachte es auf dem Weg, und der Königssohn
meinte immer, der Wagen bräche. Doch es waren nur die Bänder, die vom
Herzen des treuen Heinrich absprangen, weil sein Herr nun erlöst und
glücklich war.

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

34
beispiele/17/wp-backup.sh Normal file
View File

@ -0,0 +1,34 @@
#!/bin/bash
function db_backup {
# Vars
host=localhost
user=XXXXXXX
pass=XXXXXXX
db=wordpress
echo 'DB Export ------> '
mysqldump --opt --add-drop-table -h$host -u$user -p$pass $db | gzip > wp-db.sql.gz
}
function file_backup {
backupfile="wordpress-backup.tar"
echo 'File Backup --- building tar File...'
tar -cf $backupfile ~/wp*
echo '+DONE'
}
echo '-------------------------------------------'
echo 'Tolles Backup Script'
echo '-------------------------------------------'
backupdir=backup
cd ~ ; mkdir $backupdir && cd $backupdir || { echo "FEHLER!!!!"; exit 1 }
# Funktionsaufrufe
db_backup
file_backup

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

View File

@ -1,9 +0,0 @@
stages:
- deploy
pages:
stage: deploy
script:
- mkdir /home/dany/hallo
only:
- master

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

View File

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="697.28003"
height="594.84998"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46+pre4"
sodipodi:docname="Aufspaltung_einer_Tabelle_in_zwei_(Beispiel).svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata44">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:window-height="1031"
inkscape:window-width="1680"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="1.0983722"
inkscape:cx="423.29925"
inkscape:cy="283.36138"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:current-layer="layer1" />
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 297.42499 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="697.28003 : 297.42499 : 1"
inkscape:persp3d-origin="348.64001 : 198.28333 : 1"
id="perspective46" />
</defs>
<g
transform="translate(-42.225311,-45.994526)"
id="layer1">
<path
d="M 411.77664,263.08661 L 411.77664,401.96021 C 411.92971,450.95065 383.47918,455.0221 353.9326,457.37233"
id="path3191"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.0999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
d="M 358.38546,444.01519 L 312.67118,459.01519 L 358.22818,471.22215 C 351.08082,463.01284 349.61103,454.12561 358.38546,444.01519 z"
id="path3195"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 464.45434,470.83296 L 510.16862,455.83296 L 464.61162,443.626 C 471.75898,451.83531 473.22877,460.72254 464.45434,470.83296 z"
id="path3199"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 411.71961,263.08661 L 411.71961,401.96021 C 411.56653,450.95065 440.01707,455.0221 469.56365,457.37233"
id="path3201"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.0999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
width="324.28574"
height="198.2966"
x="249.25639"
y="52.494526"
id="rect3203"
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1" />
<path
d="M 249.8589,92.151272 L 573.64342,92.151272"
id="path3207"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 249.55546,129.13738 L 573.33998,129.13738"
id="path3209"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 249.40374,170.05901 L 573.18826,170.05901"
id="path3213"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 249.25639,210.99552 L 573.04091,210.99552"
id="path3217"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
width="324.28574"
height="39.285713"
x="249.25639"
y="52.865387"
id="rect3219"
style="opacity:1;fill:#d0d0d0;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1" />
<text
x="259.7691"
y="83.059898"
id="text3221"
xml:space="preserve"
style="font-size:9px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
sodipodi:linespacing="125%"><tspan
x="259.7691"
y="83.059898"
id="tspan3225"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">TBL_AdressenAlles</tspan><tspan
x="259.7691"
y="123.0599"
id="tspan3229"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">Firma</tspan><tspan
x="259.7691"
y="163.05991"
id="tspan3231"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">Strasse</tspan><tspan
x="259.7691"
y="203.05991"
id="tspan3233"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">PLZ</tspan><tspan
x="259.7691"
y="243.05991"
id="tspan3235"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">Ort</tspan></text>
<rect
width="199.32478"
height="119.24673"
x="525.61884"
y="443.93454"
id="rect3237"
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1" />
<path
d="M 525.9892,483.5913 L 725.00591,483.5913"
id="path3239"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 525.80268,520.57741 L 724.8194,520.57741"
id="path3241"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
width="199.32478"
height="39.285713"
x="525.61884"
y="444.30539"
id="rect3247"
style="opacity:1;fill:#d0d0d0;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1" />
<text
x="530.13153"
y="474.49991"
id="text3249"
xml:space="preserve"
style="font-size:9px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
sodipodi:linespacing="125%"><tspan
x="530.13153"
y="474.49991"
id="tspan3251"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">TBL_PLZOrt</tspan><tspan
x="530.13153"
y="514.49988"
id="tspan3257"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana Bold">PLZ</tspan><tspan
x="530.13153"
y="554.49994"
id="tspan3266"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">Ort</tspan></text>
<rect
width="230.87581"
height="200.35985"
x="60.725311"
y="434.9447"
id="rect3268"
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1" />
<path
d="M 61.154277,474.60145 L 291.67325,474.60145"
id="path3270"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 60.938237,511.58756 L 291.45721,511.58756"
id="path3272"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 60.830227,552.50919 L 291.3492,552.50919"
id="path3274"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
width="230.87581"
height="39.285713"
x="60.725311"
y="435.31555"
id="rect3278"
style="opacity:1;fill:#d0d0d0;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1" />
<text
x="63.238007"
y="465.51007"
id="text3280"
xml:space="preserve"
style="font-size:9px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
sodipodi:linespacing="125%"><tspan
x="63.238007"
y="465.51007"
id="tspan3282"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">TBL_Adressen</tspan><tspan
x="63.238007"
y="505.51007"
id="tspan3294"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana Bold">AdressID</tspan><tspan
x="63.238007"
y="545.51007"
id="tspan3284"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">Firma</tspan><tspan
x="63.238007"
y="585.51007"
id="tspan3286"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">Strasse</tspan><tspan
x="63.238007"
y="625.51007"
id="tspan3290"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Verdana;-inkscape-font-specification:Verdana">PLZ</tspan></text>
<path
d="M 60.725311,593.30642 L 291.24428,593.30642"
id="path3296"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:9px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
x="908.61731"
y="273.4653"
id="text2419"
transform="translate(42.225311,45.994526)"><tspan
sodipodi:role="line"
id="tspan2421"
x="908.61731"
y="273.4653" /></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

BIN
img/Jaromir-Chalabala1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
img/ardour.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

BIN
img/audacity.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
img/guitarix.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

BIN
img/openshot-screen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

1
img/trianglify.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -35,6 +35,10 @@
<li><a href="12.html">Netzwerk Programme</a></li>
<li><a href="13.html">Samba</a></li>
<li><a href="14.html">Compiler, Kernelmodule, grub</a></li>
<li><a href="15.html">LAMP Stack, MySql / Apache</a></li>
<li><a href="16.html">Linux und Multimedia</a></li>
<li><a href="17.html">Übungen</a></li>
<li><a href="18.html">Übungen</a></li>
</ol>
</div>
</div>
@ -72,6 +76,9 @@
<h2><i class="icon linkify"></i>Links</h2>
<div class="ui three column very relaxed grid">
<!-- 1te Spalte -->
<div class="column">
<div class="ui segment">
<div class="content"> <div class="header">Allgemein</div> </div>
@ -125,6 +132,8 @@
</div>
</div>
<!-- 2te Spalte -->
<div class="column">
<div class="ui segment">
<div class="content"> <div class="header">vim</div> </div>
@ -157,39 +166,80 @@
</UL>
</div>
</div>
<div class="ui segment">
<div class="content"> <div class="header">relationale Datenbanken / MySql</div> </div>
<div class="content">
<UL>
<li><a href="https://de.wikipedia.org/wiki/Normalisierung_(Datenbank)" target="_blank">Wikipedia: Normalisierung</a></li>
<li><a href="https://mariadb.com/kb/en/library/mariadb-basics/" target="_blank">MariaDB Basics</a></li>
</UL>
</div>
</div>
</div>
<!-- 3te Spalte -->
<div class="column">
<div class="ui segment">
<div class="content"> <div class="header">Netzwerk Einstellungen</div> </div>
<div class="content">
<ul>
<li><a href="https://wiki.debian.org/NetworkConfiguration#Setting_up_an_Ethernet_Interface">https://wiki.debian.org/</a></li>
<li><a href="https://wiki.ubuntuusers.de/interfaces/">wikiw.ubuntuusers.de</a></li>
<li><a href="https://wiki.debian.org/NetworkConfiguration#Setting_up_an_Ethernet_Interface target="_blank"">https://wiki.debian.org/</a></li>
<li><a href="https://wiki.ubuntuusers.de/interfaces/ target="_blank"">wikiw.ubuntuusers.de</a></li>
</ul>
</div>
</div>
<div class="ui segment">
<div class="content"> <div class="header">diverse</div> </div>
<div class="content">
<ul>
<li><a href="ftp://ftp.gwdg.de/pub/linux/knoppix/dvd/">Knoppix</a></li>
<li><a href="https://wiki.archlinux.de/title/Image-Erstellung_mit_dd">Nutzung von <code>dd</code> </a></li>
<li><a href="https://wiki.ubuntuusers.de/Screen/">Screen bei wiki.ubunutuusers.de</a></li>
<li><a href="https://www.gnu.org/software/screen/manual/screen.html">Screen bei gnu.org</a></li>
</ul>
</div>
</div>
<div class="ui segment">
<div class="content"><div class="header">ssh</div></div>
<div class="content">
<ul>
<li><a href="https://man.openbsd.org/sshd_config.5">sshd config manual</a></li>
<li><a href="https://man.openbsd.org/sshd_config.5" target="_blank">sshd config manual</a></li>
</ul>
</div>
</div>
<div class="ui segment">
<div class="content"><div class="header">LAMPP</div></div>
<div class="content">
<ul>
<li><a href="https://de.wikipedia.org/wiki/XAMPP" target="_blank">Wikipedia XAMPP</a></li>
<li><a href="https://www.apachefriends.org/de/index.html" target="_blank">XAMPP Homepage</a></li>
<li><a href="https://wiki.ubuntuusers.de/Apache_2.4/" target="_blank">wiki.ubuntuusers.de/Apache_2.4/</a></li>
<li><a href="https://httpd.apache.org/docs/2.4/" target="_blank">Apache2 Doku</a></li>
</ul>
</div>
</div>
<div class="ui segment">
<div class="content"><div class="header">Bild / Video / Sound</div></div>
<div class="content">
<ul>
<li><a href="https://imagemagick.org/index.php" target="_blank">ImageMagick</a></li>
<li><a href="http://ubuntustudio.org" target="_blank">UbuntuStudio</a></li>
<li><a href="https://deb-multimedia.org" target="_blank">https://deb-multimedia.org</a></li>
<li><a href="http://kxstudio.linuxaudio.org/index.php" target="_blank">KX Studio</a></li>
</ul>
</div>
</div>
<div class="ui segment">
<div class="content"> <div class="header">diverse</div> </div>
<div class="content">
<ul>
<li><a href="ftp://ftp.gwdg.de/pub/linux/knoppix/dvd/" target="_blank">Knoppix</a></li>
<li><a href="https://wiki.archlinux.de/title/Image-Erstellung_mit_dd" target="_blank">Nutzung von <code>dd</code> </a></li>
<li><a href="https://wiki.ubuntuusers.de/Screen/" target="_blank">Screen bei wiki.ubunutuusers.de</a></li>
<li><a href="https://www.gnu.org/software/screen/manual/screen.html" target="_blank">Screen bei gnu.org</a></li>
</ul>
</div>
</div>
</div>
</div>

2
js/reveal.min.js vendored
View File

@ -1,5 +1,5 @@
/*!
* reveal.js 3.7.0 (2018-12-17, 12:26)
* reveal.js 3.7.0 (2019-03-01, 15:30)
* http://revealjs.com
* MIT licensed
*

1666
package-lock.json generated

File diff suppressed because it is too large Load Diff