Surfraw

Surfraw: Websuche aus dem Terminal

Auch für jemanden wie mich, der schon lange in Linux und viel im Web unterwegs ist, gibt es ab und an alte Schätze zu heben. Ein solcher ist für mich Surfraw, ein Tool, das bereits im Jahr 2000 von Julian Assange entwickelt wurde und das ich bisher nicht kannte.

Wer kennt nicht die Situation: Die grafische Oberfläche kommt nach einem Upgrade nicht mehr hoch und man hängt im TTY fest. Vor den bunten Fenstern steht aber zunächst eine Suche im Web bezüglich des Fehlers. Oder ihr seid auf der Konsole unterwegs und wollt gerade nicht zur Maus greifen, um eine Websuche anzustoßen.

In solchen Situationen habe ich bisher das Tool Googler benutzt. Es ist freie Software und in den allermeisten Distributionen im Archiv. Allerdings ist es auf Googles Suchmaschine beschränkt. Dann kannte ich noch ddgr, das Gleiche in Grün mit der Beschränkung auf DuckDuckGo. Surfraw hebt diese Beschränkung auf und bietet weit über 100 Skripte für die Suche in Suchmaschinen und Webseiten.

Metasearch im Terminal

Aber von vorn: Surfraw unterliegt keiner freien Softwarelizenz, sondern ist Public Domain. Für mich in diesem Fall gut genug. Es ist in den meisten Distributionen aus dem Archiv installierbar. Surfraw durchsucht parametergesteuert Suchmaschinen wie Google, DuckDuckGo und Bing, Webseiten wie Amazon, eBay, YouTube oder Wikipedia und viele andere spezialisierte Webseiten wie Arch Wiki, AUR, Debian Wiki, Debian Packages, FreeBSD, GitHub, Gutenberg, IMDB, Wayback Machine und rund 100 weitere. Welche das sind, erfährt man nach der Eingabe von surfraw -elvi oder in der Kurzform sr -elvi. Weitere Suchen können hinzugefügt werden. Beispiele gibt es unter /usr/lib/surfraw und in diesem YouTube.

Die Ergebnisse können in Textbrowsern wie w3m, ELinks oder Lynx sowie in einem grafischen Browser deiner Wahl ausgegeben werden. Ansonsten erfolgt die Ausgabe auf den Standardbrowser. Diese und andere Optionen können entweder einer Suche direkt mitgegeben oder bei der Konfiguration festgelegt werden.

Konfiguration


mkdir ~/.config/surfraw/
nano ~/.config/surfraw/conf

Als Grundkonfiguration eintragen:

SURFRAW_graphical_browser=/usr/bin/firefox
SURFRAW_text_browser=/usr/bin/w3m
SURFRAW_graphical=yes
oder
SURFRAW_graphical=no

Natürlich kann man auch andere Browser angeben. Weitere Optionen sind der Datei /etc/xdg/surfraw/conf oder der Manpage zu entnehmen.

Suchbeispiele können so aussehen:

  • surfraw debwiki apt – Suche im Debian Wiki nach dem Begriff ‘apt’. Ausgabe erfolgt im grafischen Standard-Browser, sofern nicht anders festgelegt.
  • BROWSER=w3m sr amazon -search=books -country=de -q Terry Pratchett – Suche auf Amazon DE nach Büchern von Terry Pratchett. Ausgabe in w3m.
  • BROWSER=lynx sr google -results=10 Debian, Firmware – Suche mit Google nach den Begriffen Debian und Firmware, Beschränke die Ausgabe auf 10 Resultate, gebe diese mit Lynx aus.
  • sr youtube surfraw – sollte selbsterklärend sein 🙂

Für mich ist Surfraw ein Tool, das künftig anstelle von Googler öfter zum Einsatz kommen wird.

Teilt den Beitrag, falls ihr mögt

15 Kommentare

      1. “Lizenzen können aber auch Freiheit gewähren, indem Sie Dinge einschränken.”
        Klingt irgendwie wie aus 1984:
        “War is Peace,” “Freedom is Slavery,” and “Ignorance is Strength.”

        Wenn du Zeit hast, könntest du ausführen, inwieweit man Freiheit gewährt, indem man Dinge einschränkt?
        Das einzige, das mir einfällt, wäre, dass jeder hingehen kann, sich den Quellcode nehmen kann und daraus eine kommerzielle Anwendung machen kann und die Weiterentwicklung nicht mit anderen teilt. Das geht bei GPL ja nicht, da die Weiterentwicklungen ja ebenfalls unter GPL stehen müssen.
        Aber auch das schränkt ja die Freiheit derer nicht ein, die das Public Domain surfraw benutzen.

        0
    1. Wikipedia hat zwischenzeitlich die Syntax der URLs geändert. Editiere mal Zeile 49 der Datei /usr/lib/surfraw/wikipedia

      Ist:
      prefix=”https://${SURFRAW_wikipedia_language}.wikipedia.org/wiki/index.php?search=”

      Soll:
      prefix=”https://${SURFRAW_wikipedia_language}.wikipedia.org/wiki/?search=”

      Zusätzlich habe ich in ~/.config/surfraw/conf noch das ergänzt:
      SURFRAW_lang=de

      Diesen Parameter liest nicht nur die Wikipedia-Config aus, sondern auch andere. Getestet habe ich u.a. Amazon.

      2
  1. Danke für den Tipp. Surfraw kannte ich auch noch nicht. Sieht vielversprechend aus. In deinen Beispielen hast du “sr” genutzt. Ich nehme an, du hast dir einen entsprechenden Alias angelegt. Das läuft sonst ins Leere 😉

    1

Kommentar hinterlassen