mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
232 lines
8.5 KiB
Markdown
232 lines
8.5 KiB
Markdown
ddgr – A Command Line Tool To Search DuckDuckGo From The Terminal
|
||
======
|
||
Bash tricks are really awesome in Linux that makes everything is possible in Linux.
|
||
|
||
It really works well for developers or system admins because they are spending most of the time with terminal. Did you know why they are preferring this tricks?
|
||
|
||
These trick will improve their productivity and also make them to work fast.
|
||
|
||
### What Is ddgr
|
||
|
||
[ddgr][1] is a command-line utility to search DuckDuckGo from the terminal. ddgr works out of the box with several text-based browsers if the BROWSER environment variable is set.
|
||
|
||
Make sure your system should have installed any text-based browsers. You may know about [googler][2] that allow users to perform Google searches from the Linux command line.
|
||
|
||
It’s highly popular among cmdline users and they are expect the similar utility for privacy-aware DuckDuckGo, that’s why ddgr came to picture.
|
||
|
||
Unlike the web interface, you can specify the number of search results you would like to see per page.
|
||
|
||
**Suggested Read :**
|
||
**(#)** [Googler – Google Search From The Linux Command Line][2]
|
||
**(#)** [Buku – A Powerful Command-line Bookmark Manager for Linux][3]
|
||
**(#)** [SoCLI – Easy Way To Search And Browse Stack Overflow From The Terminal][4]
|
||
**(#)** [RTV (Reddit Terminal Viewer) – A Simple Terminal Viewer For Reddit][5]
|
||
|
||
### What Is DuckDuckGo
|
||
|
||
DDG stands for DuckDuckGo. DuckDuckGo (DDG) is an Internet search engine that really protecting users search and privacy.
|
||
|
||
They didn’t filter users personalized search results and It’s showing the same search results to all users for a given search term.
|
||
|
||
Most of the users prefer google search engine, if you really worrying about privacy then you can blindly go with DuckDuckGo.
|
||
|
||
### ddgr Features
|
||
|
||
* Fast and clean (no ads, stray URLs or clutter), custom color
|
||
* Designed to deliver maximum readability at minimum space
|
||
* Specify the number of search results to show per page
|
||
* Navigate result pages from omniprompt, open URLs in browser
|
||
* Search and option completion scripts for Bash, Zsh and Fish
|
||
* DuckDuckGo Bang support (along with completion)
|
||
* Open the first result directly in browser (as in I’m Feeling Ducky)
|
||
* Non-stop searches: fire new searches at omniprompt without exiting
|
||
* Keywords (e.g. filetype:mime, site:somesite.com) support
|
||
* Limit search by time, specify region, disable safe search
|
||
* HTTPS proxy support, Do Not Track set, optionally disable User Agent
|
||
* Support custom url handler script or cmdline utility
|
||
* Comprehensive documentation, man page with handy usage examples
|
||
* Minimal dependencies
|
||
|
||
|
||
|
||
### Prerequisites
|
||
|
||
ddgr requires Python 3.4 or later. So, make sure you system should have Python 3.4 or later version.
|
||
```
|
||
$ python3 --version
|
||
Python 3.6.3
|
||
|
||
```
|
||
|
||
### How To Install ddgr In Linux
|
||
|
||
We can easily install ddgr using the following command based on the distributions.
|
||
|
||
For **`Fedora`** , use [DNF Command][6] to install ddgr.
|
||
```
|
||
# dnf install ddgr
|
||
|
||
```
|
||
|
||
Alternatively we can use [SNAP Command][7] to install ddgr.
|
||
```
|
||
# snap install ddgr
|
||
|
||
```
|
||
|
||
For **`LinuxMint/Ubuntu`** , use [APT-GET Command][8] or [APT Command][9] to install ddgr.
|
||
```
|
||
$ sudo add-apt-repository ppa:twodopeshaggy/jarun
|
||
$ sudo apt-get update
|
||
$ sudo apt-get install ddgr
|
||
|
||
```
|
||
|
||
For **`Arch Linux`** based systems, use [Yaourt Command][10] or [Packer Command][11] to install ddgr from AUR repository.
|
||
```
|
||
$ yaourt -S ddgr
|
||
or
|
||
$ packer -S ddgr
|
||
|
||
```
|
||
|
||
For **`Debian`** , use [DPKG Command][12] to install ddgr.
|
||
```
|
||
# 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
|
||
|
||
```
|
||
|
||
For **`CentOS 7`** , use [YUM Command][13] to install ddgr.
|
||
```
|
||
# yum install https://github.com/jarun/ddgr/releases/download/v1.2/ddgr-1.2-1.el7.3.centos.x86_64.rpm
|
||
|
||
```
|
||
|
||
For **`opensuse`** , use [zypper Command][14] to install ddgr.
|
||
```
|
||
# zypper install https://github.com/jarun/ddgr/releases/download/v1.2/ddgr-1.2-1.opensuse42.3.x86_64.rpm
|
||
|
||
```
|
||
|
||
### How To Launch ddgr
|
||
|
||
Enter the `ddgr` command without any option on terminal to bring DuckDuckGo search. You will get the same output similar to below.
|
||
```
|
||
$ ddgr
|
||
|
||
```
|
||
|
||
![][16]
|
||
|
||
### How To Search Using ddgr
|
||
|
||
We can initiate the search through two ways. Either from omniprompt or directly from terminal. You can search any phrases which you want.
|
||
|
||
Directly from terminal.
|
||
```
|
||
$ ddgr 2daygeek
|
||
|
||
```
|
||
|
||
![][17]
|
||
|
||
From `omniprompt`.
|
||
![][18]
|
||
|
||
### Omniprompt Shortcut
|
||
|
||
Enter `?` to obtain the `omniprompt`, which will show you list of keywords and shortcut to work further with ddgr.
|
||
![][19]
|
||
|
||
### How To Move Next,Previous, and Fist Page
|
||
|
||
It allows user to move next page or previous page or first page.
|
||
|
||
* `n:` Move to next set of search results
|
||
* `p:` Move to previous set of search results
|
||
* `f:` Jump to the first page
|
||
|
||
|
||
|
||
![][20]
|
||
|
||
### How To Initiate A New Search
|
||
|
||
“ **d** ” option allow users to initiate a new search from omniprompt. For example, i searched about `2daygeek website` and now i’m going to initiate a new search with phrase “ **Magesh Maruthamuthu** “.
|
||
|
||
From `omniprompt`.
|
||
```
|
||
ddgr (? for help) d magesh maruthmuthu
|
||
|
||
```
|
||
|
||
![][21]
|
||
|
||
### Show Complete URLs In Search Result
|
||
|
||
By default it shows only an article heading, add the “ **x** ” option in search to show complete article urls in search result.
|
||
```
|
||
$ ddgr -n 5 -x 2daygeek
|
||
|
||
```
|
||
|
||
![][22]
|
||
|
||
### Limit Search Results
|
||
|
||
By default search results shows 10 results per page. If you want to limit the page results for your convenience, you can do by passing `--num or -n` argument with ddgr.
|
||
```
|
||
$ ddgr -n 5 2daygeek
|
||
|
||
```
|
||
|
||
![][23]
|
||
|
||
### Website Specific Search
|
||
|
||
To search specific pages from the particular website, use the below format. This will fetch the results for given keywords from the website. For example, We are going search about “ **Package Manager** ” from 2daygeek website. See the results.
|
||
```
|
||
$ ddgr -n 5 --site 2daygeek "package manager"
|
||
|
||
```
|
||
|
||
![][24]
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
via: https://www.2daygeek.com/ddgr-duckduckgo-search-from-the-command-line-in-linux/
|
||
|
||
作者:[Magesh Maruthamuthu][a]
|
||
译者:[译者ID](https://github.com/译者ID)
|
||
校对:[校对者ID](https://github.com/校对者ID)
|
||
选题:[lujun9972](https://github.com/lujun9972)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]:https://www.2daygeek.com/author/magesh/
|
||
[1]:https://github.com/jarun/ddgr
|
||
[2]:https://www.2daygeek.com/googler-google-search-from-the-command-line-on-linux/
|
||
[3]:https://www.2daygeek.com/buku-command-line-bookmark-manager-linux/
|
||
[4]:https://www.2daygeek.com/socli-search-and-browse-stack-overflow-from-linux-terminal/
|
||
[5]:https://www.2daygeek.com/rtv-reddit-terminal-viewer-a-simple-terminal-viewer-for-reddit/
|
||
[6]:https://www.2daygeek.com/dnf-command-examples-manage-packages-fedora-system/
|
||
[7]:https://www.2daygeek.com/snap-command-examples/
|
||
[8]:https://www.2daygeek.com/apt-get-apt-cache-command-examples-manage-packages-debian-ubuntu-systems/
|
||
[9]:https://www.2daygeek.com/apt-command-examples-manage-packages-debian-ubuntu-systems/
|
||
[10]:https://www.2daygeek.com/install-yaourt-aur-helper-on-arch-linux/
|
||
[11]:https://www.2daygeek.com/install-packer-aur-helper-on-arch-linux/
|
||
[12]:https://www.2daygeek.com/dpkg-command-to-manage-packages-on-debian-ubuntu-linux-mint-systems/
|
||
[13]:https://www.2daygeek.com/yum-command-examples-manage-packages-rhel-centos-systems/
|
||
[14]:https://www.2daygeek.com/zypper-command-examples-manage-packages-opensuse-system/
|
||
[15]:data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
|
||
[16]:https://www.2daygeek.com/wp-content/uploads/2018/03/ddgr-duckduckgo-command-line-search-for-linux1.png
|
||
[17]:https://www.2daygeek.com/wp-content/uploads/2018/03/ddgr-duckduckgo-command-line-search-for-linux-3.png
|
||
[18]:https://www.2daygeek.com/wp-content/uploads/2018/03/ddgr-duckduckgo-command-line-search-for-linux-2.png
|
||
[19]:https://www.2daygeek.com/wp-content/uploads/2018/03/ddgr-duckduckgo-command-line-search-for-linux-4.png
|
||
[20]:https://www.2daygeek.com/wp-content/uploads/2018/03/ddgr-duckduckgo-command-line-search-for-linux-5a.png
|
||
[21]:https://www.2daygeek.com/wp-content/uploads/2018/03/ddgr-duckduckgo-command-line-search-for-linux-6a.png
|
||
[22]:https://www.2daygeek.com/wp-content/uploads/2018/03/ddgr-duckduckgo-command-line-search-for-linux-7a.png
|
||
[23]:https://www.2daygeek.com/wp-content/uploads/2018/03/ddgr-duckduckgo-command-line-search-for-linux-8.png
|
||
[24]:https://www.2daygeek.com/wp-content/uploads/2018/03/ddgr-duckduckgo-command-line-search-for-linux-9a.png
|