Поиск по сайту:

Как просмотреть переполнение стека из терминала

Некоторое время назад мы писали о SoCLI, скрипте Python для поиска и просмотра веб-сайта Stack Overflow из командной строки. Сегодня мы обсудим аналогичный инструмент под названием how2. Это утилита командной строки для просмотра переполнения стека из терминала. Вы можете запрашивать на простом английском языке, как вы это делаете в поиске Google, и для поиска по заданным запросам используются API Google и Stackoverflow. Это бесплатная утилита с открытым исходным кодом, написанная с использованием NodeJS.

Просмотрите переполнение стека из терминала, используя How2

Поскольку How2 — это пакет NodeJS, мы можем установить его с помощью менеджера пакетов Npm. Если вы еще не установили Npm и NodeJS, обратитесь к следующему руководству.

  • Как установить NodeJS в Linux

После установки Npm и NodeJS выполните следующую команду, чтобы установить утилиту How2.

npm install -g how2

Теперь давайте посмотрим, как просмотреть переполнение стека с помощью этой программы. Типичное использование для поиска по сайту Stack Overflow с помощью утилиты «how2»:

how2 <search-query>

Например, я собираюсь поискать, как создать архив tgz.

how2 create archive tgz

Упс! Я получаю следующую ошибку.

/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)

Это может быть ошибка. Надеюсь, это будет исправлено в будущих версиях. Однако я нашел обходной путь, опубликованный здесь.

Чтобы временно исправить эту ошибку, вам необходимо отредактировать файл transport.js с помощью команды:

vi /home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js

Фактический путь к этому файлу будет отображаться в выводе ошибки. Замените указанный выше путь к файлу своим собственным. Затем найдите следующую строку:

var EventEmitter = process.EventEmitter;

и замените его следующей строкой:

var EventEmitter = require('events');

Нажмите ESC и введите :wq, чтобы сохранить файл и выйти из него.

Теперь повторите поиск по запросу.

how2 create archive tgz

Вот пример вывода моей системы Ubuntu.

Просмотр переполнения стека из терминала

Если ответ, который вы ищете, не отображается в приведенном выше выводе, нажмите клавишу ПРОБЕЛ, чтобы начать интерактивный поиск, где вы сможете просмотреть все предлагаемые вопросы и ответы на сайте Stack Overflow.

Используйте стрелки ВВЕРХ/ВНИЗ для перемещения между результатами. Как только вы получите правильный ответ/вопрос, нажмите ПРОБЕЛ или клавишу ВВОД, чтобы открыть его в Терминале.

Чтобы вернуться и выйти, нажмите ESC.

Поиск ответов для определенного языка

Если вы не укажете язык, он по умолчанию использует командную строку Bash unix и сразу же выдаст наиболее вероятный ответ, как указано выше. Вы также можете сузить результаты до определенного языка, например Perl, Python, C, Java и т. д.

Например, для поиска запросов, связанных с языком «Python», используйте только флаг -l, как показано ниже.

how2 -l python linked list

Чтобы получить быструю помощь, введите:

how2 -h

Заключение

Утилита How2 — это базовая программа командной строки, предназначенная для быстрого поиска вопросов и ответов в Stack Overflow, не выходя из терминала, и она неплохо справляется с этой задачей. Однако это всего лишь браузер CLI для переполнения стека. Для некоторых расширенных функций, таких как поиск вопросов с наибольшим количеством голосов, поиск запросов с использованием нескольких тегов, цветной интерфейс, отправка нового вопроса, просмотр статистики вопросов и т. д., подойдет SoCLI.

И это все на данный момент. Надеюсь, это было полезно. Скоро я буду здесь с еще одним полезным руководством. А пока следите за обновлениями OSTechNix!

Ваше здоровье!

Ресурс:

  • Репозиторий How2 GitHub

Статьи по данной тематике