Surfraw

From Wikipedia, the free encyclopedia

Surfraw
Developed by Julian Assange
Latest release 1.0.7 (stable); 2.1.1 (testing) / September 2005
OS Unix-like
Genre Internet
License GPL v. 2
Website http://alioth.debian.org/projects/surfraw

Surfraw (Shell Users' Revolutionary Front Against the WWW) is a free POSIX-compliant (ie. meant for Linux, FreeBSD etc.) command-line shell program for interfacing with a number of web-based search engines. It is licensed under the GNU General Public License and written in the C programming language.

It uses what it calls "elvi" (a tribute to Elvis); elvi are interface widgets for specific engines and databases such as Google, AltaVista, Wikipedia, Dejanews, Freshmeat, research index, Slashdot, ArXiv, and a number of others. It allows options for configuration of using a shell browser (lynx, w3m) or a graphical browser (firefox, mozilla, konqueror) "for meatminds".

According to its creator Julian Assange: "Surfraw provides a fast unix command line interface to a variety of popular WWW search engines and other artifacts of power. It reclaims google, altavista, dejanews, freshmeat, research index, slashdot, and many others from the false-prophet, pox-infested heathen lands of html forms, placing these wonders where they belong; deep in unix heartland, as god-loving extensions to the shell."

[edit] Commands

To see the list of elvi, one can issue the command surfraw -elvi (or the shorter sr -elvi, as sr and surfraw are aliased to mean the same thing); to search using an elvi, use:

sr elvi-name [options] searchterms

For example, to search Google for information on "Debian ports", using the "I'm feeling lucky" option:

sr google -l Debian ports

Or, one could search Wikipedia for the "surfraw" article like this:

sr wikipedia surfraw

Surfraw's commands can be shortened even further to require only the name of the elvi (ie. wikipedia surfraw) without the sr or surfraw prefixes; it does this by modifying the current shell's (e.g., bash's) startup files with the provided surfraw-update-path command.

[edit] External links