Wer auf den Zehenspitzen steht, steht nicht sicher
Lao Dse (irgendwas um 550 v.u.Z.)
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)
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)
Each man must create his own system or else he is a slave to another mans.
William Blake (ca. 1810)
#!/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
find . \( -name "*.wav" -or -name "*.aiff" \) -and -size +400M -execdir ls -lh {} +
find . -name "*.txt" | xargs grep -H "suchbegriff"
grep -r file |grep -v the
grep -lr "file" *
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:
...
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
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
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 ~~~~~~~~~~~
CREATE USER 'wp1'@'localhost' IDENTIFIED WITH mysql_native_password AS '***'; GRANT USAGE ON *.* TO 'wp1'@'localhost' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; CREATE DATABASE IF NOT EXISTS `wp1`; GRANT ALL PRIVILEGES ON `wp1`.* TO 'wp1'@'localhost'; CREATE TABLE `wp1`.`beilspiel` ( `nid` INT(8) NOT NULL AUTO_INCREMENT , `titel` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL , `inhalt` TEXT NOT NULL , `autor` INT(8) NOT NULL , PRIMARY KEY (`nid`), INDEX `titel` (`titel`) ) ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_unicode_ci; SELECT user_login,user_nicename,user_pass FROM wp_users; INSERT INTO `beilspiel` (`nid`, `titel`, `inhalt`, `autor`) VALUES (NULL, 'Auch das noch', 'Ein zusätzlicher Beitrag, nnicht lang aber reicht schon.', '1'); DELETE FROM `beilspiel` WHERE `beilspiel`.`nid` = 2; UPDATE `beilspiel` SET `inhalt` = 'Noch was von Nummer 1. Das geht hoffentlich.' WHERE `beilspiel`.`nid` = 2; SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID; SELECT wp_users.ID, beilspiel.autor, beilspiel.titel, beilspiel.inhalt FROM beilspiel INNER JOIN wp_users ON beilspiel.autor=wp_users.ID SELECT COUNT(CustomerID) as C FROM Customers ; SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country ;
~~~~ the end ~~~