Archiv der Kategorie: Linux Tool der Woche

Linux Tool der Woche: screen

Diese Woche ist ein typisches Hilfsprogramm für Administratoren an der Reihe, es kann sich aber auch bei den verschiedensten anderen Aufgaben als sehr hilfreich erweisen: screen. Vereinfacht formuliert implementiert screen ein virtuelles Terminal. Aber was genau heisst das – und was ist der Nutzen davon?

Stellen Sie sich vor, Sie müssen sich von Zeit zu Zeit auf einem fremden Rechner via telnet oder ssh (Secure Shell) anmelden um dort einige administrative Aufgaben zu erledigen, etwa ein Backup starten oder einen C++ Quelltext kompilieren. Wäre es da nicht praktisch, wenn nach dem Verlassen des Fremdrechners alle Einstellungen der Sitzung und alle laufenden Programme erhalten bleiben, so dass Sie beim nächsten Login genau da weitermachen können, wo Sie aufgehört haben? Nun, genau das macht screen. Und noch vieles mehr. Beispielsweise kann screen mehrere Fenster im virtuellen Terminal öffnen, zwischen denen Sie umschalten können.

Um screen auf einem entfernten (oder auch auf dem eigenen) Rechner zu starten, genügt der Aufruf des Programmes:

screen

screen tut nun folgendes: es installiert ein neues virtuelles Terminal, startet eine Shell (z.B. bash) und übergibt die Kontrolle an diese Shell. Nach dem Start sehen Sie also nichts anderes als einen leeren Bildschirm mit einer Eingabeaufforderung («da bin ich, tu was…»). Sie können nun das tun, was Sie sonst auf einer Shell auch machen: Kommandos aufrufen, um Dateien zu kopieren, Programme zu editieren, um Prozesse zu starten und zu überwachen. Oder um mit write einen Spass zu machen… Sobald Sie fertig sind, können Sie das virtuelle Terminal mit der Tastenkombination Ctrl+d (Detach) verlassen und sich ggf. vom entfernten Rechner abmelden.

In der Zwischenzeit bleibt das Screen Terminal aktiv: dies schliesst alle Einstellungen, die Shell History und alle laufenden Prozesse (!) ein. Wenn Sie beispielweise einen Editor wie emacs starten und sich dann wie oben beschrieben vom Terminal abmelden, läuft der emacs Prozess weiter.
Sicher lautet nun die Frage: Wie komme ich wieder zu meinem Terminal? Ganz einfach durch die Eingabe des Kommandos:

screen -r

Nun sehen Sie die Ausgabe der letzten Kommandos, bevor Sie das Terminal das letzte Mal verliessen oder emacs, falls dieser vor dem letzten Detach aktiv war. Dies ist nun eine gute Gelegenheit, das screen Utility noch etwas genauer vorzustellen. screen kennt eine Myriade an Kommandos zur Steuerung des Terminals. Um einen Überblick zu erhalten, geben Sie folgendes ein: Ctrl+a ?.
Wie aus der Hilfsseite zu entnehmen ist, kann screen innerhalb eines Terminals mehrere «Fenster» öffnen zwischen denen dann mit verschiedenen Tastenkombinationen umgeschaltet werden kann. Das ist sehr praktisch, sobald mit mehreren Programmen im Terminal gleichzeitig gearbeitet werden muss: im ersten Fenster läuft emacs, im zweiten Fenster wird ein Quelltext kompiliert und im dritten Fenster läuft der Debugger! Ein Fenster teilt also alle Eigenschaften des Terminals: es speichert alle Einstellungen, die Bildschirmausgabe und es hält die Hand schützend über seine laufenden Kindprozesse.

Ein neues Fenster wird mit der Tastenkombination Ctrl+a c erzeugt. Sie können beliebig viele Fenster erstellen und in jedem Fenster Prozesse laufen lassen lassen. Um eine Übersicht über alle laufenden Fenster zu erhalten, geben Sie ein: Ctrl+a w. Am unteren Rand des Terminals werden nun alle aktiven Fenster mit dem jeweils aktiven Prozess angezeigt:

0-$ joe 1*$ bash 2$ bash

Um zwischen mehreren Fenstern hin- und herzuschalten gibt es natürlich mehrere Möglichkeiten. Die einfachsten sind die Kombinationen Ctrl+a n und Ctrl+a p für das nächste, resp. vorhergehende Fenster. Bei mehr als fünf Fenster macht das jedoch keine Freude mehr, deshalb kann mittels Ctrl+a nnn, wobei nnn für die Nummer des Fensters steht: 0 für das Erste, 1 für das Zweite, usw.

Ist es das, was screen kann? Im Prinzip nein… screen ist bietet eine Vielzahl an weiteren praktischen Funktionen, die den Rahmen dieser kurzen Einführung bei Weitem sprenen würden. Wie so oft sei deshalb auf die Manpage verwiesen, die nebst der Referenz eine gute Einführung enthält.

Linux Tool der Woche: PCMan FM

Vor einigen Wochen war der Midnight Commander, ein kompakter und schneller Dateimanager für die Textkonsole, das Tool der Woche. Ich möchte diesmal die Reihe dieser Software-Kategorie fortsetzen und einen Dateimanager vorstellen, der dem MC in Bezug auf Geschwindigkeit und Effizienz in nichts nachsteht: es ist der PCMan Datei-Manager (PCMan FM) von Hon Jen Yee. Der Autor bezeichnet sein Werk selbst als «extremly fast and leightweight» und wie so oft standen am Anfang des Projektes Wünsche und Ideen, die mit den bestehenden Dateimanagern nicht erfüllt werden konnten. Hon Jen Yee schreibt über die Entstehung von PcMan FM: Konqueror und Nautilus sind grossartige Programme! Aber ich benötige nicht alle Funktionen und besitze einen alten PC. Also suchte ich einen Ersatz, der klein und trotzdem leistungsfähig ist. Der ROX Filemanager ist zwar toll, aber ich konnte mich mit der Bedienung nicht anfreunden. XFCE’s Thunar gefiel mit definitiv am besten. Aber ich wollte ein System mit Tabs haben – und die gibt es bei Thunar nicht. Nach all diesen Erfahrungen kam ich zum Schluss, dass es das Beste ist, wenn ich selbst einen Dateimanager programmiere!


PCMan FM

So entstand also ein flinkes und sehr übersichtliches Tool, das mehr durch Effizienz und Stabilität als durch einen grossen Funktionsumfang überzeugt. Und in der Tat: Wer eine Weile mit PcMan FM arbeitet, staunt über die hohe Geschwindigkeit. Der Dateimanager mit koreanischem Akzent startet in weniger als einer Sekunde, bietet eine übersichtliche, schlichte und klar gegliederte Benutzeroberfläche und erweist sich im täglichen Einsatz als äusserst robust. Beispielsweise werden auch grosse Ordner wie /usr/bin rasch eingelesen und durch ein sauberes Fehlerhandling lässt sich das Programm auch in «schwierigen» Situationen nicht aus der Ruhe bringen (inaktives, Filesystem, Netz getrennt, etc.)

Und was alles kann das Programm? Wie in der Einführung bereits erwähnt, ist der Umfang klein und überschaubar: PCMan FM kennt alle wichtigen Operationen beim Arbeiten mit Dateien und Ordnern, kann Archive erstellen, Attribute bearbeiten und mit Dateien assoziierte Anwendungen starten, zum Beispiel eine .jpg Bilddatei mit GIMP. PCMan FM ist so kompakt, dass sich jeder, der das Programm das erste Mal startet, nach wenigen Minuten ein klares Bild über den Umfang machen kann. Im Folgenden sind exemplarisch ein paar Besonderheiten vorgestellt:

pcmanfm-bookmarks

Lesezeichen

Lesezeichen. Ähnlich wie ein Webbrowser kennt PCMan FM Lesezeichen (Bookmarks), so dass jeder Ordner rasch wieder aufgefunden werden kann. Existierende Lesezeichen sind über ein Menu oder über die Seitenleiste erreichbar, auf der alternativ auch ein Verzeichnisbaum angezeigt werden kann.

Tabs. Wer den Überblick über den Inhalt verschiedener Ordner behalten will, gewinnt mit PCMan FM. Denn das Programm stellt Tabs zur Verfügung, zwischen denen rasch umgeschaltet werden kann. Bei Dateioperationen funktionert sogar Drag&Drop über Tabs hinweg. Um etwa eine Datei von /data/a nach /data/b zu kopieren, werden beide Ordner in je einem Tab geöffnet. Nun wird der erste Tab aktviert und eine Datei auf den Tab mit dem Zielordner gezogen.

pcmanfm-main-root

PCMan FM im root-Modus

Ordner als root öffnen. Für den Fall, dass auf Systemdateien zugegriffen werden muss, erweist sich diese Funktion als hilfreich. Sie öffnet den aktiven Ordner in einem zweiten Fenster mit root-Privilegien. Bei einigen Systemen muss dabei das root-Passwort bekannt sein. Auf UBUNTU-Derivaten wird sudo verwendet. Anschliessend kann mit allen Privilegien auf dem lokalen Dateisystem gearbeitet werden.

PCMan FM kann uneingeschränkt empfohlen werden, wenn ein Dateimanager nur für grundlegende Operationen verwendet werden soll. Diese Aufgabe erfüllt das Programm exzellent nach der UNIX-Philosophie: Löse mit einem Programm eine Aufgabe – diese aber sehr gut! Seine Grenzen erreicht die aktuelle Version hingegen beim Umgang mit entfernten Dateisystemen, so kann PCMan FM nicht wie Nautilus auf FTP- oder SMB-Server zugreifen. Abhilfe schafft das Mount-Kommando, das diese beiden Protokolle kennt und im lokalen Dateisystem einbinden kann.

Linux Tool der Woche: gkrellm

Obwohl der Science-Fiction Streifen Alarm im Weltall (Forbidden Planet) für heutige Betrachter seltsam wirkt, so bleibt er auch nach mehr als 50 Jahren trotzdem bemerkenswert. Denn dieser Film diente als Ideenlieferant für zahlreiche modernere Zukunftsvisionen: wenn zum Beispiel in «Star Wars» Laserkanonen und Raumschiff-Kommandozentralen zu sehen sind, dann sind dies Gestaltungskonzepte, die schon in Forbidden Planet Verwendung fanden. Der Schöpfer von Star Trek, Gene Roddenberry, hat sogar zugegeben, dass er sich vom Alarm im Weltall hat inspirieren lassen.
Obwohl bei der Realisierung dieses Filmes für die damalige Zeit ein beindruckender Aufwand getrieben wurde, ist die Handlung doch schnell erzählt: ein Raumschiff landet auf dem Planeten Altair 4, auf dem zu einer früheren Zeit eine hochentwickelte Spezies gelebt hat, die Krell. Diese entwickelten zuletzt riesige Maschinenwesen, durch die sie dann selbst ausgerottet wurden. Auf den Spuren dieser Krell gelangen die Kolonisten in eine unterirdische Kommandozentrale. Doch der Fund und die Wiederbelebung der Krell-Technologie wird auch den Besuchern zum Verhängnis.

Was aber hat dieser Film mit dem Tool zu tun, das heute vorgestellt werden soll? Ganz einfach: auch der Entwickler von gkrellm, Bill Wilson, liess sich von den Bildern des hier kurz vorgestellten Filmes inspieren und benannte seinen Systemmonitor nach den Krell: gkrellm ist eine Abkürzung für Graphical Krell Monitors (oder Meters). gkrellm kann eine Myriade wichtiger Informationen darstellen, die wie kleine Bildschirme aufeinander gestapelt werden. Dabei beschränkt sich der Umfang nicht auf Systemwerte, wie etwa die Prozessorleistung oder der Netzwerk-Traffic. Zu gkrellm gibt es viele Plugins, mit denen auf Wetter- und Sensordaten, auf IMAP-Postfächer, auf Wireless-Netzwerke und auf vieles mehr zugegriffen werden kann.

Alle Anzeigen können einfach und bequem über einen Konfigurationsdialog angepasst werden. Das heisst aber nicht, dass die Einstellungen nicht auch mit einem Texteditor verändert werden können, denn alle Parameter dieses Tools sind fein säuberlich in einem Ordnersystem unter .gkrellm2 abgelegt. Auch Plugins können dynamisch geladen, aktiviert und konfiguriert werden. Um zum Konfigurationsdialog zu gelangen, muss der Titel von gkrellm (ganz oben) mit der rechten Maustaste angeklickt werden. Alternativ kann auch die Funktionstaste F1 gedrückt werden.

gkrell-moon

Mond-Uhr Einstellungen

Da ich gerne und oft im Garten bin, hat es mir ein gkrellm-Plugin besonders angetan, deshalb will ich es an dieser Stelle kurz vorstellen. Es ist das die Mond-Uhr gkrellmoon. Wie des der Name schon verrät, stellt es in einem Krell-Meter die aktuelle Mondphase an. Um das Plugin zu verwenden, muss es zuerst aktivert werden. Dies geschieht im Dialog unter der Rubrik «Erweiterungen«, wie rechts dargestellt. Hier wird zuerst «Moon Clock» aktiviert, darauf erscheint sofort ein weiterer Eintrag in der Hierarchie der Einstellungen, über den das Mond-Meter konfiguriert werden kann. Glücklicherweise ermittelt das Tool die Standortwerte aus der Zeitzone, so dass in den meisten Fällen keine Anpassungen notwendig sind.

gkrell-bloesteel

Bloe-Steel Thema

gkrellm ist ausserdem ein Tool für Sparsame. Denn es vereint alles, was in anderen Fällen mit verschiedenen Desktop-Erweiterungen realisiert werden müssen – und die sind nicht selten speicherhungrig, so wie wir dies bei Tomboy bereits gesehen haben. Ausserdem benötigen Erweiterungen wie Desklets oder Screenlets Scripting-Sprachen, deren Laufzeitumgenbung dann permament im Speicher geladen sein muss. gkrellm vereint alles wichtige in einem kleinen und grafisch ansprechenden Panel. Es ist etwas für Desktop-Asketen. Das heisst aber nicht, dass gkrellm nicht optisch reizvoller gestaltet werden kann. Ganz im Gegenteil, es gibt auf Muhri’s Homepage mehr als 100 Themas zu gkrellm.

Um ein Thema zu installieren, wird die Archivdatei heruntergeladen und im Ordner ~/.gkrellm2/themes gespeichert. Als nächstes wird das Archiv entpackt, so dass ein Ordner mit den einzelnen Dateien entsteht. Im folgenden Beispiel habe ich das Thema «Steel» bereits heruntergeladen und entpackt. Nun kann es im Konfigurationsdialog unter «Themen» aktiviert werden.

~/.gkrellm2/themes$ ls -1
Steel
Steel.tar.gz

Eine Frage mag noch bleiben: ist gkrellm einfach nur eine Spielerei oder hat es einen echten Nutzen für die Praxis? Auf meinem Desktop läuft gkrellm seit fast zwei Jahren und die Antwort kann aus meiner Sicht nur so lauten: sehr hilfreich! gkrellm zeigt an, wann ich neue Mails erhalten habe, es speichert wichtige Termine und benachrichtig mich rechtzeitig, stellt die Wetterprognose für den kommenden Tag und warnt mich, wenn ein Prozess zuviele Ressourcen verbraucht. Ich möchte dieses intelligente kleine Tool auf keinen Fall missen. Es ist eine flexible und erweiterbare Kommandozentrale mit einem eigenen, futuristischen Touch!

Linux Tool der Woche: xclip

Eigentlich kann xclip nur zwei Dinge tun: Informationen von der Textkonsole oder einer Datei in der X-Windows Zwischenablage (Clipboard) speichern und den aktuellen Inhalt der Zwischenablage anzeigen. Das klingt nach sehr wenig. Bei Lichte betrachtet stellt sich aber bald heraus, wie nützlich dieses kleine Utility in der Praxis sein kann. Zusammen mit einer Clipboard Verwaltung wie Parcellite lassen sich Arbeitsschritte beim Umkopieren von Informationen vereinfachen und automatisieren. So können Dateien oder Teile daraus sehr einfach in einer Textverarbeitung eingefügt werden, ohne dass die Ausgangsdatei zuerst geöffnet werden muss. Gleich verhält es sich mit der Ausgabe von Befehlen, die in einer Dokumentation Verwendung finden sollen. Hier sind einige Beispiele:

1. xclip
2. xclip /etc/motd
3. uptime ¦ xclip
4. xclip -o

Im ersten Beispiel kommt xclip ohne Kommandozeilenargumente aus. Es wartet damit auf eine Eingabe von der Tastatur und speichert diese im Clipboard, sobald die Eingabe mit Ctrl+E abgeschlossen wird. Nun kann der Inhalt des Clipboards durch das drücken des mittleren Mausknopf oder durch Bearbeiten/Einfügen an jeder beliebigen Stelle wieder eingesetzt werden. Falls letzteres jetzt nicht funktioniert: bitte weiterlesen.

Im zweitehn Beispiel wird der Inhalt einer Datei in die Zwischenablage kopiert. In unserem Beispiel ist es motd. Diese Datei existiert auf fast allen UNIX-Systemen und enthält aktuelle Mitteilungen des Systemadministrators oder irgend ein Tagesmotto (motd – message of the day). Das dritte Beispiel zeigt, wie mit dem Pipe-Operator auch die Ausgabe eines Kommandos genutzt werden kann.

Mit dem vierten und letzten Exempel wird der zuletzt abgelegte Inhalt wieder angezeigt. Selbstverständlich kann auch die Ausgabe von xclip in eine Datei umgeleitet oder an einen Prozess übergeben werden. So ist UNIX :-)

Wer nun aber versucht, mit xclip einen Text abzulegen und dann in einem Texteditor wie gedit einzufügen, erlebt eine Enttäuschung, denn gedit verhält sich so, als ob die Zwischenablage leer wäre. Ebenso sind die Inhalte in Parcellite nicht zu sehen. Wir sind damit auf ein Problem gestossen, mit dem jeder UNIX/Linux Anwender eher früher als später konfrontiert wird: X-Windows kennt historisch begründet nicht eine, sondern mehrere Zwischenablagen. Genaugenommen sind es acht, von denen in der Praxis aber nur drei genutzt werden: PRIMARY, SECONDARY und CLIPBOARD. Was hat es damit auf sich?

In X-Windows wird jede Auswahl sofort unter PRIMARY abgelegt. Wenn wir also mit der Maus ein paar Wörter im Editor markieren, gehen diese sofort in die PRIMARY-Ablage. Von dort können sie durch das Klicken auf den mittleren Mausknopf jederzeit wieder eingefügt werden.

Applikationen, die das Befehlspaar Bearbeiten/Kopieren und Bearbeiten/Einfügen kennen, verwenden in den meisten Fällen den CLIPBOARD-Speicher. Wenn wir also gedit starten und mit Ctrl+C oder dem Bearbeiten-Menu einen Textblock kopieren, befindet sich dieser in CLIPBOARD. Von hier aus kann er in anderen «Copy/Paste» Anwendungen wieder eingesetzt werden. Das Klicken der mittleren Maustaste liefert aber weiterhin den Inhalt aus PRIMARY.

Ein Dokument auf freedesktop.org erläutert dieses Problem im Detail und empfiehlt, für Applikationen nur noch das neuere, explizite Copy/Paste Verfahren zu verwenden.

Und zum Schluss noch die gute Nachricht: xclip kennt eine Option, mit der bestimmt werden kann, welche X-Windows Zwischenablage verwendet werden soll. Wenn wir noch einmal den Inhalt einer Datei kopieren und diesmal mit -selection die «richtige» Auswahl angeben, dann kann der Text auch mit gedit, Parcellite oder einer beliebigen andern KDE/GNOME-Anweundung verwendet werden:

xclip -selection CLIPBOARD /etc/motd

Und für einmal dürfen wir mit gutem Gewissen sagen: It’s not a bug, jim. It’s a feature!

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.

Linux Tool der Woche: Xpad

xpad

Xpad in Aktion

Zu den Kritierien für die Auswahl eines Tools der Woche passt Xpad besonders gut. Dieser kleine Helfer auf dem Desktop besticht nicht etwa durch Funktionsvielfalt, sondern vielmehr durch ein simples, aber sehr gut durchdachtes Konzept.

Worum geht es bei Xpad? Um Notizen, Textblöcke, Scriptfragemente und Schnipsel aller Art. Diese können nacht althergebrachter Art auf einem Notizblock erfasst werden, der neben der Tastatur liegt. Und bei ganz kurzen Notizen ist dies auch die erste Wahl. Werden die Notizen aber läner oder müssen sie gar in irgendeiner Form reproduziert werden, dann kommen Tools wie Xpad ins Spiel.

Mit Xpad können Notizen und Texte aller Art in mehreren Fenstern auf dem Desktop gespeichert werden. Das Gesammelte lässt sich hier bequem edtieren, kopieren und verscheben, in mehrere Fenster verteilen oder auch wieder löschen. Zu jedem Fenster kann zudem eine eigene Text- und Hintergrundfarbe, sowie die Schritfart und Grösse bestimmt werden. So bekommt jedes Fenster Notizfenster eine eigene Identität und kann nicht verwechselt werden. Xpad merkt sich zusammen mit der Grösse und Position all diese Einstellungen und stellt sie wieder her, sobald das Programm gestartet wird. Damit ist der Funktionsumfang von Xpad bereits in groben Zügen erfasst. Und in der Praxis braucht es tatsächlich selten mehr, als Xpad bietet. Andere digitale Notizblöcke wie Tomboy trumpfen zwar mit einer eindrücklichen Funktionsvielfalt auf. Sie fordern dafür aber auch deutlich mehr Ressourcen und gewichtige Systembibliotheken.

Ich benötige Xpad für verschiedene Dinge. Ein Notizfenster ist immer auf dem Desktop geöffnet und zeigt eine TODO-Liste – also Dinge, die noch erledigt werden sollten. Ein weiteres Fenster enthält Textblöcke und Script-Fragmente, die während der täglichen Arbeit benötigt werden. Einzelne Blöcke aus Perl-Scripts werden hier «parkiert», bis sie woanders wieder eingesetzt werden. Um die einzelnen Xpad Fenster optisch zu unterscheiden, verwende ich verschiedene Farben. Xpad nutzt zudem jeweils die erste Textzeile als Fenstertitel, was äusserst praktisch ist! Schliesslich verwende ich Xpad um kleinere Texte zu schreiben, die ich später in eine E-Mail oder in einer Textverarbeitung benötige.

Linux Tool der Woche: joe

Auch das Programm, das ich diese Woche vorstellen will, hat eine nostalgische Seite. Denn die Wurzeln des Texteditors joe reichen zurück bis in die 80’er Jahre. Joseph H. Allen entwickelte damals Programme für 8-Bit Prozessoren, unter anderem für den IBM PC. Mit den zur Verfügung stehenden Editoren war er jedoch nicht zufrieden und so begann Joseph im Jahre 1988 einen eigenen Texteditor zu entwickeln, den er zuerst «e», später «j» nannte. Da es bei diesem Namen zu Verwechslungen mit einer Programmiersprache kommen konnte, schlug ein Anwender als alternativen Namen «joe» vor: Joe’s own Editor. Und bei diesem Namen blieb es bis heute. Auf der Homepage des Editors gibt es eine History-Seite, auf der Joseph locker und unterhaltsam von seinen Erlebnissen aus der Mitte der 80’er Jahre berichtet. Ergänzt wird der Bericht durch zahlreiche Abbildungen von Computern aus dieser Zeit.

Und joe kann nicht verleugnen, dass er ein Kind der 80’er Jahre ist: denn einiges erinnert an eine populäre Textverarbeitung, die bei der Entwicklung von joe Pate stand: WordStar. WordStar? Die damals beliebte PC/MS-DOS Textverarbeitung ist heute fast ganz in Vergessenheit geraten. In den 80’er Jahren war sie de facto ein Standard und die von vielen unbeliebten WordStar-Tastenkombinationen wurden von zahlreichen anderen Editoren übernommen. Darunter Turbo-Pascal und – eben joe.
Und noch etwas an joe erinnert an WordStar. Es ist die Hilfsseite, die während dem Tippen ein- und ausgeblendet werden kann. Bei joe kann diese Seite jederzeit mit Ctrl+k h geöffnet werden. Zwischen den einzelnen Hilfsseiten kann dann mit Ctrl+ESC . und Ctrl+ESC , geblättert werden.

joe

joe mit Hilfsseite

Warum gerade joe und nicht vi oder emacs? Zum einen, weil ich diesen Editor während der Arbeit jeden Tag benutze. Ich schätze an joe die einfache Bedienung und die Tatsache, dass er für (fast) jedes Betriebssystem zu haben ist. Zu andern weil ich ein Gewohnheitstier bin. Während Jahren war ich Turbo-Pascal Enthusiast und gerade der Turbo-Editor teilt sehr viele Eigenschaften mit joe.

Andererseits unterscheidet sich joe deutlich von «grossen» Editoren wie vim: joe kennt nur die grundlegenden Funktionen, die beim Editieren von Konfigurationsdateien und Programmen erforderlich sind. Gewiss, es gibt zahlreiche Erweiterungen. Dennoch bleibt joe überschaubar und klein: alle Einstellungen des Editors stehen in einer einzigen Datei (joerc) und die wichtigsten Tastenkombinationen kann sich jeder in wenigen Minuten aneignen. Was für Programmierer erfreulich ist: joe kennt Syntax-Highlighting für die verschiedensten Programmiersprache und Konfigurationsdateien.

Hier sind einige nützliche Funktionen, die das Arbeiten mit joe erleichtern:

Bracket-Matching: Welche Klammern im Programm gehören zusammen? Um dies herauszufinden, wird der Cursor auf eine Klammer gesetzt, gefolgt von der Tastenkombination Ctrl+g. Nun wird der Cursor auf die Gegenklammer gesetzt – falls es eine gibt.

Arbeiten mit mehreren Fenstern: joe kann mehrere Dateien gleichzeitig öffnen und diese in mehreren Fenstern anzeigen, so dass beim Bearbeiten schnell zwischen verschiedenen Dateien umgeschaltet werden kann. Los geht’s am einfachsten mit dem Öffnen eines neuen Fensters: Ctrl+k o. Dieses kann mit Ctrl+k g vergrössert werden, mit Ctrl+k e wird eine Datei in dieses Fenster geladen. Mit Ctrl+k n geht’s zurück zum ersten Fenster und mit Ctrl+c wird das aktuelle Fenster wieder geschlossen.

Lesezeichen: joe kann bis zu 10 Lesezeichen setzen. Um ein Lesezeichen zu platzieren wird der Cursor an die gewünschte Stelle gesetzt, gefolgt von Ctrl+ESC Ctrl+ESC und der Nummer des Lesezeichens (0-9). Zugegeben, besonders intuitiv ist das nicht. Dafür ist das Springen zu einem Lesezeichen wieder einfacher: Ctrl+ESC 0-9.

Text ein-/ausrücken: Jeder Programmierer kennt es – ein Codeblock muss wegen einer Aenderung ein- oder ausgerückt werden. Dazu kann jede Zeile einzeln bearbeitet werden, was kein Problem ist, wenn der Block nur einige Zeilen enthält. Ist er aber mehrere 100 Zeilen lang, was keine Seltenheit ist, muss joe ran: Block markieren und dann mit Ctrl+k . oder Ctrl+k , ein- oder ausrücken.

Soviel also zu joe. Wer kleine und überblickbare Programme mag, dem wird joe gefallen. Der handliche Editor von Joseph H. Allen ist robust und bewährt sich im Alltag bestens. joe wird auch mit grossen Dateien problemlos fertig und sollte das Programm doch einmal abstürzen, dann wird in DEADJOE ein Abbild der aktuellen Sitzung gespeichert, so dass keine Aenderungen verloren gehen.

Linux Tool der Woche: Midnight Commander

Für den Midnight Commander (MC) ist der Begriff «Tool» eine glatte Untertreibung. Bietet doch der von Miguel de Icaza entwickelte Dateimanager eine verblüffende Funktionsvielfalt, gebündelt in einer kompakten, sehr schnellen und leicht zu bedienenden Applikation. Der Begriff «Commander» wird zudem DOS-Anwender an den Norton Commander erinnern, einem Dateiverwalter, der in den 80er und 90er Jahren weit verbreitet war. Tatsächlich übernimmt MC zahlreiche Bedienungskonzepte und Funktionen des Vorbildes von Peter Norton: Dateien und Ordner werden in zwei nebeneinander (oder übereinander) stehenden Fenstern angezeigt, um zwischen diesen beiden Fenstern möglichst einfach austauschen zu können. Eine Baumansicht erleichtert die Navigation durch die Verzeichnishiearchie und mit dem Info-Panel können zahlreiche Deteils einzelner Dateien angezeigt werden.

Midnight Commander

Eines unterscheidet die beiden Programme indes deutlich: der Midnight Commander bietet mehr und ausgereiftere Funktionen. So kann der MC auch als FTP-Client genutzt werden und mittels SMB-Protokoll ist der Zugriff auf Windows- und Samba-Shares offen. Der integrierte Editor “CoolEdit” kann auch Texte formatieren, Makros aufzeichnen und Mails versenden. Und für alle, die nicht auf ihre Maus verzichten wollen, hier die gute Nachricht: Der Midnight Commander lässt auch auch mit der Maus bedienen.

Gewiss, es mag nun die Frage gestellt werden, ob ein zeichenorientierter Dateimanager noch zeitgemäss ist. Gerade Linux Anwender sind mit Dolphin,Konqueror oder Nautilus ziemlich verwöhnt. Dennoch hat der Midnight Commander eine grosse Fangemeinde. Und dies aus drei guten Gründen: Zum ersten ist das Programm sehr kompakt und schnell. Also ideal für kleine und ressourcenarme Rechner. Zum zweiten benötigt der MC keine Grafik. Er kann also auch auf einer Serverkonsole verwendet werden. Gerade hier geht es oft darum einzelne Ordner zu kopieren oder eine Konfigurationsdatei zu verändern. Diese Aufgaben erledigt der MC zuverlässig und blitzschnell. Und zum Dritten gibt es die Anwendergruppe, die die Kommandozeile der grafischen Benutzeroberfläche vorzieht – soweit das heute noch möglich ist. Hier finden sich wohl die meisten MC-Enthusiasten. Die Entwicklung des Midnight Commander stand mehrer Jahre still, bis sie im Frühjahr 2009 von einem Entwickler-Team neu aufgenommen wurde. Das breite und positive Echo auf diesen Entscheid zeigt, dass die Popularität dieses nützlichen Werkzeuges ungebrochen ist.

mc

MC als FTP Client

Was alles kann MC? Eine Dokumentation der zahlreichen Funktionen würde den Umfang dieses Blog-Beitrages bei weitem sprengen. Deshalb folgen drei kurze Anwendungsbeispiele. Mögen Sie das Interesse an diesem vielseitigen Hilfsprogramm wecken und eine der grundlegenden Linux-Philosophien in Erinnerung rufen: Freiheit bezieht sich nicht nur auf die Nutzung der Software sondern auch auf die Auswahl der Favoriten.

Datei kopieren. Dies geht am einfachsten so: In einem der beiden Dateifenster wird der Ordner gewählt, in den die Datei kopiert werden soll. Dann wird im anderen Fenster die zu kopierende Datei markiert. Mit F4 wird der Kopierdialog aufgerufen.

Datei bearbeiten. Datei in einem Fenster markieren und F4 drücken. Bingo.

Verzeichnisbaum anzeigen. Im Menu “Links” order “Rechts” die Anzeigeoption “Baum” wählen. Mit den Cursortasten und der Zeilenschaltung kann nun durch die Verzeichnishierarchie navigiert werden. Im gegenüberliegenden Fenster werden jeweils die Dateien des markierten Ordners angezeigt. Um Details einzelner Dateien und Ordner anzuzeigen wird wiederum in einem der beiden Panelmenus die Option “Info” gewählt.

Zugriff auf einen FTP Server. Die Notation ist etwas gewöhnungsbedürftig: Für eines der beiden Dateifenster im Menu die Option “FTP-Verbindung” wählen und dann die Adresse des Servers eingeben, zum Beispiel: /#ftp:ftp.myhost.com. oder mit Benutzer:

/#guest@ftp:ftp.myhost.com.

Linux Tool der Woche: figlet

Unter dieser Rubrik (LTW) wird auf diesem Blog jede Woche ein Linux Hilfsprogramm vorgestellt. Ausgewählt wird jeweils eines der zahlreichen kleinen Werkzeuge und Tools, die nicht viel Aufmerksamkeit auf sich ziehen, die aber das tägliche Arbeiten am PC auf vielfältige Weise erleichtern. Ich verwende jeweils die Linux-Variante des vorgestellten Tools; oft laufen die Programme aber auf den verschiedensten Plattformen.

Das Tool, das ich heute vorstellen möchte ist Kult. Denn obwohl es erst 1991 in einer ersten Version entwickelt wurde, geht das zugrunde liegende Funktionsprinzip viel weiter in die Vergangenheit zurück. figlet kann aus einzelnen Zeichen eines ASCII-Zeichensatzes verschiedene, vor allem aber deutlich grössere Buchstaben zeichnen. Die erzeugten Buchstaben werden wiederum «FIGlet’s» genannt. FIGlet ist ein Akronym der Namen der drei beteiligten Entwickler: Frank, Ian and Glen’s letters.
Die Idee, Bildschirmzeichen zu verwenden, um Bilder oder Zierbuchstaben zu zeichnen, ist uralt. Schon Schreibmaschinen wurden genutzt, um durch das geschickte Anordnen einzelner Lettern Grafiken zu erstellen. Rosaire J. Belanger erstellte schon 1939 auf seiner Schreibmaschine Portraits, darunter eines von George Washington.

In den 80er Jahren erreichte die ASCII-Art den Zenith ihrer Popularität. Denn grafische Bildschirme waren in dieser Zeit noch keine Selbstverständlichkeit – Computer verwendeten textbasierte Benutzerschnittstellen. Auf dem PC waren Betriebssysteme wie MS-DOS oder DR-DOS mehr als ein Jahrzehnt der unangefochtene Standard. Aus einzelnen Zeichen geformte Überschriften, textbasierte Icons oder andere Formen der ASCII-Art waren täglich anzutreffen. Insbesondere im aufkommenden Internet wurden die teilweise komplexen grafischen Kreationen gerne für Signaturen in der E-Mail oder für Meldungen in den /etc/motd Datei verwendet. Der Inhalt dieser Datei wird angezeigt, sobald sich jemand auf einem UNIX System einloggt.

printshop

Broderbund Printshop (Quelle: Wikipedia)

Wer in den 80’er Jahren einen Commodore 64 besass, kam ebenfalls in Kontakt mit ASCII-Art. Insbesondere das Bedrucken von aneinanderhängenden Blättern auf dem Matrixdrucker war beliebt. Diese Papierbanner wurden dann bei Geburtstagsparties aufgehängt oder sie dienten als Hinweistafeln in Gebäuden oder auf der Strasse. Während zu Beginn des C64 die simpelsten BASIC Einzeiler dafür verwendet wurden, gab es später Programme wie Printshop, die &laquo&richtige» Grafiken für die Verschiedensten Papierformate und Verwendungszwecke bedrucken konnten.

Nun aber zurück zu figlet. Braucht es dieses Programm heute überhaupt noch? Selbstverständlich wird es noch gebraucht! Besonders in der UNIX Welt efreut sich figlet bis heute einer grossen Beliebtheit. Server werden auch heute vorwiegend mit textbasierten Terminals gesteuert und da sind figlet-Schriftzüge immer wieder anzutreffen. figlet wird im Webdesign verwendet, es gibt ein WordPress-Plugin, eine PHP-Klasse und vieles mehr. Hier ist ein einfaches Beispiel für eine figlet-Ausgabe:

 _____ ___ ____ _      _   
|  ___|_ _/ ___| | ___| |_ 
| |_   | | |  _| |/ _ \ __|
|  _|  | | |_| | |  __/ |_ 
|_|   |___\____|_|\___|\__|

Der Schriftzug kann mit folgendem Kommando erstellt werden:

# figlet FIGlet

Ja, es ist tatsächlich so einfach :-) Ich werde es deshalb bei diesem einen Beispiel bewenden lassen. Wer sich über die vielfältigen Möglichkeiten von figlet informieren will, findet in der gut strukturierten und leicht verständlichen Manpage alles Wissenswerte. Und wer sich mit ASCII-Art näher auseinandersetzen will (Vorsicht: Suchtgefahr) findet auf Wikipedia einen guten Einstieg. Viel Spass!

Linux Tool der Woche: pdftk

Unter dieser Rubrik (LTW) wird auf diesem Blog jede Woche ein Linux Hilfsprogramm vorgestellt. Ausgewählt wird jeweils eines der zahlreichen kleinen Werkzeuge und Tools, die nicht viel Aufmerksamkeit auf sich ziehen, die aber das tägliche Arbeiten am PC auf vielfältige Weise erleichtern. Ich verwende jeweils die Linux-Variante des vorgestellten Tools; oft laufen die Programme aber auf den verschiedensten Plattformen.

Das Portable Document Format, oder kurz PDF ist eine praktische Sache: ein in diesem Format gespeichertes Dokument kann zwischen den verschiedensten Plattformen ausgetauscht und auf den unterschiedlichsten Druckern ausgegeben werden – das Ergebnis sieht immer genau gleich aus. Das Seitenformat, die Seitenumbrüche und die verwendeten Schriften bleiben erhalten. Informationen über das Dokument können in Metavariablen gespeichert werden und wer will, kann weitere Dateien an das PDF anhängen – etwa so wie eine Bilddatei an ein E-Mail angehängt wird. Und noch etwas: PDF-Dokumente können als Formulare verwendet werden. Der Betrachter kann dann nicht nur den Inhalt lesen, sondern auch Felder ausfüllen und das ausgefüllte Formular zuletzt ausdrucken. Die Feldwerte können für eine spätere Verwendung gespeichert werden.

Was ist nun aber, wenn mehrseitige PDF-Dokumente aufgeteilt oder mehrere Dateien zu einem einzigen PDF zusammengefügt werden sollen? Oder wenn es darum geht, ein PDF mit einem Passwort zu schützen oder nachträglich eine Datei anzuhängen? Für diese und einige weitere Aufgaben gibt es pdftk. Leider ist die Manpage dieses praktischen Helfers nicht sehr intuitiv, aber wie bei Stefan Lagotzki gibt es zahlreiche Seiten mit gut dokumentierten Beispielen.
Der Aufbau eines pdftk Kommandos ist folgt einer einfachen Syntax: Name der zu bearbeitenden Datei(en) – Kommando – weiter Optionen. Um beispielsweise jede Seite eines PDF Dokumentes sample.pdf in einer eigenen Datei zu speichern, muss folgendes Komando eingegeben werden:

# pdftk sample.pdf burst

Die einzelnen Dateien werden im aktuellen Verzeichnis unter den Namen pg_0001.pdfpg_n.pdf abgelegt. Es ist aber auch möglich, mit der Option output einen eigenen Ordner und eine Namensschablone zu verwenden:

# pdftk sample.pdf burst output ./seiten/seite%03d.pdf

Und der Rückwärtsgang? Mit dem Kommando cat werden mehrere PDF-Dateien zu einem einzigen Dokument zusammengesetzt. Hierbei müssen zuerst die Dateien angegeben werden, gefolgt Namen der Ergebnisdatei:

# pdftk seite1.pdf seite2.pdf cat output beideseiten.pdf

Was kann pdftk noch? Einiges! Wer sich über den gesamten Funktionsumfang ein Bild machen will, findet alles in der Manpage oder auf der Projektseite. Mir hat das Tool gerade erst wieder geholfen, als es darum ging, den defekten Anhang eines Dokumentes zu ersetzen.