Vor einiger Zeit haben wir über SoCLI geschrieben , ein Python-Skript zum Suchen und Durchsuchen der Stack Overflow-Website von der Befehlszeile aus. Heute werden wir über ein ähnliches Tool namens "how2" sprechen . Es ist ein Befehlszeilenprogramm zum Durchsuchen von Stack Overflow vom Terminal aus. Sie können wie in der Google-Suche im Klartext suchen und es verwendet Google- und Stackoverflow-APIs, um nach den angegebenen Abfragen zu suchen. Es ist ein kostenloses und Open-Source-Dienstprogramm, das mit NodeJS geschrieben wurde .
Stapelüberlauf vom Terminal mit how2 durchsuchen
Da how2 ein NodeJS-Paket ist, können wir es mit Npm installieren Paket-Manager. Wenn Sie Npm und NodeJS noch nicht installiert haben, lesen Sie die folgende Anleitung.
- So installieren Sie NodeJS unter Linux
Führen Sie nach der Installation von Npm und NodeJS den folgenden Befehl aus, um das Dienstprogramm how2 zu installieren.
$ npm install -g how2
Lassen Sie uns nun sehen, wie Sie Stack Overflow mit diesem Programm durchsuchen. Die typische Verwendung zum Durchsuchen der Stack Overflow-Site mit dem Dienstprogramm "how2" ist:
$ how2 <search-query>
Zum Beispiel suche ich danach, wie man ein tgz-Archiv erstellt.
$ how2 create archive tgz
Hoppla! Ich erhalte die folgende Fehlermeldung.
/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js:59 Transport.prototype.__proto__ = EventEmitter.prototype; ^ TypeError: Cannot read property 'prototype' of undefined at Object.<anonymous> (/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js:59:46) at Module._compile (internal/modules/cjs/loader.js:654:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10) at Module.load (internal/modules/cjs/loader.js:566:32) at tryModuleLoad (internal/modules/cjs/loader.js:506:12) at Function.Module._load (internal/modules/cjs/loader.js:498:3) at Module.require (internal/modules/cjs/loader.js:598:17) at require (internal/modules/cjs/helpers.js:11:18) at Object.<anonymous> (/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/stream.js:8:17) at Module._compile (internal/modules/cjs/loader.js:654:30)
Es kann ein Fehler sein. Ich hoffe, dass es in den zukünftigen Versionen behoben wird. Ich finde jedoch eine Problemumgehung, die hier gepostet wurde .
Um diesen Fehler vorübergehend zu beheben, müssen Sie die transport.js bearbeiten Datei mit dem Befehl:
$ vi /home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js
Der tatsächliche Pfad dieser Datei wird in Ihrer Fehlerausgabe angezeigt. Ersetzen Sie den obigen Dateipfad durch Ihren eigenen. Suchen Sie dann die folgende Zeile:
var EventEmitter = process.EventEmitter;
und ersetzen Sie es durch die folgende Zeile:
var EventEmitter = require('events');
Drücken Sie ESC und geben Sie :wq ein um die Datei zu speichern und zu beenden.
Suchen Sie nun erneut die Abfrage.
$ how2 create archive tgz
Hier ist die Beispielausgabe meines Ubuntu-Systems.
Stapelüberlauf vom Terminal durchsuchen
Wenn die gesuchte Antwort nicht in der obigen Ausgabe angezeigt wird, drücken Sie die LEERTASTE Taste, um die interaktive Suche zu starten, bei der Sie alle vorgeschlagenen Fragen und Antworten von der Stack Overflow-Site durchgehen können.
Verwenden Sie die Pfeiltasten NACH OBEN/NACH UNTEN, um zwischen den Ergebnissen zu wechseln. Sobald Sie die richtige Antwort/Frage erhalten haben, drücken Sie die LEERTASTE oder die EINGABETASTE, um sie im Terminal zu öffnen.
Um zurückzugehen und zu beenden, drücken Sie ESC .
Antworten für eine bestimmte Sprache suchen
Wenn Sie keine Sprache angeben, wird standardmäßig Bash verwendet Unix-Befehlszeile und geben Ihnen sofort die wahrscheinlichste Antwort wie oben. Sie können die Ergebnisse auch auf eine bestimmte Sprache einschränken, z. B. Perl, Python, C, Java usw.
Um beispielsweise nach Abfragen zu suchen, die sich auf die Sprache "Python" beziehen, verwenden Sie nur -l wie unten gezeigt kennzeichnen.
$ how2 -l python linked list
Um eine schnelle Hilfe zu erhalten, geben Sie Folgendes ein:
$ how2 -h
Schlussfolgerung
Das Dienstprogramm how2 ist ein einfaches Befehlszeilenprogramm, mit dem Sie schnell nach Fragen und Antworten von Stack Overflow suchen können, ohne Ihr Terminal zu verlassen, und es erledigt diese Aufgabe ziemlich gut. Es ist jedoch nur ein CLI-Browser für den Stapelüberlauf. Für einige erweiterte Funktionen wie die Suche nach den am häufigsten gewählten Fragen, Suchanfragen mit mehreren Tags, farbige Benutzeroberfläche, Einreichen einer neuen Frage und Anzeigen von Fragenstatistiken usw., SoCLI ist gut zu gehen.
Und das ist alles für jetzt. Hoffe, das war nützlich. Ich werde bald hier mit einer weiteren nützlichen Anleitung sein. Bleiben Sie bis dahin auf dem Laufenden mit OSTechNix!
Prost!