curl is a command line tool to transfer data to or from a server. It is able to use any of the supported protocols like HTTP, FTP, IMAP, POP3, SCP, SFTP, SMTP, TFTP, TELNET, LDAP or FILE. This tool is very useful for automation, since it is designed to work without user interaction. Furthermore, curl can transfer multiple file at once.
Basic Single URL Usage
% curl https://thelinuxcluster.com/
2a. Save the Download File with a preferred file name
Save the Download File on the local machine with the name provided with the parameter.
% curl -o test.o https://thelinuxcluster.com/test.output
2b. Save the Download File
% curl -O https://thelinuxcluster.com/test.output
2c. Download Multiple Files. Just Multiple -O
% curl -O https://thelinuxcluster.com/CentOS1.iso -O https://thelinuxcluster.com/CentOS2.iso -O https://thelinuxcluster.com/CentOS3.iso
3a. Display a Progress Meter
% curl --progress-bar -o test.o https://thelinuxcluster.com/test.output

3b. Do not display a Progressive Bar
% curl --silent -o test.o https://thelinuxcluster.com/test.output
4 Limit Rate of Data Transfer
% curl --limit-rate 1000K -o test.o https://thelinuxcluster.com/CentOS1.iso

5a Uploading a File to the FTP Server
% curl -u username:userpassword -T myfile ftp://ftp.thelinuxcluster.com/
5b. Appending the File to the FTP Server
% curl -u username:userpassword -a -T myfile ftp://ftp.thelinuxcluster.com/
5c Downloading the File to the File Server
% curl ftp:/ftp.thelinuxcluster.com/CentOS79.iso --user username:userpassword -o myCentOS79.iso
6a. Verifying SSL Certificate
% curl --cacert server.crt https://thesupersecureserver.com
6b. Ignoring SSL Certificate
% curl -k https://thesupersecureserver.com/
7a Proxy Server
% curl -x proxy_name:proxy_port https://thelinuxcluster.com
7b Proxy Server which requires authentication
% curl --user username:userpassword -x proxy_name:proxy_port https://thelinuxcluster.com
8 Sending Email
% curl --url "smtps"//smtp.thelinuxcluster.com:465: --ssl-reqd --mail-from "sender@thelinuxcluster.com" --mail-rcpt "receiver@thelinuxcluster.com" --upload-file maincontent.txt --user "sender@thelinuxcluster.com:password" --insecure
References: