Terminal pogryzł człowieka: ddgr
Jak za pomocą terminala dogadać się z kaczką? Teoretycznie bezsensowne zadanie w istocie jest trywialnym wykorzystaniem dostępności popularnej przeglądarki Duck Duck Go. Oczywiście za pomocą linii komend i polecenia ddgr.
Jakkolwiek ekstrawagancko by to nie brzmiało, to uzyskiwanie w terminalu podpowiedzi wprost z wyszukiwarki internetowej ma swoje zalety. Przykład? Nikt przy zdrowych zmysłach nie lubi przełączać się z terminala na inne okna, a jeżeli już musi to zrobić to tylko i wyłącznie w celu zaczerpnięcia języka. Tudzież innych informacji. To dlatego ddgr jest aż tak ciekawym narzędziem, bowiem bez odrywania rąk od klawiatury możemy wskoczyć wprost w objęcia pożądanej wiedzy. Jak? A tak:
ddgr kbps
… i w mgnieniu oka otrzymamy listę stron na których będziemy mogli doczytać o co chodzi z tymi kbps. Wybór numeru z interesującym nas URLem przeniesie nas do przeglądarki graficznej.
Oczywiście funkcjonalność ddgr nie sprowadza się tylko do tego. To proste polecenie zawiera całkiem sporą liczbę przełączników i parametrów którymi możemy regulować wyniki zapytań.
usage: ddgr [-h] [-n N] [-r REG] [-C] [--colors COLORS] [-j] [-t SPAN] [-w SITE] [-x] [-p URI] [--unsafe] [--noua] [--json] [--gb] [--np] [--url-handler UTIL] [--show-browser-logs] [-v] [-d] [KEYWORD [KEYWORD ...]] DuckDuckGo from the terminal. positional arguments: KEYWORD search keywords optional arguments: -h, --help show this help message and exit -n N, --num N show N (0<=N<=25) results per page (default 10); N=0 shows actual number of results fetched per page -r REG, --reg REG region-specific search e.g. 'us-en' for US (default); visit https://duckduckgo.com/params -C, --nocolor disable color output --colors COLORS set output colors (see man page for details) -j, --ducky open the first result in a web browser; implies --np -t SPAN, --time SPAN time limit search [d (1 day), w (1 wk), m (1 month)] -w SITE, --site SITE search sites using DuckDuckGo -x, --expand Show complete url in search results -p URI, --proxy URI tunnel traffic through an HTTPS proxy; URI format: [http[s]://][user:pwd@]host[:port] --unsafe disable safe search --noua disable user agent --json output in JSON format; implies --np --gb, --gui-browser open a bang directly in gui browser --np, --noprompt perform search and exit, do not prompt --url-handler UTIL custom script or cli utility to open results --show-browser-logs do not suppress browser output (stdout and stderr) -v, --version show program's version number and exit -d, --debug enable debugging omniprompt keys: n, p, f fetch the next, prev or first set of search results index open the result corresponding to index in browser o [index|range|a ...] open space-separated result indices, ranges or all O [index|range|a ...] like key 'o', but try to open in a GUI browser d keywords new DDG search for 'keywords' with original options should be used to search omniprompt keys and indices x toggle url expansion c index copy url to clipboard q, ^D, double Enter exit ddgr ? show omniprompt help * other inputs are considered as new search keywords
Wygląda przerażająco? Niekoniecznie. W większości przypadków zainteresuje nas jedynie parametr -num (liczba wyświetlanych wyników), -j (pierwszy wynik otwierany od razu w przeglądarce) i polecenia z „pseudo” linii komend ddgr (omniprompt keys).
Oczywiście co to za narzędzie tekstowe które korzysta z graficznej przeglądarki graficznej. Ale jest sposób i na to:
BROWSER=w3m ddgr nasze-zapytanie
W miejsce w3m możemy użyć jakiejkolwiek innej tekstowej przeglądarki naszego życia: elinks, links, lynx. Do sprawnego odpytywania warto również zaznajomić się z „ciosami specjalnymi” Duck Duck Go – np. Bangs, które pozwalają przeszukiwać zasoby konkretnych stron:
ddgr !w kbps
… co przeszuka Wikipedię na wypadek wspomnianego hasła kbps.
Innymi słowy ddgr może doskonale wkomponować się w nasze środowisko tekstowe, pozwolić na stworzenie interesujących aliasów (program jako taki nie korzysta z pliku z ustawieniami) oraz umożliwia przeglądanie wyników w tekstowej przeglądarce. Wszystko po to, aby nie opuszczać rubieży opiekuńczego terminala. Na tym oczywiście nie kończą się możliwości ddgr.
No teraz pozostaje tylko pobrać nam wspomniany program. Na Githubie znajdziemy dokładną rozpiskę, jak instalować ddgr na przeróżnych dystrybucjach. W przypadku Ubuntu 16.04/17.10 i Mint 18.xx będzie to:
sudo add-apt-repository ppa:twodopeshaggy/jaru
sudo apt-get update
sudo apt-get install ddgr
Arch Linux i Manjaro:
yaourt -S ddgr