Streameditor – sed

Dies ist kein Texteditor im klassischen Sinne, da dieser die ursprüngliche Datei gar nicht verändert, das Ergebnis der Bearbeitung wird auf der Standardausgabe zur Verfügung gestellt, kann jedoch auch in eine Datei umgeleitet werden.

Aufruf:

… | sed 'sed-Anweisung' | …
… | sed –e 'sed-Anweisung’ –e `sed-Anweisung' | …
… | sed –f 'sed-Anweisungsdatei' | …

Wie diese Anweisungen aufgebaut sind, werde ich nun erklären.

Dabei ist zu beachten, dass sed einige Zeichen als Sonderzeichen ansieht und falls man diese als „normale“ Zeichen verwenden möchte, mittels Backslash („“) auskommentieren muss.

* -> das davor stehende Zeichen kommt nicht oder beliebig oft vor

. -> genau ein beliebiges Zeichen

^ -> am Zeilenanfang

$ -> am Zeilenende

[Zeichenliste] -> genau ein Zeichen, aber nur aus der Liste/Bereich

z.B.:
[0-9] -> 0 1 2 3 4 5 6 7 8 9
[a-c] -> a b c
[A-Z] -> A B C D E F G … u.s.w.
[A-Za-z] -> A a B b C c D d E e F f G g … u.s.w

[^Zeichenliste] -> genau ein Zeichen, aber keines aus der Liste/Bereich

Text ersetzen:

… | sed 's/File/Datei/g' | …

diese Anweisung ersetzt das Wort „File“ durch „Datei“

g -> (Global Flag) ersetzt nicht nur das erste Vorkommen von „File“ in einer Zeile, sondern durchsucht die ganze Zeile

s -> weißt sed an Text zu ersetzten, man könnte dies als Funktion von sed ansehen

Falls man dies jedoch nicht auf die komplette Datei anwenden möchte, kann man sed Anweisen, dies nur auf einen bestimmten Bereich anzuwenden.

… | sed –n '1,$p' | …

gibt alles von der ersten bis zur letzten Zeile aus

… | sed –n  '1,5!p' | …

gibt alles außer die ersten fünf Zeilen aus

n -> Pufferinhalt vom Arbeitsspeicher wird nicht mit ausgegeben, also nur der verarbeitete Teil wird dargestellt

$ -> letzte Zeile

! -> negiert die Ausgabe

Kommen wir zum ersten praktischen Beispiel.

cat /etc/passwd | sed  –n '/bash$/p'

gibt nur die Zeilen aus der angegebenen Datei aus, welche als Start-Shell die bash eingetragen haben

Kubuntu oder Ubuntu 9.10 – Upgrade KDE 4.4

Wer bereits Kubuntu oder Ubuntu 9.10 installiert hat, kann mit dem folgendem HowTo seine KDE-Denktopumgebung auf Version 4.3.4 aktualisieren.

Als erstes benötigen wir mal wieder ein Terminal/Konsole:

sudo add-apt-repository ppa:kubuntu-ppa/backports

und schon können wir unsere System auf den neusten Stand updaten.

sudo apt-get update && sudo apt-get dist-upgrade

KDE4
KDE4

Konvertiere Ext3 zu Ext4

Falls du dein Ubuntu nicht ständig neu installierst, sondern ein dist-upgrade ausführst, dann kannst du nicht alle neue Funktionen der neuen Ubuntu-Version nutzen, daher dieses HowTo, um dein ext3-Dateisystem zu einem ext4-Dateisystem zu konvertieren.

Bitte beachte, dass dieser Schritt nicht nötig ist und bevor du beginnst, werfe einen Blick auf die bekannten Probleme mit ext4!

1.) Upgrade als erstes dein Ubuntu mindestens zu Jaunty.

2.) Erstelle eine Sicherungskopie aller Ihrer (wichtige) Daten.

3.) Starte von einer (>= jaunty) Live-CD …

deine Partitionen kannst du wie folgt anzeigen lassen

cat /proc/partitions

sd[ a-z ][ 1-9 ] -> muss natürlich an dein System angepasst werden

… und führe die folgenden Befehle aus.

sudo bash
tune2fs -O extents,uninit_bg,dir_index /dev/sda1
e2fsck -fpDC0 /dev/sd[ a-z ][ 1-9 ]

4.) Mounte die entsprechende Partition…

mount -t ext4 /dev/sd[ a-z ][ 1-9 ] /mnt

… und ändere deine fstab …

vim /mnt/etc/fstab

Wandel “ext3” in “ext4” wie in dem folgenden Beispiel:

/dev/sda1UUID=XXXX / ext3 relatime,errors=remount-ro 0 1

wird zu:

/dev/sda1UUID=XXXX / ext4 relatime,errors=remount-ro 0 1

Nun speichern wir noch schnell die Änderungen und beenden den Editor. (wq)

5.) Grub – Boot-Loader aktualisieren

Es kann sein, dass beim booten nun ein (tödlichen) Fehler 13 auftaucht, daher verwenden wir folgenden Befehl, um grub zu aktualisieren.

Wenn du nicht über eine separate / boot-Partition verfügst, dann z.B.:

mount /dev/sda1 /mnt
grub-install /dev/sda --root-directory=/mnt --recheck

Wenn du eine separate / boot-Partition hast, dann z.B.:

mkdir /mnt/boot
mount /dev/sda1 /mnt/bootgrub-install
/dev/sda --root-directory=/mnt --recheck

Nach einem Neustart läuft dein System nun mit einem Ext4-Dateisystem, jedoch können nur alle neuen geschriebenen Dateien von diesem profitieren, da die alten Dateien auf die Festplatte geschrieben wurden, als die ext3-Technologie lief.

Link:
ext4.wiki.kernel.org

Die größten dpkg-Pakete auf Ubuntu/Debian ermitteln

Folgendermaßen findest du heraus, welche bereits installierten Pakete am meisten Festplattenplatz verbrauchen:

dpkg-query --show --showformat='${Package;-50}t${Installed-Size}n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB t %sn", $2/(1024), $1}'

Installiere VMware Tools auf Debian Lenny

Um die VMware Tools zu installieren, wobei dann auch die passenden Treiber kompiliert werden, muss man bei eine neu installierten Debian Version einige Pakete nachinstallieren. Zudem ist der Kernel mit einer älteren gcc kompiliert.

1.) einige Pakete nach-installieren

aptitude install psmisc binutils gcc-4.1-base make linux-headers-$(uname -r)

2.) nach-schauen mit welchem gcc-Version der laufende Kernel kompiliert wurde und dann ggf. gcc anpassen

cat /proc/version

und dann ggf.

export CC=/usr/bin/gcc-4.1
rm /usr/bin/gcc
ln -s /usr/bin/gcc-4.1 /usr/bin/gcc

3.) folgendes erlaubt es dem VMware Daemon nach einen reboot auch wieder zu starten

ln -s /usr/lib/libexpat.so.1 /usr/lib/libexpat.so.0

4.) In dem VMware (ESXi) Client auf deiner Windows Arbeitsstation musst du nun die VMware cd in das virtuelle Laufwerk einlegen

Inventory -> Virtual Machine -> Install/Upgrade VMware Tools

5.) mounten die CD und kopieren den Inhalt weg, dann wieder unmounten und die Installation starten

mount /dev/cdrom[0-9] /mnt
cp -v /mnt/VMwareTools-3.5*.gz /usr/src/
umount /mnt
cd /usr/src/ ; tar xvf VMwareTools-3.5*.gz
cd vmware-tools-distrib/
./vmware-install.pl
mv /usr/bin/gcc_new /usr/bin/gcc

Nach einem Reboot läuft Debian nun mit den VMware Tools. Alternativ gibt es für Debian auch noch die open-vm-tools.

aptitude install open-vm-source
module-assistant prepare open-vm
module-assistant auto-install open-vm
aptitude install open-vm-tools
reboot

Wikipedia in der Shell

Wer schnell etwas über z.B. DDR2 Speicher wissen möchte, braucht dafür nicht unbedingt einen Browser. ;-)

Installation:

sudo aptitude install wikipedia2text

Konfiguration:

wer den entsprechenden Artikel auf Wikipedia auf deutsch lesen möchte muss noch einen Parameter angeben.

wikipedia2text -l de DDR2 | less

ggf. kann man diese Parameter in der ~/.bashrc einfügen, sodass man diesen nicht immer wieder eintragen muss…

alias wikipedia2text='wikipedia2text -l de'

… oder man erstellt in der bashrc einen kleinen Funktionsaufruf.

wiki()
{
    wikipedia2text -l de $1 | less
}

GreenSQL – MySQL Firewall

Was ist eine MySQL Firewall und wie funktioniert dies?

GreenSQL ist eine Open-Source-Datenbank-Firewall, um Datenbanken von SQL-Injection-Attacken zu schützen. Diese arbeitet als Proxy für SQL-Kommandos und hat eine eingebaute MySQL Unterstützung. Die Logik beruht auf der Auswertung von SQL-Befehlen, mit Hilfe eines Scoring-Risiko-Matrix sowie Sperrung bekannt db Verwaltungs-Befehle.

GreenSQL arbeitet als Reverse Proxy für MySQL-Verbindungen. Dies bedeutet, dass du dich anstatt direkt mit den MySQL-Server, zuvor mit GreenSQL verbindest. GreenSQL analysiert die SQL-Abfragen und wenn sie sicher sind, werden diese an den MySQL-Server durch-gereicht.

greenSQL
greenSQL

HowTo: Wie installiere ich die MySQL Firewall?

1. Download der Software

Das passende Paket von dieser Webseite herunterladen:

www.greensql.net/download

2. Installiere das entsprechende Paket

Debian/Ubuntu:

sudo dpkg -i PACKAGE_NAME.deb

Redhat/Fedora/CentOS/SuSe:

rpm -ihv PACKAGE_NAME.rpm

FreeBSD:

pkg_add PACKAGE_NAME.tbz

3. Datenbank anlegen & Konfiguration anpassen

Um die Konfiguration anzupassen und die Datenbank anzulegen, führst du nun folgendes Skript aus…

/usr/sbin/greensql-create-db.sh

und nun können wie die Firewall bereits starten

/etc/init.d/greensql* restart

4. Status der Firewall testen

um die Verbindung durch den MySQL-Proxy zu testen, führen wir folgendes Kommando aus…

mysql -h 127.0.0.1 -P 3305 -u root -p

5. Webseite mit einbinden

nun wird es Zeit, unsere Webseite in das Konstrukt mit einzubinden, dafür muss die Datei, wo die Verbindungseinstellungen zu MySQL eingestellt werden editiert werden.

Folgendes sollte in eine PHP-Datei zu finden sein und muss nun nur noch angepasst werden…

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

… wird zu …

$link = mysql_connect('127.0.0.1:3305', 'mysql_user', 'mysql_password');

Wichtiger Hinweis:
Keine Verbindung zu “localhost”, verwende stattdessen immer “127.0.0.1”.

MySQL-Server beschleunigen

Nutze Google’s perftools um die Geschwindigkeit deines MySQL-Server zu erhöhen.

Das Google Perftools, insbesondere tcmalloc (Thread Caching Malloc), kann helfen z.B. den MySQL-Server zu beschleunigen…

TCMalloc ist schneller als die glibc 2.3 malloc (Wiki). Die Geschwindigkeitsvorteile durch die verbesserte Speicherzuordnung, kannst du wie folgt in MySQL integrieren.

Vorausgesetzt du nutzt Debian 5 (Lenny) oder neuer… fügen wir als erstes neue Repositories in der sources.list ein.

echo 'deb http://dotdeb.netmirror.org/ stable all' >> /etc/apt/sources.list
echo 'deb-src http://dotdeb.netmirror.org/ stable all' >> /etc/apt/sources.list

und aktualisieren ggf. den MySQL-Server auf Version 5.1

apt-get update
aptitude install mysql-server-5.1
aptitude install libtcmalloc-minimal0

Seit den mainstream MySQL-Paketen sind diese nicht mit den tcmalloc compiliert, daher müssen wir einen dynamischen OS’ Linker einbauen, indem wir folgende Zeile in dem MySQL init-Skript einfügen:

vim /etc/init.d/mysql

export LD_PRELOAD=”/usr/lib/libtcmalloc_minimal.so.0″

Capture - libtcmalloc
Capture - libtcmalloc

Nach einen restart des MySQL-Servers durch das init-Skript, profitiert dieser nun von der schnellern Speicherzuteilung.

/etc/init.d/mysql restart

Link:
www.dotdeb.org

Download YouTube Videos

Wer ein YouTube Video herunterladen möchte oder den entsprechenden Song als MP3 haben möchte, kann wie folgt vorgehen.

Download YouTube Videos mit youtube-dl:

1.) entsprechende Software installieren

sudo aptitude install youtube-dl

2.) und schon kannst du ein Video herunterladen

youtube-dl -o [ neuer Dateiname ] [ YouTube URL ]

Beispiel:

youtube-dl -o ubuntu9_10.flv http://www.youtube.com/watch?v=lYgWE6Svpag

Link:
bitbucket.org/rg3/youtube-dl/wiki/Home

Download YouTube Videos mit youtube-dl + konvertiere das Video als MP3:

1.) entsprechende Software installieren

sudo aptitude install youtube-dl mencoder

2.) das folgende Skript kann hier herruntergeladen werden oder per wget geladen werden…

wget http://linuxegyszeruen.homelinux.org/e107_files/downloads/youtube.sh

3.) den Skript werden nun noch Ausführ-Rechte zugeteilt

chmod +x youtube.sh

4.) und schon kann man das Video als MP3 herunterladen

youtube.sh [ YouTube URL ] szerzo-cim

Beispiel:

youtube.sh http://www.youtube.com/watch?v=lYgWE6Svpag szerzo-cim

Link:
linuxegyszeruen.homelinux.org

Download YouTube Videos mit Firefox + konvertiere das Video als MP3:

Alternativ kannst du “Video DownloadHelper” für Firefox installieren und wenn gewünscht ein entsprechendes Programm um das Video als MP3 zu speichern.

1.) Firefox-Extension installieren

addons.mozilla.org/en-US/firefox/addon/3006

2.) entsprechende Software installieren

sudo aptitude install ffmpeg

3.) “Video DownloadHelper” wie folgt konfigurieren

Download YouTube Videos
Download YouTube Videos

gpm – nutze die Maus in der Konsole

gpm (=General Purpose Mouse Interface) ist ein Systemdienst, welcher die Nutzung des Mauszeigers in der Systemkonsole ermöglicht. – Ubuntu-Wiki

Install:

aptitude install gpm

Nun kannst du die Maus in der Konsole benutzen um z.B. den Midnight Commander oder aptitude zu steuern. Man kann nun zudem wie in X gewohnt kopieren und markieren.