IT Seminare für praktische Anwendungen

Übersicht:


Willkommen zum Linux Seminar

1. Woche | 2. Woche

ein gutes Gebüsch

Teil 1: Linuxgrundlagen und Serveranwendungen

Erste Woche

Wer auf den Zehenspitzen steht, steht nicht sicher
Lao Dse (irgendwas um 550 v.u.Z.)

Einführungs Präsentation(PDF)

Liste der Linux Distributionen

Installation Virtualbox guest Erweiterungen in Debian 11

Kurze Zusammenfassung zur Testvorbereitung

Die richtige sources.list:

deb http://deb.debian.org/debian/ bullseye main contrib non-free

deb http://security.debian.org/debian-security bullseye/updates main contrib non-free

deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free

backup Shellscript(TAR)

Dokumente zur ersten Woche

Wie die LPIC Prüfung funktioniert


Zweite Woche

It is not good to settle into a set of opinions. It is a mistake to put forth effort and obtain some understanding and then stop at that.
Yamamoto Tsunetomo: Hagakure (ca. 1780)


Dritte Woche

Each man must create his own system or else he is a slave to another mans.
William Blake (ca. 1810)

Webseiten für den Transport verpacken per Skript

#!/bin/bash
#Skript zum Backup einer Softwareinstalltion in apache
#Wordpressinstallation inkl. Datenbank

#BASIS
#################
#1.)welche Dateien wo:
# DocumentRoot/wp-content
# /etc/apache2/sites-enabeled/NAME

#2.)welche DB:
# DocumentRoot/wp-config.php

#UMSETZUNG
#################

#Protokoll anlegen

datum=$(date);

zeitstempel=$(date +%s);

echo "####Protokoll des WP-Backups vom ${datum} ######

 ">/home/linkurs1014/backups/protokoll_${zeitstempel};


#3.)NAME ermitteln
# Lesen von der Kommandozeile ($1) oder lesen mit read

if [ -z $1 ]
   then
    echo "Erstes Optionsfeld ist leer, kein Name angegeben.
    ">>/home/linkurs1014/backups/protokoll_${zeitstempel};
    echo "Bitte den Namen der zu sichernden Installation eingeben ";
    read name;
	else
	name=$1;
        echo "Name der zu sichernden Installation: ${name} 

">>/home/linkurs1014/backups/protokoll_${zeitstempel};
fi

#4.) NAME benutzen, um die Datei unter sites-enabeled zu finden(prüfen, ob die Datei da ist)

if [ -e /etc/apache2/sites-enabled/${name}.conf  ]
   then
# Neuen Ordner für das ganze Backup anlegen(unter dem angegebenen Namen)
mkdir -p /home/linkurs1014/backups/${name}_${zeitstempel};
cp /etc/apache2/sites-enabled/${name}.conf /home/linkurs1014/backups/${name}_${zeitstempel}/;
    else
echo "Die Datei ist unter dem eingetippten Namen ${name} leider nicht zu finden.">>/home/linkurs1014/backups/protokoll_${zeitstempel};
exit;
fi

#5.) in der Datei die Zeile DocumentRoot finden und den Pfad herausschneiden

#erst mal:

installpfad=$(grep DocumentRoot /etc/apache2/sites-enabled/${name}.conf|sed s/DocumentRoot//|sed 's/\t//g');

#Haben wir, was wir brauchen?

#echo "DEBUG: ${installpfad}";


#Testen, ob wp direkt im DocumentRoot oder  in einem Unterverzeichnis installiert ist 
if [ -f ${installpfad}/wp-config.php  ]
 then
 echo "wp-config gefunden.">>/home/linkurs1014/backups/protokoll_${zeitstempel} ;
  elif [ -f ${installpfad}/wordpress/wp-config.php  ]
  then
  echo "wp-config ist im Unterverzeichnis wordpress installiert.">>/home/linkurs1014/backups/protokoll_${zeitstempel} ;
  installpfad="${installpfad}/wordpress";
 else
 echo "Ich kann wp-config nicht finden. Das ist schade.\n Ich muss jetzt gehen... ">>/home/linkurs1014/backups/protokoll_${zeitstempel};
	exit;
fi

#6.) im Pfad wp-config.php finden und die Zeilen DB_USER DB_PASSWORD und DB_NAME extrahieren eventuell $table_prefix berücksichtigen

#und dann wp-config kopieren

cp ${installpfad}/wp-config.php /home/linkurs1014/backups/${name}_${zeitstempel};

#Oder erst mal:

dbname=$(grep DB_NAME ${installpfad}/wp-config.php |sed s/\'//g| sed s/define\(DB_NAME\,//|sed s/\)\;//|sed s/\ //g);

#DB-Name richtig?
#echo "DEBUG: ${dbname}";

dbusername="wp_db1";
dbpasswort="awaHg-1";

#7.) Mit diesen Daten den Mysqldump herstellen und in den Backupordner schreiben

mysqldump -u ${dbusername} -p${dbpasswort}  ${dbname} > /home/linkurs1014/backups/${name}_${zeitstempel}/${dbname}.sql;


#8.) Alle Dateien in einen Ordner kopieren

cp -R ${installpfad}/wp-content /home/linkurs1014/backups/${name}_${zeitstempel};

#9.) Ordner packen mit tar
cd /home/linkurs1014/backups/;

tar -cjf /home/linkurs1014/backups/${name}_${zeitstempel}.tar.bz2  ${name}_${zeitstempel};

#Ende Gelände


Empfehlungen für die Zukunft...

Der Kurs orientiert sich an soliden, seit langem benutzten und bewährten Linux Konzepten. Einiges davon ist perfekt aber manchens ist nur gut, und das Bessere ist bekanntlich der Feind des Guten...

Die folgenden Artikel zeigen einige Beispiele für Verbesserungen, an denen gerade gearbeitet wird. Da es natürlich eine entsetzliche Ketzerei ist, das glorreiche Linux verbessern zu wollen, wagen das nur wenige und die Oberketzer sind der teuflische Lennart Poettering und seine Spießgesellen, die Entwickler von Systemd:

...


Vierte Woche

That was a great time, the summer of '71 - I can't remember it, but I'll never forget it.
Lemmy Kilmister zur Woche der Wiederholungen

Linux Einsteiger Grundkurs

Diese Woche werden wir zur Wiederholung und Vervollständigung des Stoffs der ersten 3 Wochen verwenden. Außerdem werden wir in einem praktischen Projekt und einem Wissenstest herausfinden, wie weit wir gekommen sind

LPIC Vorbereitung

Am Ende dieser Woche findet die erste LPIC1 Prüfung statt, das werden wir mit intensiven Übungen vorbereiten...

 ---------------------------------------------------------------------------------
            VIM - Kurzanleitung von Christoph Maciejewski (c) 1999
---------------------------------------------------------------------------------


Allgemeines
-----------
Alle vim-Kommandos (beginnen mit ":") können in die Konfigurationsdatei eingetragen werden. Diese kann heissen: .gvimrc .vimrc oder unter Win32 _vimrc


Bearbeituns-Modi
----------------
[ESC]:	 Kommandomodus
[i]:	 Einfügemodus (an der aktuellen Stelle)
[A]:	 Einfügemodus (am Ende der aktuellen Zeile -> "append")
[:]:	 Execute-modus (Eingabe eines Kommandos), Kommandovervollständigung mit [TAB]


Dateiverwaltung:
----------------
[:e Dateiname]:		Datei laden
[:e Verzeichnis]:	Dateimanager (Der Parameter ist ein Verzeichnis)
[:w]:			Aktuelle Datei speichern
[:w Dateiname]:		Aktuelle Datei speichern unter einem neuen Namen (Bearbeitet wird weiter das Original)
[:sav Dateiname]:	Aktuelle Datei speichern unter einem neuen Namen (Neue Datei wird bearbeitet)
[:buffer Dateiname]:	Zwischen den Buffers (geöffnete Dateien) umschalten
[:next]:		Zum nächsten Buffer wechseln
[:prev]:		Zum vorherigen Buffer wechseln
[:q]:			VIM beenden (nur wenn alle Buffers gespeichert, sonst Meldung)
[:q!]:			VIM beenden (nicht gespeicherte Buffers gehen verloren)
[:wq]:			Speichern und Schliessen (Alternativ: [ZZ])


Editor:
-------
[u]:	       Aktion rückgängig machen (undo)
[Ctrl+r]:      Aktion wiederherstellen (redo)

[yy]:	       Zeile kopieren
[dd]:	       Zeile ausschneiden (löschen)
[dw]:	       Wort ausschneiden (ab der aktuellen Position nach rechts)
[db]:	       Wort ausschneiden (ab der aktuellen Position nach links)
[d^]:	       Bis Zeilenanfang löschen (ab der aktuellen Position)
[d$]:	       Bis Zeilenende löschen (ab der aktuellen Position)
[:'a,'bd]:      Von Marke "a" bis Marke "b" löschen
[p]:	       Einfügen
[v]:	       Anfang des zu markierenden Bereichs setzen (Mit den Cursortasten Bereich markieren)
[y]:	       Markierten Bereich kopieren
["xy]:	       Markierten Bereich in das Puffer "x" kopieren (es können bis zu 26 Puffer belegt werden)
["xp]:	       Text aus dem Puffer "x" einfügen
[VG]:	       Alles markieren (ab der aktuellen Position nach unten

[mx]:	       Marke setzen ("x" ist ein bel. Kleinbuchstabe -> es sind 26 Marken möglich)
['x]:	       Zur Marke "x" springen

[J]:	       CR/LF am Ende einer Zeile löschen (Zeilen zusammenfügen)
[:set list]:   Nicht darstellbare Zeichen anzeigen
[:set ic]:     Gross/Kleinschreibung ignorieren

[Ctrl+n]:      Wort vervollständigen
[:%!xxd]:      HEX-Editor-Modus (xxd muss installiert sein)


Im Text navigieren:
-------------------
[gg]:	       An die erste Position des Textes springen
[GG]:	       An die letzte Position des Textes springen
[m][Cursor]:   Um "m" Zeichen/Zeilen springen (mit den Cursortasten -> links, rechts, oben, unten)
[w]:	       Wortweise nach rechts springen (Mit [b] nach links) -> auch hier kann eine Zahl vorangestellt werden


Suchen und Ersetzen:
--------------------
[/Suchwort]:		Nach "Suchwort" suchen ("Suchwort" ist ein reg. Ausdruck). Mit [n] weiter suchen.
[/Suchwort/i]:		Nach "Suchwort" suchen, Gross/Kleinschreibung ignorieren
[:1,$s/Unix/Linux/g]:	"Unix" durch "Linux" ersetzen (Bereich: 1,$ -> vom Anfang bis Ende, g: Alle ersetzen)
[:1,.s/^/#/g]:		Alle Zeilen bis zur aktuellen Cursorposition (.) auskommentieren


Sonstiges:
----------
[:split]:		Hauptfenster wird horizontal aufgespaltet. Wechseln mit [Ctrl+w+w].
[:r !date]:		Ausgabe eines UNIX-Kommandos in den Text einfügen (hier Datum)
[:syntax on]:		Syntaxeinfärbung einschalten
[:set nu!]:		Zeilennummern ein-/ausblenden.
[:set ai]:		Automatisches Einrücken (AutoIdent)
[:set cin]:		Automatisches Einrücken im Still von C (Einrücken in Funktionsrümpfen)
[:set softtabstop=3]:	Tabulator entspricht drei Leerzeichen
[:set shiftwidth=3]:	Autom. Einrücken entspricht drei Leerzeichen
[:ab w1 wort]:		Autom. Ersetzen von "w1" durch "wort" während der Eingabe

------------------------------------------------------------



~~~~~~~~~~ Ende Teil 1 ~~~~~~~~~~~


5./6. Woche: LPIC 102

7. Woche

~~~~ the end ~~~