7 Easy Examples To Use curl command in Linux – OrcaCore
In this guide, we want to teach you How To Use curl command in Linux. cURL, which stands for client URL, is a command-line tool that developers use to transfer data to and from a server. At its most fundamental, cURL lets you communicate with a server by specifying the location (in the form of a URL) and the data you want to send. Understanding How To Use curl command in Linux is a valuable skill for any developer or system administrator.
cURL supports several different protocols, including HTTP and HTTPS, and runs on almost every platform. This makes cURL ideal for testing communication from almost any device (as long as it has a command line and network connectivity) from a local server to most edge devices. Learning How To Use curl command in Linux opens up a wide array of possibilities for interacting with web services.
You can now follow the guide steps provided by the Orcacore website to Use curl command in Linux.
In this guide, you will learn some ways to Use curl command in Linux with Examples. It is one of the most useful Linux command tools.
1. List Curl Command Linux Version
First, you can list your curl command version with the following command:
curl --version

2. Download a file with curl Command
If you plan to download a file on Linux, you can use curl with “-O” and “-o” options.
Here we will show you the examples of it and how they work:
$ curl <span><strong>-O</strong></span> http://domain.com/file.tar.gz # <span><strong>Save as file.tar.gz</strong></span>
$ curl <strong><span>-o</span></strong> newfile.tar.gz http://domain.com/file.tar.gz # <strong><span>Save as newfile.tar.gz</span></strong>
- Note: If you plan to download multiple files, you can easily use the following structure:
curl <span><strong>-O</strong></span> http://site1.com/info.html <span><strong>-O</strong></span> http://site2.com/about.html
3. Resume an Interrupted Download with curl
If your download was interrupted, you can easily resume your download by using the curl command with the “-C –” option:
curl <span><strong>-C -</strong></span> -O http://domain.com/file.tar.gz
4. Use a Proxy with Curl Command
At this point, if you are behind a proxy server listening on a specific port for HTPPs proxies, you can run the command below:
curl -x https://proxy-server:port https://example.com
Using Authentication: If your proxy requires a username and password:
curl -x http://username:password@proxy-server:port http://example.com
5. Query HTTP Headers with the curl command
Another usage of the curl command is to query for HTTP headers.
HTTP headers let the client and the server pass additional information with an HTTP request or response. An HTTP header consists of its case-insensitive name followed by a colon (:
), then by its value.
For example:
curl <span><strong>-I</strong></span> orcacore.com

6. Download Files from an FTP Server with curl
If a remote FTP server is expecting connections at ftp://yourftpserver, the following command will download file.tar.gz in the current working directory:
curl <span><strong>-u</strong></span> <strong><span>username:password</span> <span>-O</span></strong> ftp://yourftpserver/file.tar.gz
- Note: If the FTP server allows anonymous logins, you can skip
<span><strong>-u</strong></span> <strong><span>username:password</span></strong>
.
Also, you can easily upload a file to your FTP server. For example:
curl <span><strong>-u username:password -T</strong></span> <strong>yourlocalfile.tar.gz</strong> ftp://yourftpserver
7. Limit the Download Rate with the curl command
To prevent curl from hosing your bandwidth, you can limit the download rate to 100 KB/s as follows:
curl <span><strong>--limit-rate 100K</strong></span> http://domain.com/file.tar.gz <span><strong>-O</strong></span>
There is a lot of usage for this Linux command. For more information, you can visit the curl man page.
Conclusion
At this point, you have learned to Use curl command in Linux with Examples. You can easily use the curl command for different purposes including query for HTTP headers, using proxies, limiting the download rate, etc. Understanding How To Use curl command in Linux effectively can greatly enhance your command-line skills.
Hope you enjoy it. You may also be interested in these articles:
How To Use ifconfig command on Linux
Using Find and Locate commands on Linux
Examples To Use Wget Command in Linux Terminal
Alternative Solutions:
While the curl
command is a powerful and versatile tool, there are alternative approaches to achieving similar results in Linux, especially when it comes to downloading files or interacting with web services. Here are two different ways to solve some of the problems presented in the article, offering flexibility and potentially better integration with specific scripting or programming environments.
1. Using wget
for Downloading Files
The wget
command is another popular command-line utility specifically designed for retrieving content from web servers. It’s particularly well-suited for non-interactive downloads, making it a great alternative to curl
when you primarily need to download files.
Explanation:
- Simplicity for Downloads:
wget
excels at downloading files. Its syntax is often simpler thancurl
for basic download tasks. - Recursive Downloading:
wget
can recursively download entire websites, whichcurl
doesn’t directly support without additional scripting. - Robustness:
wget
is designed to handle network interruptions and can resume downloads automatically, even without the-C -
option required bycurl
.
Example:
Instead of:
curl -O http://domain.com/file.tar.gz
You can use:
wget http://domain.com/file.tar.gz
To resume an interrupted download:
wget -c http://domain.com/file.tar.gz
The -c
option tells wget
to continue an interrupted download. wget
automatically names the file, so specifying a different output filename requires the -O
option (capital O).
2. Using Python with the requests
library for Web Interactions
For more complex interactions with web services, especially when dealing with APIs or requiring more programmatic control, using a scripting language like Python with the requests
library offers a powerful alternative.
Explanation:
- Flexibility and Control: The
requests
library provides a high-level interface for making HTTP requests, allowing you to easily handle authentication, headers, cookies, and more. - Data Parsing: Python makes it easy to parse and process data returned from web services, such as JSON or XML.
- Integration: Python scripts can be easily integrated into larger applications or workflows.
Example:
Let’s say you want to query HTTP headers, similar to the curl -I
example:
import requests
try:
response = requests.get("https://orcacore.com", stream=True) #stream=True gets the headers
print("Status Code:", response.status_code)
print("Headers:")
for key, value in response.headers.items():
print(f"{key}: {value}")
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
Explanation of the Python Code:
- Import
requests
: Imports the necessary library. requests.get()
: Makes a GET request to the specified URL.stream=True
is important for getting the headers without downloading the whole body.- Error Handling: The
try...except
block handles potential network errors. - Print Status Code: Prints the HTTP status code (e.g., 200 for OK, 404 for Not Found).
- Print Headers: Iterates through the response headers and prints each key-value pair.
This approach gives you much more control over the request and response, allowing you to easily manipulate the data as needed. For example, you could easily extract a specific header value and use it in a subsequent operation. Python’s extensive ecosystem of libraries makes it a powerful alternative to curl
for many web interaction tasks.
These alternatives offer different trade-offs in terms of simplicity, flexibility, and integration. wget
is a streamlined choice for basic downloads, while Python with requests
provides a powerful platform for more complex web interactions. Understanding these options allows you to choose the best tool for the specific task at hand.