Гид по технологиям

Поиск в DuckDuckGo из терминала с помощью ddgr

8 min read Linux Обновлено 07 Jan 2026
Поиск DuckDuckGo из терминала — ddgr
Поиск DuckDuckGo из терминала — ddgr

Important: ddgr использует DuckDuckGo API-подобный интерфейс через сеть — при работе учитывайте настройки прокси и ограничения сети в вашей среде.

ddgr: DuckDuckGo.search from terminal

Картинка: пример окна терминала с выводом ddgr и результатами поиска DuckDuckGo

Что такое ddgr?

ddgr — это консольная утилита для поиска в DuckDuckGo прямо из командной строки. Она возвращает результаты в текстовом/HTML-подобном виде, позволяет перемещаться по списку результатов с клавиатуры и быстро открывать нужные ссылки. Простая идея: сделать веб-поиск доступным без графического браузера и с минимальными утечками приватных данных.

Ключевые возможности ddgr:

  • Быстрый текстовый вывод результатов
  • Удобная навигация по результатам с клавиатуры
  • Поддержка DuckDuckGo !Bang для поиска на конкретных сайтах
  • Фильтрация результатов по времени и региону
  • Интеграция с браузером по умолчанию и текстовыми браузерами
  • Поддержка HTTPS-прокси и настройки Do Not Track
  • Минимальные зависимости
  • REPL-режим для непрерывных поисков

Кому полезен ddgr: пользователям, которые предпочитают терминал, сторонникам приватности и системным администраторам, которые нуждаются в быстром поиске без графического интерфейса.

Быстрый план содержимого

  • Установка на Debian/Ubuntu и через Snap
  • Базовое использование и примеры команд
  • Настройка количества результатов и открытие ссылок
  • Интеграция с текстовыми браузерами
  • Работа с !Bang и сайт-ограничениями
  • Поиск по типу файла и полезные флаги
  • Продвинутые советы, отладка и ограничения
  • Чеклисты и шпаргалки для разных ролей

Установка ddgr на Linux

Установить ddgr на Linux можно несколькими способами. Выберите вариант, подходящий для вашей системы.

Debian и Ubuntu

На дистрибутивах, основанных на Debian или Ubuntu, самый простой способ — пакетный менеджер APT:

sudo apt-get install ddgr

Когда система попросит подтверждение, нажмите y и Enter.

Альтернативно можно скачать DEB-пакет и установить его вручную. Скачайте файл ddgr (DEB package) в папку «Загрузки» или в другое удобное место, затем выполните:

cd ~/Загрузки
sudo dpkg -i ddgr_x.x.x-x_ubuntuXX.XX.amd64.deb

Если возникнут зависимости, исправьте их командой:

sudo apt-get -f install

Установка через Snap

Snap предоставляет универсальный способ установки на многих дистрибутивах.

Проверьте, установлен ли snap:

snap --version

Если вывод содержит номер версии — snap доступен. Установите ddgr:

sudo snap install ddgr

Если snap не установлен, следуйте документации вашей системы для его установки.

Установка из исходников и pip

ddgr написан на Python и доступен в виде пакета. При необходимости вы можете установить его через pip, но учтите зависимости и виртуальные окружения:

pip install ddgr

Для системной установки используйте виртуальное окружение или менеджер пакетов дистрибутива.

Базовое использование ddgr

Откройте терминал и выполните простой поиск:

ddgr ваш_запрос

Пример:

ddgr makeuseof

Результат — список ссылок с краткими сниппетами, каждая строка пронумерована. Для навигации используйте стрелки и клавиши, указанные в интерфейсе.

ddgr output

Картинка: пример текстового вывода результатов ddgr в терминале

Настройка количества возвращаемых результатов

По умолчанию ddgr показывает 10 результатов. Чтобы изменить это число, используйте флаг -n:

ddgr -n 20 ваш_запрос

Где 20 — желаемое число результатов.

Открытие ссылки из результатов

Каждый результат имеет индекс (номер). Введите номер результата в подсказке ddgr (omniprompt) и нажмите Enter — ссылка откроется в браузере по умолчанию.

Интеграция с текстовыми браузерами

По умолчанию ddgr открывает ссылки в графическом браузере по умолчанию. Чтобы использовать текстовый браузер (w3m, lynx, elinks), установите переменную окружения BROWSER.

Установить по умолчанию (для текущей сессии терминала):

export BROWSER=w3m

Использовать текстовый браузер только для одного запроса:

BROWSER=w3m ddgr ваш_запрос

ddgr in text-based browser

Картинка: открытие результата ddgr в текстовом браузере w3m

«I’m Feeling Ducky» — быстрый переход к первому результату

Аналог «I’m Feeling Lucky» от Google существует и у DuckDuckGo. Чтобы сразу открыть первый результат:

ddgr -j lucky ваш_запрос

!Bang — быстрый поиск на конкретных сайтах

!Bang — это сокращения, которые перенаправляют запрос на конкретный сайт. В ddgr вы можете использовать !Bang напрямую:

ddgr !w duckduckgo

Если вы используете Bash, экранируйте символ !, чтобы оболочка не интерпретировала его:

ddgr \!w duckduckgo

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

Можно ограничить поиск отдельным сайтом с помощью флага -w:

ddgr -w amazon.com mechanical keyboard

Поиск по типу файла

Чтобы найти файлы определённого формата, добавьте filetype: (как в DuckDuckGo):

ddgr duckduckgo filetype:png

Справка по ddgr

Если вы не уверены в синтаксисе или хотите увидеть все опции:

ddgr --help

ddgr help

Картинка: вывод команды ddgr –help с краткой подсказкой по флагам

Продвинутые настройки и советы

Ниже перечислены практические приёмы и конфигурации для более эффективной работы.

Конфигурационный файл и постоянные параметры

ddgr поддерживает конфигурационный файл, где можно задать поведение по умолчанию (например, количество результатов, регион, язык). Обычно конфиг располагается в ~/.config/ddgr или аналогичной директории. Пример содержимого конфигурации:

# пример ~/.config/ddgr
num_results = 15
region = us
lang = en-US
browser = w3m

Изменив конфиг, вы получите постоянные настройки без необходимости указывать флаги каждый раз.

HTTPS-прокси и сетевые настройки

Если вы используете прокси, используйте стандартные переменные окружения для HTTP/HTTPS-прокси:

export HTTPS_PROXY=https://proxy.example.com:3128
export HTTP_PROXY=http://proxy.example.com:3128

ddgr будет следовать этим переменным, как большинство CLI-приложений на Python.

Do Not Track и приватность

ddgr фокусируется на приватности, но учтите: сама передача запроса в сеть зависит от сетевых условий и конфигурации ОС. Для дополнительной приватности используйте VPN или SOCKS-прокси, если это необходимо.

REPL-режим для непрерывных поисков

Если вы часто выполняете последовательные поиски, ddgr поддерживает REPL-подобное поведение (в зависимости от версии). Это сокращает время на повторное открытие программы.

Когда ddgr может не подойти

  • Если вам нужен полноценный рендеринг JavaScript-ориентированных страниц — текстовый вывод не заменит браузер.
  • Когда требуется расширенный анализ SERP (например, визуальные сниппеты, карты) — терминальный вывод ограничен.
  • В сетях с ограничениями или без доступа к DuckDuckGo API/сети поиск может не работать.

Альтернативы

  • googler — похожий инструмент для поисков Google в терминале (если нужна функциональность Google).
  • surfraw — оболочка для быстрого доступа к разным поисковым сервисам через командную строку.

Выбор зависит от поисковой системы, удобства и требований к приватности.

Чеклисты по ролям

Разработчик

  • Установить ddgr через apt или pip
  • Настроить BROWSER для быстрого тестирования (w3m/lynx)
  • Добавить alias в ~/.bashrc: alias s=’ddgr’
  • Использовать !bang для быстрого перехода на документацию

Сисадмин

  • Проверить совместимость с системным прокси
  • Настроить конфиг в /etc/skel или централизованно
  • Обеспечить наличие текстовых браузеров на серверах
  • Документировать использование в runbook

Пользователь, заботящийся о приватности

  • Использовать ddgr вместо графического поиска при необходимости
  • Настроить HTTPS/SOCKS-прокси или VPN
  • Проверить, что конфиг не содержит лишних внешних сервисов

Шпаргалка команд (Cheat sheet)

Основные команды и шаблоны:

# базовый поиск
ddgr запроса

# число результатов
ddgr -n 25 запрос

# открыть первый результат напрямую
ddgr -j lucky запрос

# !bang на Wikipedia (с экранированием в bash)
ddgr \!w duckduckgo

# поиск на конкретном сайте
ddgr -w example.com запрос

# использовать текстовый браузер для одного запроса
BROWSER=lynx ddgr запрос

# помощь
ddgr --help

Мини-методика для эффективного терминального поиска

  1. Сформулируйте короткий запрос, убрав стоп-слова.
  2. Используйте !bang, если нужен конкретный сайт.
  3. Ограничьте результаты флагом -n для быстрой навигации.
  4. Открывайте нужные ссылки по индексу через omniprompt.
  5. Если нужен рендер страницы — открывайте в текстовом браузере или графическом, в зависимости от задачи.

Ментальные модели и эвристики

  • «Терминал как фильтр»: думайте о ddgr как о первом уровне фильтрации — быстрые ссылки и сниппеты; для глубокого изучения переходите в браузер.
  • «Bang как ярлык»: используйте !bang для перехода на специализированные ресурсы (Wikipedia, StackOverflow, Amazon) и экономии времени.
  • «Малое число результатов = точность»: задавайте небольшое количество результатов, если хотите быстро найти наиболее релевантные ссылки.

Тестовые случаи и критерии приёмки

Критерии приёмки установки ddgr

  • ddgr запускается и отображает версию: ddgr –version
  • Поисковый запрос возвращает не менее одного результата: ddgr example
  • Открытие ссылки по индексу запускает браузер или текстовый браузер при заданной переменной BROWSER

Тесты для базового поиска

  • Выполнить ddgr makeuseof и убедиться в наличии ссылок
  • Выполнить ddgr -n 5 test и проверить, что выведено ровно 5 результатов
  • Выполнить BROWSER=w3m ddgr test и проверить, что w3m открыл страницу

Когда и как устранять неполадки

Проблема: нет сети или запросы не выполняются

  • Проверьте подключение и переменные прокси: echo $HTTPS_PROXY
  • Попробуйте curl к API DuckDuckGo или выполняйте ping к общим ресурсам

Проблема: ссылки не открываются

  • Убедитесь, что переменная BROWSER установлена корректно и соответствующая программа установлена
  • Проверьте разрешения и путём which w3m/lynx

Проблема: странный вывод или ошибки Python

  • Обновите ddgr до последней версии
  • Проверьте зависимости и виртуальные окружения

Факты и ключевые значения

  • По умолчанию ddgr показывает 10 результатов за один вызов.
  • ddgr поддерживает флаги: -n (количество результатов), -j (режим jump/lucky), -w (поиск по сайту), –help.
  • Интеграция с текстовыми браузерами достигается через переменную окружения BROWSER.

Короткий глоссарий

  • !Bang — сокращение DuckDuckGo для поиска прямо на целевом сайте.
  • omniprompt — командная подсказка ddgr после вывода результатов, где можно ввести номер ссылки.
  • REPL — режим повторных быстрых поисков в одной сессии.

Альтернативы и когда выбрать другую утилиту

  • Если необходимы результаты Google или специфические сервисы Google — используйте googler.
  • Для быстрого доступа к множеству поисковых движков из терминала рассмотрите surfraw.
  • Если требуется полный рендер JavaScript-страниц, комбинируйте ddgr с headless-браузером.

Краткое резюме

ddgr — простой и компактный инструмент для поиска в DuckDuckGo из терминала. Он экономит время, поддерживает !bang, фильтры и интеграцию с текстовыми браузерами, подходит для работы на серверах и в средах без графического интерфейса. Настройте конфиг и переменные окружения для максимально комфортного использования.

Дополнительные ресурсы: посетите репозиторий ddgr на GitHub для полной документации и списка опций.


Краткие выводы:

  • ddgr удобен для приватного и быстрого поиска из терминала.
  • Используйте !bang и -w для целенаправленных запросов.
  • Настройка BROWSER и конфигурационного файла повышает продуктивность.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Accounts Center в Facebook и Instagram — руководство
Социальные сети

Accounts Center в Facebook и Instagram — руководство

Instagram Recap 2022 — как сделать Reel
соцсети

Instagram Recap 2022 — как сделать Reel

Новые функции сообщений Instagram — обзор
Social Media

Новые функции сообщений Instagram — обзор

Удалить лайки в Instagram — быстро и безопасно
Социальные сети

Удалить лайки в Instagram — быстро и безопасно

Добавить модератора в Instagram Live
Социальные сети

Добавить модератора в Instagram Live

Supervision в Instagram: руководство для родителей
Безопасность

Supervision в Instagram: руководство для родителей