Merge pull request #13866 from wxy/20180312-ddgr---A-Command-Line-Tool-To-Search-DuckDuckGo-From-The-Terminal

PRF&PUB:20180312 ddgr   A Command Line Tool To Search DuckDuckGo From The Terminal
This commit is contained in:
Xingyu.Wang 2019-05-29 22:51:55 +08:00 committed by GitHub
commit 465c3fe218
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,5 +1,6 @@
ddgr - 一个从终端搜索 DuckDuckGo 的命令行工具 ddgr一个从终端搜索 DuckDuckGo 的命令行工具
====== ======
在 Linux 中Bash 技巧非常棒,它使 Linux 中的一切成为可能。 在 Linux 中Bash 技巧非常棒,它使 Linux 中的一切成为可能。
对于开发人员或系统管理员来说,它真的很管用,因为他们大部分时间都在使用终端。你知道他们为什么喜欢这种技巧吗? 对于开发人员或系统管理员来说,它真的很管用,因为他们大部分时间都在使用终端。你知道他们为什么喜欢这种技巧吗?
@ -8,184 +9,184 @@ ddgr - 一个从终端搜索 DuckDuckGo 的命令行工具
### 什么是 ddgr ### 什么是 ddgr
[ddgr][1] 是一个命令行实用程序,用于从终端搜索 DuckDuckGo。如果设置了 BROWSER 环境变量ddgr 可以在几个基于文本的浏览器中开箱即用。 [ddgr][1] 是一个命令行实用程序,用于从终端搜索 DuckDuckGo。如果设置了 `BROWSER` 环境变量ddgr 可以在几个基于文本的浏览器中开箱即用。
确保你的系统安装了任何基于文本的浏览器。你可能知道 [googler][2],它允许用户从 Linux 命令行进行 Google 搜索。 确保你的系统安装了任何一个基于文本的浏览器。你可能知道 [googler][2],它允许用户从 Linux 命令行进行 Google 搜索。
它在命令行用户中非常受欢迎,他们期望对隐私敏感的 DuckDuckGo 也有类似的实用程序,这就是 ddgr 出现的原因。 它在命令行用户中非常受欢迎,他们期望对隐私敏感的 DuckDuckGo 也有类似的实用程序,这就是 `ddgr` 出现的原因。
与 Web 界面不同,你可以指定每页要查看的搜索结果数。 与 Web 界面不同,你可以指定每页要查看的搜索结果数。
**建议阅读:** **建议阅读:**
**(#)** [Googler 从 Linux 命令行搜索 Google][2]
**(#)** [Buku Linux 中一个强大的命令行书签管理器][3] - [Googler 从 Linux 命令行搜索 Google][2]
**(#)** [SoCLI 从终端搜索和浏览堆栈溢出的简单方法][4] - [Buku Linux 中一个强大的命令行书签管理器][3]
**(#)** [RTVReddit 终端查看器)- 一个简单的 Reddit 终端查看器][5] - [SoCLI 从终端搜索和浏览 StackOverflow 的简单方法][4]
- [RTVReddit 终端查看器)- 一个简单的 Reddit 终端查看器][5]
### 什么是 DuckDuckGo ### 什么是 DuckDuckGo
DDG 即 DuckDuckGo。DuckDuckGoDDG是一个真正保护用户搜索和隐私的互联网搜索引擎。 DDG 即 DuckDuckGo。DuckDuckGoDDG是一个真正保护用户搜索和隐私的互联网搜索引擎。它没有过滤用户的个性化搜索结果对于给定的搜索词它会向所有用户显示相同的搜索结果。
它们没有过滤用户的个性化搜索结果,对于给定的搜索词,它会向所有用户显示相同的搜索结果。
大多数用户更喜欢谷歌搜索引擎,但是如果你真的担心隐私,那么你可以放心地使用 DuckDuckGo。 大多数用户更喜欢谷歌搜索引擎,但是如果你真的担心隐私,那么你可以放心地使用 DuckDuckGo。
### ddgr 特性 ### ddgr 特性
* 快速且干净(没有广告,多余的 URL 或杂物),自定义颜色 * 快速且干净(没有广告、多余的 URL 或杂物参数),自定义颜色
* 旨在以最小的空间提供最高的可读性 * 旨在以最小的空间提供最高的可读性
* 指定每页显示的搜索结果数 * 指定每页显示的搜索结果数
* 从浏览器中打开的 omniprompt URL 导航结果页面 * 可以在 omniprompt 中导航结果,在浏览器中打开 URL
* Bash、Zsh 和 Fish 的搜索和配置脚本 * 用于 Bash、Zsh 和 Fish 的搜索和选项补完脚本
* DuckDuckGo Bang 支持(自动完 * 支持 DuckDuckGo Bang带有自动完)
* 直接在浏览器中打开第一个结果(就像我感觉 Ducky * 直接在浏览器中打开第一个结果(如同 “Im Feeling Ducky”
* 不间断搜索:无需退出即可在 omniprompt 中触发新搜索 * 不间断搜索:无需退出即可在 omniprompt 中触发新搜索
* 关键字支持例如filetype:mime、site:somesite.com * 关键字支持例如filetype:mime、site:somesite.com
* 按时间、指定区域禁用安全搜索 * 按时间、指定区域搜索,禁用安全搜索
* HTTPS 代理支持,无跟踪,可选择禁用用户代理 * 支持 HTTPS 代理,支持 Do Not Track可选择禁用用户代理字符串
* 支持自定义 URL 处理程序脚本或命令行实用程序 * 支持自定义 URL 处理程序脚本或命令行实用程序
* 全面的文档man 页面有方便的使用示例 * 全面的文档man 页面有方便的使用示例
* 最小的依赖关系 * 最小的依赖关系
### 需要条件 ### 需要条件
ddgr 需要 Python 3.4 或更高版本。因此,确保你的系统应具有 Python 3.4 或更高版本。 `ddgr` 需要 Python 3.4 或更高版本。因此,确保你的系统应具有 Python 3.4 或更高版本。
``` ```
$ python3 --version $ python3 --version
Python 3.6.3 Python 3.6.3
``` ```
### 如何在 Linux 中安装 ddgr ### 如何在 Linux 中安装 ddgr
我们可以根据发行版使用以下命令轻松安装 ddgr。 我们可以根据发行版使用以下命令轻松安装 `ddgr`
对于 Fedora ,使用 [DNF 命令][6]来安装 `ddgr`
对于 **`Fedora`** ,使用 [DNF 命令][6]来安装 ddgr。
``` ```
# dnf install ddgr # dnf install ddgr
``` ```
或者我们可以使用 [SNAP 命令][7]来安装 ddgr。 或者我们可以使用 [SNAP 命令][7]来安装 `ddgr`
``` ```
# snap install ddgr # snap install ddgr
``` ```
对于 **`LinuxMint/Ubuntu`**,使用 [APT-GET 命令][8] 或 [APT 命令][9]来安装 ddgr。 对于 LinuxMint/Ubuntu使用 [APT-GET 命令][8] 或 [APT 命令][9]来安装 `ddgr`
``` ```
$ sudo add-apt-repository ppa:twodopeshaggy/jarun $ sudo add-apt-repository ppa:twodopeshaggy/jarun
$ sudo apt-get update $ sudo apt-get update
$ sudo apt-get install ddgr $ sudo apt-get install ddgr
``` ```
对于基于 **`Arch Linux`** 的系统,使用 [Yaourt 命令][10]或 [Packer 命令][11]从 AUR 仓库安装 ddgr。 对于基于 Arch Linux 的系统,使用 [Yaourt 命令][10]或 [Packer 命令][11]从 AUR 仓库安装 `ddgr`
``` ```
$ yaourt -S ddgr $ yaourt -S ddgr
or
$ packer -S ddgr $ packer -S ddgr
``` ```
对于 **`Debian`**,使用 [DPKG 命令][12] 安装 ddgr。 对于 Debian使用 [DPKG 命令][12] 安装 `ddgr`
``` ```
# wget https://github.com/jarun/ddgr/releases/download/v1.2/ddgr_1.2-1_debian9.amd64.deb # wget https://github.com/jarun/ddgr/releases/download/v1.2/ddgr_1.2-1_debian9.amd64.deb
# dpkg -i ddgr_1.2-1_debian9.amd64.deb # dpkg -i ddgr_1.2-1_debian9.amd64.deb
``` ```
对于 **`CentOS 7`**,使用 [YUM 命令][13]来安装 ddgr。 对于 CentOS 7使用 [YUM 命令][13]来安装 `ddgr`
``` ```
# yum install https://github.com/jarun/ddgr/releases/download/v1.2/ddgr-1.2-1.el7.3.centos.x86_64.rpm # yum install https://github.com/jarun/ddgr/releases/download/v1.2/ddgr-1.2-1.el7.3.centos.x86_64.rpm
``` ```
对于 **`opensuse`**,使用 [zypper 命令][14]来安装 ddgr。 对于 opensuse使用 [zypper 命令][14]来安装 `ddgr`
``` ```
# zypper install https://github.com/jarun/ddgr/releases/download/v1.2/ddgr-1.2-1.opensuse42.3.x86_64.rpm # zypper install https://github.com/jarun/ddgr/releases/download/v1.2/ddgr-1.2-1.opensuse42.3.x86_64.rpm
``` ```
### 如何启动 ddgr ### 如何启动 ddgr
在终端上输入 `ddgr` 命令,不带任何选项来进行 DuckDuckGo 搜索。你将获得类似于下面的输出。 在终端上输入 `ddgr` 命令,不带任何选项来进行 DuckDuckGo 搜索。你将获得类似于下面的输出。
``` ```
$ ddgr $ ddgr
``` ```
![][16] ![][16]
### 如何使用 ddgr 进行搜索 ### 如何使用 ddgr 进行搜索
我们可以通过两种方式启动搜索。从omniprompt 或者直接从终端开始。你可以搜索任何你想要的短语。 我们可以通过两种方式启动搜索。从 omniprompt 或者直接从终端开始。你可以搜索任何你想要的短语。
直接从终端: 直接从终端:
``` ```
$ ddgr 2daygeek $ ddgr 2daygeek
``` ```
![][17] ![][17]
`omniprompt` 从 omniprompt
![][18] ![][18]
### Omniprompt 快捷方式 ### Omniprompt 快捷方式
输入 `?` 以获得 `omniprompt`,它将显示关键字列表和进一步使用 ddgr 的快捷方式。 输入 `?` 以获得 omniprompt它将显示关键字列表和进一步使用 `ddgr` 的快捷方式。
![][19] ![][19]
### 如何移动下一页、上一页和第一页 ### 如何移动下一页、上一页和第一页
它允许用户移动下一页、上一页或第一页。 它允许用户移动下一页、上一页或第一页。
* `n:` 移动到下一组搜索结果 * `n` 移动到下一组搜索结果
* `p:` 移动到上一组搜索结果 * `p` 移动到上一组搜索结果
* `f:` 跳转到第一页 * `f` 跳转到第一页
![][20] ![][20]
### 如何启动新搜索 ### 如何启动新搜索
“**d**” 选项允许用户从 omniprompt 发起新的搜索。例如,我搜索了 `2daygeek 网站`,现在我将搜索 **Magesh Maruthamuthu** 这个新短语。 `d` 选项允许用户从 omniprompt 发起新的搜索。例如,我搜索了 “2daygeek website”现在我将搜索 “Magesh Maruthamuthu” 这个新短语。
从 omniprompt
`omniprompt`.
``` ```
ddgr (? for help) d magesh maruthmuthu ddgr (? for help) d magesh maruthmuthu
``` ```
![][21] ![][21]
### 在搜索结果中显示完整的 URL ### 在搜索结果中显示完整的 URL
默认情况下,它仅显示文章标题,在搜索中添加 **x** 选项以在搜索结果中显示完整的文章网址。 默认情况下,它仅显示文章标题,在搜索中添加 `x` 选项以在搜索结果中显示完整的文章网址。
``` ```
$ ddgr -n 5 -x 2daygeek $ ddgr -n 5 -x 2daygeek
``` ```
![][22] ![][22]
### 限制搜索结果 ### 限制搜索结果
默认情况下,搜索结果每页显示 10 个结果。如果你想为方便起见限制页面结果,可以使用 ddgr 带有 `--num`` -n` 参数。 默认情况下,搜索结果每页显示 10 个结果。如果你想为方便起见限制页面结果,可以使用 `ddgr` 带有 `--num`` -n` 参数。
``` ```
$ ddgr -n 5 2daygeek $ ddgr -n 5 2daygeek
``` ```
![][23] ![][23]
### 网站特定搜索 ### 网站特定搜索
要搜索特定网站的特定页面,使用以下格式。这将从网站获取给定关键字的结果。例如,我们在 2daygeek 网站搜索 **Package Manager**,查看结果。 要搜索特定网站的特定页面,使用以下格式。这将从网站获取给定关键字的结果。例如,我们在 2daygeek 网站下搜索 “Package Manager”查看结果。
``` ```
$ ddgr -n 5 --site 2daygeek "package manager" $ ddgr -n 5 --site 2daygeek "package manager"
``` ```
![][24] ![][24]
@ -195,8 +196,8 @@ $ ddgr -n 5 --site 2daygeek "package manager"
via: https://www.2daygeek.com/ddgr-duckduckgo-search-from-the-command-line-in-linux/ via: https://www.2daygeek.com/ddgr-duckduckgo-search-from-the-command-line-in-linux/
作者:[Magesh Maruthamuthu][a] 作者:[Magesh Maruthamuthu][a]
译者:[译者ID](https://github.com/译者ID) 译者:[MjSeven](https://github.com/MjSeven)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
选题:[lujun9972](https://github.com/lujun9972) 选题:[lujun9972](https://github.com/lujun9972)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出