Archiv für den Monat: Juli 2009

Linux Tool der Woche: Clippings

Wer meine Linux Tool-Beiträge regelmässig liest, wird es sicher bemerkt haben: ich habe eine Vorliebe für Tools, mit denen stets wiederkehrende Aufgaben am Computer vereinfacht und erleichtert werden können. Diese Woche ist deshalb ein Tool an der Reihe, das besonders gut zu dieser Vorliebe passt: es ist das Clippings Add-on für Thunderbird. Das kleine Utility tut grundsätzlich nichts anderes, als Textbausteine zu sammeln, um diese später wieder in ein E-Mail einzufügen. Das klingt einfach – und ist es auch. Clippings ist ein Hilfsprogramm der ganz pragmatischen Art, mit dem beliebige Textbausteine gesammelt, geordnet und wiederverwendet werden können. Eine Funktion also, die bereits vor 30 Jahren in den ersten PC-Textverarbeitungen wie Wordstar gerne und oft genutzt wurde.

Aber das ist nicht alles. Hinzu kommt, dass Clippings einige praktische Funktionen anbietet, die das Verwalten der Textbausteine erleichtern: jeder Textblock in einer frei zu definierenden Ordnerhierarchie unter einem eigenen Titel abgelegt werden, ganz ähnlich wie Lesezeichen in einem Webbrowser. Durch das Zuweisen eines Tastenkürzels können Textblöcke rasch und unkompliziert in eine Nachricht eingefügt werden. Und last but not least bietet Clippings Import- und Export-Filter an.

Clippings-Manager
Clippings Manager

Damit Clippings mit Thunderbird genutzt werden kann, muss es zuerst installiert werden. Diese Aufgabe ist über die Rubrik Add-Ons im Menu Tools mit wenigen Handgriffen zu bewältigen. Im Add-Ons Dialog wird unten rechts auf «Get Extensions» geklickt. Darauf wird im Webbrowser eine Seite zum Auffinden von Thunderbird-Add-Ons geöffnet. Die Suche nach «Clippings» liefert genau einen Treffer, der zum gewünschten Add-On führt.
Im nächsten Schritt wird das Add-On heruntergeladen und auf der Festplatte gespeichert. Sobald das Add-On komplett heruntergeladen ist, wird im Add-On Dialog von Thunderbird auf den Button «Install» geklickt um dann die zuvor heruntergeladenen Datei auszuwählen. Damit ist das Add-On installiert und kann nach einem Neustart von Thunderbird genutzt werden.

clippings-add

Neuen Textbaustein erstellen

Das Anlegen eines Textbausteines mit Clippings ist denkbar einfach. Unten links im Thunderbird-Fenster ist neu ein kleines Papierblatt zu sehen. Nun muss nur noch mittels Drag&Drop ein Text aus Thunderbird oder einer anderen X-Anwendung auf dieses Blattsymbol gezogen werden. Dadurch wird ein Fenster geöffnet, in dem der markierte Textblock zu sehen ist. Dem Textfragment kann nun ein Titel und ein Tastenkürzel zugewiesen werden. Wichtig ist dabei das Tastenkürzel: es bestimmt die Tastenkombination, mit der ein Textblock in einer Nachricht eingefügt werden kann. Wird beispielsweise der Buchstabe C gewählt, kann später mit der Tastenkombination Ctrl+Alt+V, gefolgt von C eingefügt werden.

Wem Drag&Drop nicht behagt, der kann einen Textblock auch durch verschiedene andere Arten erstellen. Ein Klick mit der rechten Maustaste auf das Clippings-Blattsymbol öffnet ein Menu, aus dem der Clippings-Manager gestartet werden kann. Hier können nun die bisher gesammelten Bausteine verändert, geordnet oder wieder gelöscht werden. Um einen Baustein manuell zu erstellen, wird auf «Neuer Eintrag» geklickt. Jetzt kann ein Text eingetippt oder aus der Zwischenablage eingefügt werden. Wie zuvor muss dann nur noch ein Titel und optionel ein Kürzel bestimmt werden.

Clippings ist eine echte Arbeitserleichterung, wenn häufig E-Mails verfasst werden müssen. Alle wiederkehrenden Textblöcke einer Nachricht können gespeichert und auf Tastendruck in eine neue Nachricht eingefügt werden. Geschickt genutzt kann dies enorm viel Zeit sparen. Vielen Dank an die Entwickler dieses überaus praktischen kleinen Helfers!

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.

Mail us Rüderswil

Steimandli

Steimanndli

D’Ämme isch e ganz e bsungere Fluss, mängisch grad wie es Sinnbild für üses eigete Läbe. Ömel so chunt’s mir mängisch grad vor. Fröid u Leid finge sich zäme bi üsem schöne Naturfluss, wo i de Bärge si Quelle het und üsem Deheim der Name gäh het. Wenn während Tage d’Wulche töif u fischter über em Tal stah u Räge bringe, de chunt d’Ämme höch u wild derhär. Ganz trüeb u ärdig wird ds Wasser. Sägit, geit’s i üsem Gmuet mängisch präzys eso? U wenn de für mänge Tag e heiteri u warmi Sunne am blaue Summerhimmel steit, de wird üse Fluss klar wie e schöne, glänzende Bärgkristall. Im Wasser si schöni, rundi Steine i allne Farbe u Forme z’gseh u d’Sunne ströit ihri Strahle uf ds glasklare, früsche Bärgwasser, so dass es spieglet, lüchtet u funklet. Wie gärn hocke mir denn uf d’Steine am Ufer u luege üsere Ämme zue. Luege, wie ds’Wasser glichmässig u fridlich ds Tal ab louft u da u dert es Plätschere u Gurgle sich mit dem Stimme vo de Waldbewohner vermischt. U wenn d’Tage heiss wärde, ja de git es nüt schöners, als e härzhafte Gump i ds chüehle Ämmewasser. Was si all die herschelige Beder u «Swimmingpools» da dergäge? Gwüss wäger nüt. Bade isch niene so schön u luschtig wie grad i der Ämme!

Bevor d’Ämme bi Luterbach i d’Aare mündet, het si e wyte Wäg vor sich, gschouet mänge schöne Bitz Land u chönt gwüss mängs erzelle vor dere Reis. Drum isch für üs d’Ämme o es Sinnbild für e Wäg. U drum wei mir a üsem Fescht o a d’Ämme däiche, wo üs so vil schänkt. Mir mäche das mit Steimanndli uf em Tisch. Die si us chline Ämmesteine zämegsetzt. Zu jedem ghört aber o es Stückli Schwemmholz, wo mir am Ufer vor Ämme gfunge hei. Bi telne het es o no es Trädeli Waldholz, ganz eifach drum, wil der Wald d’Amme uf ihrem Wäg begleitet.

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: pstree

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.

Die Idee ist uralt: Informationen werden durch eine hierarchische Anordnung zueinander in Beziehung gebracht. Der Vater der Kategorienlehre, Aristoteles, baute erstmals Systeme auf, in denen er das gesammelte Wissen logisch anordnete und kategorisierte. Die Werke des grossen griechischen Denkers waren noch im Mittelalter das Mass aller Dinge. Auch heute noch ist die Lektüre des Stagiriten lehrreich und anregend: Olof Gigon, der Aristoteles Werke in unsere übersetzte, nennt den Umgang mit Aristoteles in einem sehr bedeutenden Sinne heilsam.

Aber was hat das mit unserem Linux Tool der Woche zu tun? Nun, auch in der Informatik geht gar nichts mehr ohne Ordnung und gerade das Konzept der hierarchischen Gliederung von Daten ist zu einem eminent wichtigen Hilfsmittel geworden – nicht nur beim Verwalten grosser Dateisysteme oder Verzeichnisdienste. Jedes Element einer Datensammlung gehört in einen bestimmten Ordner (resp. hat ein übergeordnetes Element) und agiert selbst als Container für weitere Objekte (resp. hat untergeordnete Elemente). Durch dieses Prinzip der gegenseitigen Beziehung können auch grosse Datenbestände strukturiert angeordnet werden und jedes Objekt lässt sich durch die Angabe eines Pfades rasch wieder auffinden.

mc-tree

Verzeichnisanzeige im Midnight Commander

Und was liegt nun näher, als diese Hierarchie grafisch darzustellen? Auch diese Idee ist durchaus nicht neu, denn bereits auf den ersten grafikfähigen Rechnern wurde sie genutzt und auch für das spartanische MS DOS gab es Hilfsprogramme, welche die Verzeichnishierarchie der Festplatte mit einer vertikalen Baumstruktur anzeigten. Ein Grund für die Popularität des Norton Commander war unter anderem die ausgeklügelte Directory-Tree Steuerung. Diese lebt heute weiter in zahlreichen Dateimanagern, wie Nautilus, Thunar oder Midnight Commander.

Beim Betriebssystem Linux sind auch die laufenden Programme resp. Prozesse hierarchisch geordnet. Jeder einmal gestartete Prozess, wie etwa apache kann selbst weitere, sogenannte Child-Prozesse erzeugen. Das ist an sich noch nichts besonders und viele Linux-Anwender kennen das Konzept der Prozess-Hierarchie gar nicht. Sie werden erst darauf aufmerksam. wenn sie in einem Terminal xcalc starten, das Terminal schliessen und sich dann wundern, weil auch xcalc verschwindet (einfach deshalb, weil xcalc ein Child-Prozess von xterm ist und automatisch beendet wird, wenn der Parent-Prozess endet).

Sobald auf einem System viele Prozesse am Laufen sind, wird es allerdings unübersichtlich, das Kommando ps ax liefert dann eine lange Liste der aktiven Prozesse. Wie die einzelnen Prozesse zueinander in Beziehung stehen, geht aus dieser Liste jedoch nicht hervor. Eine weit übersichtlichere Darstellung liefert nun das Tool pstree, das mit einer simplen ASCII-Grafik die Hierarchie der Prozesse anzeigt:

...
     ├─perl───perl
     ├─portmap
     ├─rpc.idmapd
     ├─rpc.statd
     ├─safe_asterisk───asterisk───4*[rawplayer───cat]
     ├─scsi_eh_0
     ├─sshd─┬─sshd───bash───pstree
     │      └─sshd───bash
     ├─syslogd
...

Die Ausgabe liefert in diesem Beispiel einige interessante Details: es gibt ein Perl-Pogramm, das selbst einen weiteren Prozess erzeugt hat. Auf dem System läuft ferner ein Asterisk-Server, der vier rawplayer-Prozesse am Laufen hat. Schliesslich ist das pstree-Kommando selbst zu sehen; es ist ein Child-Prozess der Shell (bash) und des SSH-Servers (sshd). Nun wäre es spannend zu wissen, welcher Script genau von Perl abgearbeitet wird. Das wird mit dem Argument -a möglich, dieses zeigt zu jedem Prozess die Argumente an:

...
  ├─perl panel-server.pl -v
  │   └─perl panel-server.pl -v
...

Damit wird pstree zu einem exzellenten Hilfsprogramm, wenn es darum geht, Prozesse und ihre Abhängigkeit zu analysieren. Hilfreich sind bei der Analyse auch die Argumente -h und -H pid. Damit lässt sich feststellen, zu welchem Prozess genau eine Prozess-ID (pid) gehört. Wie alle guten UNIX-Tools hat auch pstree eine Manpage und eine kurze Hilfestellung, die mit pstree –help angezeigt werden kann.