Skip to content

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

Daten auf der Festplatte sicher löschen

Vor etwa einem Jahr schrieb ich über die Great Zero Challenge. Bei dem Wettkampf bekam jeder Teilnehmer eine Festplatte, deren Inhalte mit Nullen überschrieben waren. Derjenige, der den Namen eines Ordners oder einer Datei auf der Platte auslesen kann, gewinnt den Wettkampf. Bis heute gibt es keinen Gewinner. Diejenigen, die sich im Usenet oder entsprechenden Webforen rumtreiben, werden sich darüber sicher wundern. Denn es gibt immer wieder Aussagen, dass solche Daten trivial wiederzugewinnen sind. Ein Experte für Computerforensik hat sich jetzt dieser Tatsache angenommen.Nach einem Artikel bei Securityfocus fand er dabei heraus, dass es reicht, die Festplatte einmal mit Zufallswerten zu überschreiben. Die Wahrscheinlichkeit, ein Byte an korrekten Daten wieder zu gewinnen, liegt bei unter einem Prozent. Die korrekte Rückgewinnung von vier Bytes funktionierte nur in neun von einer Million Fällen.

In many instances, using a MFM (magnetic force microscope) to determine the prior value written to the hard drive was less successful than a simple coin toss.

Insofern besteht immer noch eine vage Möglickeit, den obigen Wettkampf zu gewinnen. Doch den meisten meienr Leser dürften die dazu notwendigen Arbeitsmittel nicht zur Verfügung stehen. :-)

Update: Die Diskussion in der Newsgroup de.comp.security.misc Beweise für das Wiederherstellen “überschriebener” Daten hat weitere interessante Details zu dem Thema.

Tip #15: Maximum in einem Array finden

Stellt euch vor, ihr habt ein Array gut gefüllt mit verschiedenen Integer-Werten und wollt das Maximum bestimmen. Wie geht das mit zsh-Mitteln? Ganz einfach:

jens@frankenstein:~/ > a=( 12 232 45 1 56 232 124 12 3442 345)
jens@frankenstein:~/ > print -l ${${(On)a}[1]}
3442

Was macht der Ausdruck? Ganz einfach! Er sortiert das Array numerisch und gibt dann den ersten Wert aus.

cronjob