howdoi

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Ein Terminal öffnen

Inhaltsverzeichnis
  1. Installation
  2. Nutzung
    1. Optionen
    2. Umgebungsvariablen für howdoi setzen
    3. Cache manuell löschen
  3. Links

howdoi (gesprochen: "How do I", auf deutsch: "Wie mache ich") ist eine in Python geschriebene Kommandozeilenapplikation, mit der sich schnell Lösungen zu (einfachen) Programmierproblemen recherchieren lassen.

Dazu übergibt man howdoi die gewünschten Suchbegriffe, dann wird damit im Hintergrund eine Google-Suche bei Stackoverflow 🇬🇧 gemacht und das Ergebnis ausgegeben. Wo und wie gesucht wird, kann aber auch über Umgebungsvariablen beeinflusst werden.

howdoi arbeitet rein auf der Kommandozeile, es wird also keine graphische Umgebung oder ein Browser vorausgesetzt. Aber natürlich ist eine Internetverbindung notwendig.

Installation

Es gibt zwar in den Paketquellen ein Paket howdoi (universe), allerdings ist die darin enthaltene Version des Programms stark veraltet, sodass viele Fehler auftreten können. Darum sollte via pip installiert werden.

Der Python Paketmanager pip stellt häufig aktuellere Versionen von Programmen als in den Paketquellen bereit. Folgendermaßen lässt sich das Programm darüber installieren:

pip3 install howdoi       # Programm wird nur für den aktuellen Nutzer installiert  

Hinweis!

Fremdsoftware kann das System gefährden.

Nutzung

Die allgemeine Syntax von howdoi lautet:

howdoi [OPTIONEN] SUCHBEGRIFFE 

SUCHBEGRIFFE sind dabei die Begriffe, die das Problem beschreiben, nach dem man Suchen möchte. Idealerweise sind die Suchbegriffe auf Englisch. Im folgenden Beispiel wird danach gesucht, wie man in der Bash prüft, ob eine Datei existiert:

howdoi test if file exists bash 

Ergebnis:

if [ ! -f /tmp/foo.txt ]; then
    echo "File not found!"
fi

Im zweiten Beispiel wird danach gesucht, wie man in Ruby einen String formatiert:

howdoi format string ruby 

Ergebnis:

ame1 = "John"
name2 = "Mary"
"hello, #{name1}.  Where is #{name2}?"

Standardmäßig gibt howdoi genau ein Suchergebnis aus.

Optionen

Die Ausgabe von howdoi kann über die folgenden Optionen beeinflusst werden:

Optionen von howdoi
Option Erklärung
-a, --all Gibt nicht nur den Befehl / Code aus, sondern den ganzen Text der Antwort.
-l, --link Gibt als Ergebnis nur den Link auf den Diskussionsthread zurück, in dem die Antwort enthalten ist.
-p N, --pos N Gibt als Ergebnis den N-ten Suchtreffer zurück. Voreinstellung für N ist 1
-n ANZAHL Gibt ANZAHL Ergebnise zurück. Voreinstellung für ANZAHL ist 1.
-c Die Ausgabe des Ergebnisses ist farbig / mit Syntaxhervorhebung
-C, --clear-cache Löscht den internen Suchcache von howdoi

Umgebungsvariablen für howdoi setzen

Das Suchverhalten von howdoi kann über einige Umgebungsvariable beeinflusst werden. So würde z.B.

export HOWDOI_URL=askubuntu.com 

die Suche standardmäßig bei askubuntu.com durchführen

Umgebungsvariablen von howdoi
Variable Erklärung
HOWDOI_URL URL, bei der howdoi sucht. Voreingestellt ist stackoverflow.com, als Werte können die URLs der auf stackexchange.com 🇬🇧 aufgeführten Webseiten angegeben werden
HOWDOI_SEARCH_ENGINE Suchmaschine, welche von howdoi genutzt wird. Voreingestellt ist Google, die anderen Option ist Bing.
HOWDOI_COLORIZE Wird die Variable auf true gesetzt, erscheint die Ausgabe immer farbig (auch ohne Angabe der Option -c).
HOWDOI_DISABLE_CACHE Wird die Variable auf true gesetzt, wird das Caching von howdoi deaktiviert.

Cache manuell löschen

howdoi legt standardmäßig einen Cache an, in dem Suchergebnisse gespeichert werden. Stellt man die gleiche Anfrage erneut, erhält man das Ergebnis aus dem Cache, was schneller ist, weil keine Webabfrage nötig ist.

Das Programm verwendet eine SQLite Datenbank und Dateien, welche jeweils im Homeverzeichnis des Nutzers unter .cache/howdoi liegen. Löscht man die Dateien, ist auch der Cache gelöscht. Alternativ kann man den Cache auch über die oben genannte Option -C löschen.