Skip to content

Mammutaufgabe Nummer 2 für 2010

Vor einer Woche tagte das letzte Gremium und auch hier gab es einen eindeutigen Beschluss: Mein Lehrauftrag für das Wintersemester 2010/11 wird genehmigt. Also startet bald mein nächstes Großprojekt, die eigene Vorlesung. Ich werde zusammen mit einem weiteren Professor des Lehrstuhls für Informatik die Vorlesung IT-Sicherheit halten und bin sehr auf diese neue Erfahrung gespannt.

Die ursprüngliche Idee für diese Vorlesung kam aus der Studentenschaft. Während der Proteste anfangs des letzten Semesters monierten Studenten das fehlende Thema. Über diverse Iterationsstufen kam der Vorschlag schließlich bei mir an und der Stein ins Rollen. Ich halte schon seit vielen Jahren Seminare. Zu Beginn waren es hauptsächlich Finanzthemen, genauer Devisen- und Wertpapierhandel. Später schwenkte ich auf den Softwaresektor um. Anfangs war Java der Hauptinhalt, später erweiterte ich mein Angebot auf GNU/Linux (Zertifizierung, Administration etc.), IT-Sicherheit (BSI Grundschutz) und Datenschutzthemen. Die letzteren Felder beackere ich auch in praktischer Tätigkeit. Daher wurde mir das nötige Wissen und die Fähigkeit zur Schulung anerkannt. Die diversen zuständigen Gremien gaben ihre Zustimmung und nun kann es losgehen.

Wenn es soweit ist, berichte ich über die Inhalte und eventuell interessante Begebenheiten aus der Vorlesung. Seit gespannt!

Tip #20: Effektive Suche in der History

Jeder Shellnutzer wird die Tastenkombination Strg+R kennen. In der Standardkonfiguration sucht diese in der Liste aller eingegebenen Befehle nach der Kombination. Also beispielsweise könnte Strg+R und die Eingabe von ls folgendes ergeben:

jens@huehnersuppe:~/ > ls -lart /usr/share/doc/fr*
bck-i-search: ls_

In der zsh ab Version 4.3.9 kann man diese Suche auch mit Mustern ergänzen. Im Normalfall ist Strg+R an history-incremental-search-forward gebunden. Für die Suche nach Mustern musst du ein neues Keybinding anlegen oder das alte überschreiben:

jens@huehnersuppe:~/ > bindkey “^R” history-incremental-pattern-search-forward
jens@huehnersuppe:~/ > grep -ls -E foo /usr/src/linux/kernel.java
bck-i-search: ls*kerne_

Im obigen Beispiel wurde das alte Keybinding überschrieben und dann nach einem Ausdruck gesucht, der ls gefolgt von kerne enthält. Das Feature wird mir sicher viel Spass bereiten. ;-)

Tip #19: Wo bin ich?

Falls ihr mal wieder die Orientierung verloren habt, so hilft euch folgende zsh-Funktion:

function whereami() {
  wget -q “http://maps.google.com/maps/geo?output=csv&oe=utf-8&ll=$1,$2” -O - | cut -f3- -d, 
}

Während des Verfassens des Blogeintrages befand ich mich also in, tipper, tipper, tipper whereami $(($RANDOM * 90/65535. )) $(($RANDOM * 180/65535. )), Amritsar, Punjab, India. :-)

In Anlehnung an Tip #872 Reverse geocode with bash.

Tip #17: Lieblingseditor nutzen

Gestern abend organisierte unsere lokale LUG ein zsh-Gespräch. Dort sollten verschiedene interessante Einstellungen zur zsh besprochen werden. Jörg hatte einen besonders netten Tip:

EDITOR=${$(whence -p vim emacs jed xjed nano mcedit ed)[1]}

Der Befehl whence sucht im Pfad nach den angegebenen Programmen und legt die gefundenen in einem Array ab. Das erste Element des Arrays wird dann ausgewählt und als Variable EDITOR gespeichert. Wenn auf dem System kein vim installiert ist, würde emacs (sofern vorhanden) als Editor festgelegt werden. Sollte keiner der aufgeführten Editoren vorhanden sein, wird der ed genutzt. Denn dieser sollte immer installiert sein.

Wer es noch ein wenig weiter treiben will, setzt einen Alias: alias vim=$EDITOR. So kann man immer vim eingeben und bekommt den passenden Editor. Jedoch kann das Nebenwirkungen haben und du solltest gut überlegen, ob das der richtige Weg ist.

Tip #16: Automatisch Zeit messen

Hin und wieder laufen Programme recht lange und im Nachhinein fällt mir ein, dass ich gern gewusst hätte, wie lange das Programm gelaufen ist. Jetzt könnte ich das Programm nochmal starten und entsprechende Befehle mitgeben. Viel einfacher ist jedoch die Variable REPORTTIME in der zsh. Dieser wird eine natürliche Zahl übergeben, welcher als Sekunden interpretiert wird. Wenn ein Programm länger läuft als der Wert, der in REPORTTIME gesetzt ist, dann gibt die Zsh automatisch, Statistiken zur Zeit aus:

jens@jurkki: ~> export REPORTTIME=2
jens@jurkki: ~> kommando --was --lange --dauert
12,23s user 28,76s system 98% cpu 23,812 total
cronjob