Linux Tool der Woche: when

Die meiste der bisher vorgestellen Tools sind in bezug auf den Umfang bescheiden. Das ist so gewollt, weil in dieser Rubrik kleine und überschaubare Hilfsprogramme vorgestellt werden sollen. Das Tool dieser Woche geht noch einen Schritt weiter, denn es verfolgt ganz bewusst einen minimalistischen Ansatz: when. Eines muss vorweg gesagt werden: es macht Spass, mit when zu arbeiten und der Grund dafür liegt gerade in der Simplizität dieses Utilities, das aus einem nur rund 50 Kilobyte grossen Perl Script besteht.

when

when in Aktion

Was genau macht when? Grob formuliert handelt es sich um eine Kombination der beiden bekannten und uralten UNIX Tools cal und calendar. Mit diesen beiden Hilfsprogrammen kann auf der Textkonsole ein Kalender zusammen mit zuvor erfassten Terminen angezeigt werden. Beliebt ist vor allem cal, denn damit lässt sich sehr einfach ein Jahreskalender mit einer dicktengleichen Schrift auf dem Drucker ausgeben. when ist also eine einfache Terminverwaltung für die Textkonsole. Der Entwickler Benjamin Crowell formuliert es so: «When ist ein extrem simples persönliches Kalenderprogramm, zugeschnitten auf den Linux Geek mit einem Hang zum Minimalistischen.»

when verfügt über einige sehr nützliche Funktionen und Einstellungen, von denen einige im Folgenden vorgestellt werden sollen. Wer alles wissen will, sei auf die Manpage vewiesen, die wie das Tool selbst klein ist und die den Leser in wenigen Minuten mit allen wissenswerten Funktionen bekannt macht. Wird when ohne Argumente aufgerufen, zeigt es das aktuelle Datum, die Systemzeit und alle Termine der beiden folgenden Wochen an – natürlich nur wenn welche erfasst worden sind! Um den vergangenen, aktuellen und nächsten Monat anzuzeigen, wird when mit dem Argument ‘c’ aufgerufen:

bstocker@tux:~$ when c 
---------Mai---------  --------Juni---------  --------Juli---------
 M  D  M  D  F  S  S    M  D  M  D  F  S  S    M  D  M  D  F  S  S 
             1  2  3                                 1  2  3  4  5 
 4  5  6  7  8  9 10    1  2  3  4  5  6  7    6  7  8  9 10 11 12 
11 12 13 14 15 16 17    8  9 10 11 12 13 14   13 14 15 16 17 18 19 
18 19 20 21 22 23 24   15 16 17 18 19 20 21   20 21 22 23 24 25 26 
25 26 27 28 29 30 31   22 23 24 25 26 27 28   27 28 29 30 31       
                       29 30

Die Optionen müssen tatsächlich nicht wie bei UNIX/Linux gewohnt mit einem führenden «-» eingegeben werden. when folgt hier einer alternativen Notation, die auch von tar (Tape Archiver) genutzt wird. Alle gewünschten Optionen können beim Aufruf einfach aneinandergereiht werden. Mit dem folgenden Kommando werden am Ende des Kalenders die Termine der folgenden Woche aufgelistet:

when cw

Etwas fällt bei der ersten Nutzung auf: when verwendet ein englisches Datumsformat, der erste Tag der Woche ist ein Sonntag und es werden englische Wörter wie «December» und «Monday» verwendet. Erfreulicherweise kann when an die Einstellungen verschiedener Länder angepasst werden, darunter auch Deutschland/Schweiz. Am einfachsten geht dies, indem die Konfigurationsdatei preferences editiert wird. Diese befindet im persönlichen Arbeitsverzeichnis unter ~/.when. Die folgende Einstellungen sorgen dafür, dass when akzentfrei deutsch spricht:

language = de
monday_first = yes
ampm = no

Die Fragen lautet nun, wie mit when Termine erfasst werden. Dazu muss die Datei calendar bearbeitet werden, auch sie ist unter ~/.when zu finden. Aber eigentlich brauchen wir dies gar nicht zu wissen, denn mit when e wird automatisch die richtige Datei in den Editor geladen. Hier nun zum Abschluss ein paar einfache Beispiele:

2009 06 13, Gotthelfmarkt Sumiswald
2009 06 21, Fete de la Musique in Zollbrueck
w=mi, Alphornprobe, 20.00 Steiweid
* November 28, Jonas Geburtstag
* September 14, Kurts Geburtstag
2006* August 29, Felix wird \a Jahre alt

Die beiden ersten Zeilen der Datei definieren fixe, einmalige Termine. Das Datum des Termines muss im Format YYYY MM DD geschrieben werden. Es folgt dann ein Komma und eine einzeilige Beschreibung des Termines. Periodische Termine werden mit einer simplen Notation erfasst, etwa wöchentlich wiederkehrende Ereignisse mit dem Kürzel w=Samstag. Die letzten drei Einträge des Beispiels erinnern an Geburtstage. Da bei Felix das Geburtsjahr angegeben wurde, kann when auch sein Alter errechnen.
when kennt zahlreiche weitere Optionen, die in der Manpage bschrieben sind. Dank der flexiblen Notation kann grundsätzlich jeder Termin erfasst werden, auch kirchliche Feiertage, da das Osterdatum von when für jedes Jahr errechnet wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert