What is cUrl
cUrl is an open source object programming language, it’s very useful in web applications where a strong inter-compatibility between protocols and documents is required.
In particular, it avoids the developer having to use multiple programming languages, making a single framework available in a series of functions combined between markup (HTML or JS) and computational languages (Java, C#, C++…).
cUrl consists of a package and provides tools and a command line to operate on the NET using URL syntax.
It supports many protocols, such as Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, DICT, FILE, FTP, FTPS, Gopher, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet e TFTP.
The official website http://curl.haxx.se/ is where you can download the packages.
Needless to say, it runs on practically any platform.
The commands you need to know
Download a file
$ curl http://www.spaceclick.com
To save,
$ curl http://www.spaceclick.com > sc-com.html
Download a file only if it has been modified before/after a certain date
After the date
$ curl -z 20-Dec-14 http://www.spaceclick.com/aprettyfile.html
Before the date
$ curl -z -20-Dec-14 http://www.spaceclick.com/aprettyfile.html
Download files via FTP
$ curl -u ftpuser:ftppass -O ftp://ftpserver/public/abcd.php
to download a folder,
$ curl -u ftpuser:ftppass -O ftp://ftpserver/public/
Restore interrupted downloads
to interrupt a large download you can use Ctrl+C to resume,
$ curl -C - -O http://www.spaceclick.com/bigfile.ext
Save the output to a file
$ curl -o aprettyfileNAME.html http://www.spaceclick.com/aprettyfile.html
$ curl -O http://www.spaceclick.com/aprettyfile.html
with the -O option the name will be the same as the origin
Request multiple files at the same time
$ curl -O URL1 -O URL2
Limit the download speed
$ curl --limit-rate 1000B -O http://www.spaceclick.com/bigfile.ext
in this case it’s limited to 1000 Bytes/s
Download a series of files based on a character pattern
$ curl ftp://ftp.spaceclick.com/files/[a-z]/
Follow HTTP routes via their response
$ curl http://www.spaceclick.com
you can force the redirects with the -L option,
$ curl -L http://www.spaceclick.com
Authentication via HTTP (base auth)
$ curl -u username:password URL
Uploading files to an FTP server
$ curl -u ftpuser:ftppass -T filename.txt ftp://ftp.server.com
to load multiple files,
$ curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.server.com
Enable Verbose mode
simply enter the option -v, es:
$ curl -v http://www.spaceclick.com
Use the DICT protocol
$ curl dict://dict.org/d:bash
Send an email via SMTP protocol
$ curl --mail-from aname@abcd.com --mail-rcpt foo@xyz.com smtp://mailserver.com
afterwards you will be asked for object and body, insert them as follows, with the dot as the terminator
Subject: Test email (subject) This is a body test .
Download a file via PROXY
use the option -x
$ curl -x proxysever.domain.com:3128 http://www.spaceclick.com
As you can see cUrl is a very versatile and interesting bookshelf, make good use of it!