Tausend Suchmaschinen haben ebenso viele unterschiedliche Eingabemasken. Mit Surfraw erledigen Sie die Recherche im Web bequem in der Kommandozeile.
Jeder Anwender, der bereits Tipps im Internet finden wollte, kennt das Problem: Er springt von Google über Freshmeat zu Altavista, klickt in den Web-Formularen herum und stapelt Browser-Fenster auf dem Desktop. Wesentlich nervenschonender arbeitet es sich da mit surfraw: Das Tool schickt den gesuchten Begriff als korrekte Anfrage an die entsprechende Suchmaschine. Der Bowser präsentiert Ihnen dann das Ergebnis.
Installation
Sollte das Programm nicht im Umfang Ihrer Distribution enthalten sein, finden Sie den Tarball mit dem Quellcode auf der Homepage des Projektes [1] und auf der Heft-CD in Verzeichnis LinuxUser/surfraw/. Zunächst entpacken Sie das tar-Archiv, bevor Sie surfraw mit dem üblichen Dreischritt configure, make und make install installieren:
[andreas]~> tar xzf surfraw-1.0.7.tar.gz [andreas]~> cd surfraw-1.0.7 [andreas]~> ./configure [andreas]~> make [andreas]~> su Password: (root-Passwort) # make install
Weitere Optionen zur Installation verrät Ihnen die Datei INSTALL, die im neu entstandenen Verzeichnis surfraw-1.0.7 enthalten ist. Benutzern der Debian-Distribution genügt der Befehl
apt-get install surfraw
um das Tool auf den heimischen Rechner zu holen.
Konfiguration
Nach der Installation finden Sie im Verzeichnis /etc die Dateien /etc/surfraw.conf und /etc/surfraw_elvi.list.
Werfen Sie zuerst einen Blick in die Datei /etc/surfraw.conf: Hier wartet die systemweite Konfiguration. Die Datei bringt gute Voreinstellungen mit und ist ausreichend kommentiert. Im Kopf der Datei sehen Sie einen Hinweis zur Konfigurationssyntax mit einer Warnung: “This file has a different format to that of $HOME/.surfraw.conf! $HOME/.surfraw.conf entries should always be written sh style.”
Das bedeutet, dass die Syntax der Hauptkonfiguration in /etc/surfraw.conf von der Datei ~/.surfraw.conf in Ihrem Home-Verzeichnis abweicht. Während die systemweiten Variablen der Konfiguration mit def und defyn definiert werden, dürfen Sie sich in den lokalen Einstellungen mit dem Muster VARIABLE=inhalt begnügen.
Mit diesem Wissen können Sie die Konfigurationsdatei ~/.surfraw.conf in Ihrem Heimatverzeichnis erstellen. Die persönliche Datei bietet den Vorteil, dass Sie schnelle Änderungen ohne Root-Rechte durchführen können. Außerdem können Sie auf diese Weise für jeden User unterschiedliche Nutzerprofile verwenden.
Interessant sind für Sie in erster Linie zwei Variablen: SURFRAW_text_browser und SURFRAW_graphical_browser. Öffnen Sie Ihren Lieblings-Editor und wählen Sie sowohl den Text- als auch den Grafik-Browser, mit dem Sie gerne arbeiten:
SURFRAW_text_browser=lynx SURFRAW_graphical_browser=phoenix
Speichern Sie die Zeilen als ~/.surfraw.conf ab. Jetzt haben Sie den grundlegenden Teil Ihrer Konfiguration bereits abgeschlossen. In der Textkonsole werden die Ergebnisse Ihrer Anfragen nun von Lynx, auf der grafischen Oberfläche hingegen von Phoenix angezeigt.
Optionen
Wenden wir uns nun der zweiten Datei mit dem Namen /etc/surfraw_elvi.list zu. Sie enthält eine Liste der abrufbaren Suchmaschinen. Jeder Suchmaschine entspricht ein gleichnamiges Shell-Skript im Pfad /usr/local/bin bzw. /usr/bin.
Sobald Sie ein Skript mit der Option -help auf der Kommandozeile aufrufen, listet es Ihnen seine möglichen Parameter auf (global options). Einige Skripte wie beispielsweise google verfügen zudem über spezielle local options (Abbildung 1).
In den global options spiegeln sich ein paar Variablen aus /etc/surfraw.conf wider. Der erste Punkt -browser= ruft einen von Ihnen gewählten Web-Browser auf – unabhängig davon, was Sie in der Datei ~/.surfraw.conf definiert haben. Mit -elvi gelangen Sie zur Liste der Suchmaschinen/Shell-Skripte. Die Option -g startet den grafischen Web-Browser, falls Sie ihn durch den Eintrag SURFRAW_graphical=no in ~/.surfraw.conf ausgeschaltet haben.
Das Gegenstück zur Option -g ist -t: Damit bekommen Sie auch im Xterm den schlanken Text-Browser anstelle eines aufgeblasenen GUI-Monsters. Das Argument -escape-url-args= regelt das Maskieren von Zeichen in einer URL, die für die Shell eine besondere Bedeutung haben.
Die local options fallen von Skript zu Skript unterschiedlich aus. Als Beispiel nehmen wir weiterhin google. Über den Parameter -results= definieren Sie die Anzahl der ausgegebenen Resultate eines Treffers. Der Punkt -search= bringt die Suche in den Topic-Modus. Über den werden wahlweise relevante Web-Seiten mit Bezug zu BSD (bsd), Linux (linux), Apple Macintosh (mac) und der US-Regierung (unclesam) angezeigt. So liefert Ihnen Ihr Browser über den Befehl
google -results=100 -search=unclesam linux tcpa
in den ersten hundert Treffern zu den Wörteren linux und tcpa, was im Web-Forum der National Security Agency (NSA) zu diesem Thema gesagt wird.

surfraw den Mailer Mutt bei Sourceforge.net” width=”300″ height=”224″ />
Abbildung 2: Mit den Argumenten “sourceforge mutt” suchtsurfraw den Mailer Mutt bei Sourceforge.netHeimwerker
Was liegt näher, als ein Skript-basiertes Tool den eigenen Bedürfnissen anzupassen? Freilich ist das Angebot mit über 40 Suchmaschinen nicht gering. Wer aber trotzdem das eine oder andere vermisst, kann sich einen eigenen Elvi (so heißen die Such-Skripte) basteln. Voraussetzung ist lediglich Grundwissen über Shell-Programmierung. Der Surfraw-Tarball enthält mit der Datei HACKING auch eine Anleitung zum Elvi-Bau.
Wenn Ihnen die Arbeit zu schwierig erscheint, nehmen Sie sich das Skript in Listing 1 als Vorlage. Mit seiner Hilfe graben Sie in der Datenbank des LinuxUser nach Tipps in unseren Online-Artikeln. Um Ihnen das Abschreiben zu ersparen, liegt das Skript unter dem Namen linuxuser im Verzeichnis surfraw auf der Heft-CD bei. Kopieren Sie die Datei in das Verzeichnis /usr/local/bin und machen Sie es als root für alle Benutzer ausführbar:
root # chmod 755 /usr/local/bin/linuxuser
Nun wünschen wir Ihnen viel Vergnügen auf Ihrer Reise durch das World Wide Web auf der Kommandozeile.
Listing 1
#!/bin/sh
# $Id: linuxuser,v 1.2 2003/04/24 12:05:23 proff Exp $
# elvis: linuxuser – Look up word in Linux User (www.linux-user.de)
. surfraw || exit 1
w3_usage_hook () {
cat <<EOF
Usage: $w3_argv0 [options] [search words]…
Description:
Look up word in Linux User (www.linux-user.de)
EOF
w3_global_usage
}
w3_config
w3_parse_args "$@"
# w3_args now contains a list of arguments
if test -z "$w3_args"; then
w3_browse_url "http://"www.linux-user.de/search""
else
escaped_args=`w3_url_of_arg $w3_args`
w3_browse_url "http://www.linux-user.de/search?config=lu&restrict=&exclude=&method=and&format=builtin-long&sort=score&words=${escaped_args}"
fi
Glossar
-
GUI
-
Graphical User Interface (grafische Benutzerschnittstelle)
Infos
[1] surfraw:Shell Users’ Revolutionary Front Against the World wide web, http://surfraw.sourceforge.net/



